Auth Exploit Fix

Auth Exploit Fix 1.1.3

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Templar, пробуй такой вариант
 

Вложения

  • AuthExploitFix 1.1.2.sp
    2 КБ · Просмотры: 21

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
432
  • Автор ресурса
  • #26
xyligan оновив ресурс Auth Exploit Fix новим записом:

Фикс утечки | Поддержка SM 1.11

В данном обновлении была исправлена утечка памяти (огромное спасибо @Templar за обнаружение и @Grey83 за исправление), а также плагин теперь поддерживает SM 1.11

Дізнайтеся більше про це оновлення...
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@NΞITHΞR#0001, закомментируй или удали строку ServerCommand("namelockid %i 1", iUserID);
Команда существует в CS:S, а в CS:GO её убрали.
 

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
432
  • Автор ресурса
  • #31

КРУТОЙ

Участник
Сообщения
160
Реакции
30
На сервер кс го стим есть смысол ставить ? Там у всех стим айди .
 

Anpic1

Участник
Сообщения
213
Реакции
46
Здравствуйте. Стоит ставить на NoSteam сервер css v34? Уже стоит ProtectCMDS
 

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
432
  • Автор ресурса
  • #34
Стоит ставить только в том случае если Вы столкнулись с этой проблемой) Лично у меня эта проблема была на CS:S v90, поэтому я и сделал этот фикс.
 

Templar

Добрая душа
Сообщения
495
Реакции
62
@xyligan, Какой процент может быть ложных детектов? Что то у меня есть жалобы просто, вот думаю теперь или у игроков проблемы или в плагине.
 

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
432
  • Автор ресурса
  • #36
@xyligan, Какой процент может быть ложных детектов? Что то у меня есть жалобы просто, вот думаю теперь или у игроков проблемы или в плагине.
У меня никто не жаловался, поэтому сказать не могу, возможно что-то у людей. Может кто-то из пользователей форума подскажет, были жалобы или нет)
 

Templar

Добрая душа
Сообщения
495
Реакции
62
@xyligan, Ну я тоже больше конечно склоняюсь, что у игроков проблема.
Сообщения автоматически склеены:

@xyligan, Вот смотри что по логам увидел, разница в 10 секунд, вышел и больше не пускает.

C-подобный:
L 03/05/2023 - 14:51:12: [kdlp-gameevents.smx] Игрок [I'am СОЛНЫШКО_001]/[STEAM_1:0:630226993]/[5.44.170.6] вышел [Disconnect]
L 03/05/2023 - 14:51:23: [kdlp-gameevents.smx] Игрок [I'am СОЛНЫШКО_001]/[STEAM_ID_STOP_IGNORING_RETVALS]/[5.44.170.6] вышел [Вы кикнуты по причине неидентификации клиента!]
 
Последнее редактирование:

gotgame

Участник
Сообщения
26
Реакции
11
Сам плагин рабочий, но при чистой установке в кс:го меня сразу кикнуло с сервера мол не авторизован (хотя у меня все в порядке). Чуть переделал, если кому надо для ксго:

AuthExploitFix.sp:
#pragma tabsize 0
#pragma semicolon 1
#pragma newdecls required

#include <sourcemod>

#define PLUGIN_NAME "Auth Exploit Fix"
#define PLUGIN_AUTHOR "xyligan"
#define PLUGIN_DESCRIPTION "Фикс-плагин ошибки идентификации игрока"
#define PLUGIN_VERSION "1.1.3"
#define PLUGIN_URL "https://dynodev.ru"

EngineVersion g_hEngine;
Handle g_hAuthTimer[MAXPLAYERS + 1];
char g_szKickMessage[PLATFORM_MAX_PATH];

public Plugin myinfo = {
    name        = PLUGIN_NAME,
    author      = PLUGIN_AUTHOR,
    description = PLUGIN_DESCRIPTION,
    version     = PLUGIN_VERSION,
    url         = PLUGIN_URL
}

public void OnPluginStart() {
    g_hEngine = GetEngineVersion();

    ConVar hCvar = CreateConVar("sm_auth_fix_kick_message", "Вы кикнуты по причине неидентификации клиента!", "Сообщение, которое будет отображено игроку при кике");
    GetConVarString(hCvar, g_szKickMessage, sizeof g_szKickMessage);
    HookConVarChange(hCvar, OnConVarValueChanged);

    AutoExecConfig(true, "AuthExploitFix");

    for(int iClient = 1; iClient <= MaxClients; iClient++)
        if(IsClientInGame(iClient) && !IsFakeClient(iClient))
            OnClientConnected(iClient);
}

public void OnMapEnd() {
    for(int iClient = 1; iClient <= MaxClients; iClient++)
        OnClientDisconnect(iClient);
}

public void OnConVarValueChanged(Handle hCvar, const char[] szOldValue, const char[] szNewValue) {
    GetConVarString(hCvar, g_szKickMessage, sizeof g_szKickMessage);
}

public void OnClientConnected(int iClient) {
    if(!IsFakeClient(iClient))
        g_hAuthTimer[iClient] = CreateTimer(2.0, Timer_CheckAuth, GetClientUserId(iClient), TIMER_REPEAT);
}

public void OnClientDisconnect(int iClient) {
    if(g_hAuthTimer[iClient] != INVALID_HANDLE) {
        CloseHandle(g_hAuthTimer[iClient]);
        g_hAuthTimer[iClient] = null;
    }
}

public Action Timer_CheckAuth(Handle hTimer, int iUserID) {
    int iClient = GetClientOfUserId(iUserID);
    if(!iClient || !IsClientInGame(iClient)) return Plugin_Continue;
    // Добавил проверку на авторизацию
    if (!IsClientAuthorized(iClient)) return Plugin_Continue;

    char szAuth[32];
    bool result = GetClientAuthId(iClient, AuthId_Steam2, szAuth, sizeof szAuth);

    if(!result ||
        StrContains("STEAM_ID_STOP_IGNORING_RETVALS", szAuth, false) != -1 ||
        // Еще неверные steamID
        StrContains("STEAM_ID_PENDING", szAuth, false) != -1 ||
        StrEqual(szAuth, "")
    ) {
        PrintToServer("[AuthExploit] KICK %d (%s) STEAM_ID_INVALID", iClient, szAuth);

        // Добавил проверку на IsClientInKickQueue
        if (!IsClientInKickQueue(iClient))
            KickClient(iClient, g_szKickMessage);

        if(g_hEngine != Engine_CSGO)
            ServerCommand("namelockid %i 1", iUserID);
    }

    g_hAuthTimer[iClient] = null;

    return Plugin_Handled;
}

Не уверен что нужна строка:
C-подобный:
    if (!IsClientAuthorized(iClient)) return Plugin_Continue;
но в других плагинах оно используется в похожих случаях. Собственно мы получаем SteamID после выполнения авторизации если не ошибаюсь.
 
Сверху Снизу