Перейти к содержанию
Авторизация  
LYTKICH

Античит

Рекомендуемые сообщения

LYTKICH

Можно ли как-то сделать античит по сигнатурам? Чтобы читер инжектил чит, и его сразу кикало.
Видел такой античит на сервере CRMP DayZ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Reyn

При инжекте чита у CRMP ищменяется что-то в виде ключа, точно не помню как называется. И используется pawn,raknet

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Смотря с какой стороны на это смотреть. Некоторые читы меняют версию клиента, которую можно получить с помощью отправки:

SendClientMessage(playerid, -1, "$cmd get_version");

В ответ в OnPlayerCommandText в аргументе cmdtext будет получено что-то вроде:

$response get_version 0.424

 

Я не специалист по КРМП, но, если взглянуть с рациональной точки зрения, задача чита - после инжекта остаться незаметным для клиента (и, следовательно, для сервера). О инжекторах есть много статей в интернете. Однако, скорее всего, Вы столкнётесь с инжектором чита Project Armageddon, который использует инжект через функцию WinApi LoadLibrary(...). Самым эффективным способом защиты в данном случаем будет инжект Вашей библиотеки в игру, которая будет проверять названия библиотек, загружаемых функцией LoadLibraryW(...). Естественно, для этого Вам нужно иметь какой-то лаунчер, чтобы запускать весь этот процесс вместе с игрой.

 

P.S. Для общего развития: в WinApi существуют два варианта практически любых функций: FunctionA() и FunctionW(). FunctionA() работает с ANSI-C, FunctionW() - с wchar_t. В ANSI-C присутствует только английский язык, и кодировка использует по одному байту на символ. А wchar_t (wide char) использует несколько байт на символ, и поддерживает различные языки. Упомянутая же мной выше LoadLibrary(...) является дефайном, который в зависимости от определённой кодировки подставляет одну или другую функцию. На самом деле, вызов LoadLibraryA(...) сводится к вызову LoadLibraryW(...) с преобразованной к wchar_t строкой. Из всего сказанного вывод прост: вызов LoadLibrary() и LoadLibraryA() так или иначе приводят к вызову LoadLibraryW(). Соответственно, LoadLibraryW() является функцией, через которую проходят все загружаемые библиотеки.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
LYTKICH
3 часа назад, 16Shadows сказал:

Смотря с какой стороны на это смотреть. Некоторые читы меняют версию клиента, которую можно получить с помощью отправки:


SendClientMessage(playerid, -1, "$cmd get_version");

В ответ в OnPlayerCommandText в аргументе cmdtext будет получено что-то вроде:


$response get_version 0.424

 

Я не специалист по КРМП, но, если взглянуть с рациональной точки зрения, задача чита - после инжекта остаться незаметным для клиента (и, следовательно, для сервера). О инжекторах есть много статей в интернете. Однако, скорее всего, Вы столкнётесь с инжектором чита Project Armageddon, который использует инжект через функцию WinApi LoadLibrary(...). Самым эффективным способом защиты в данном случаем будет инжект Вашей библиотеки в игру, которая будет проверять названия библиотек, загружаемых функцией LoadLibraryW(...). Естественно, для этого Вам нужно иметь какой-то лаунчер, чтобы запускать весь этот процесс вместе с игрой.

 

P.S. Для общего развития: в WinApi существуют два варианта практически любых функций: FunctionA() и FunctionW(). FunctionA() работает с ANSI-C, FunctionW() - с wchar_t. В ANSI-C присутствует только английский язык, и кодировка использует по одному байту на символ. А wchar_t (wide char) использует несколько байт на символ, и поддерживает различные языки. Упомянутая же мной выше LoadLibrary(...) является дефайном, который в зависимости от определённой кодировки подставляет одну или другую функцию. На самом деле, вызов LoadLibraryA(...) сводится к вызову LoadLibraryW(...) с преобразованной к wchar_t строкой. Из всего сказанного вывод прост: вызов LoadLibrary() и LoadLibraryA() так или иначе приводят к вызову LoadLibraryW(). Соответственно, LoadLibraryW() является функцией, через которую проходят все загружаемые библиотеки.

Можно как-то с SendClientCheck? Чтобы он проверял на инжект? Просто наслышан то что в сампе он проверяет на S0beit который находиться в папке с самой игрой.
@16shadows

 

Изменено пользователем LYTKICH

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

SendClientCheck была добавлена где-то в версия 0.3x-0.3z. Функция работает с памятью процесса gta sa. 

Сам о функции мало знаю, нашёл на просторах интернета такой пример.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Weishaypt

На самом деле все версии CR-MP Trainer от Слонобойки и v1-4 Project Armagedon можно отследить со стороны сервера.
Они обновляют Tab и Ping каждые 5 секунд, что не является нормой и это легко отследить с помощью плагинов Pawn.Raknet или RaknetManager`a.

Вот реализация на Pawn.Raknet

new UpdateScoreAndPing[MAX_PLAYERS];
public OnIncomingRPC(playerid, rpcid, BitStream:bs)
{
    switch(rpcid)
    {
        case 105: //UpdateScoresAndPings
        {

			if((gettime()-UpdateScoreAndPing[playerid]) < 6) printf("[%d] возможно использует CR-MP Trainer, Project Armagedon v1-4", playerid);
			
			UpdateScoreAndPing[playerid] = gettime();
        }
    }

    return 1;
}


Скачать Pawn.Raknet - https://github.com/urShadow/Pawn.RakNet/releases
В версии 1.3 urShadow добавил поддержку CR-MP 0.3e, так что рекомендую использовать именно его.

Изменено пользователем Weishaypt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
LYTKICH
В 8/4/2019 в 9:49 PM, LYTKICH сказал:

Помогите пожалуйста сделать бан на mxini и на процессоре zcmd! 

 

В 7/31/2015 в 3:14 PM, EgasVegas сказал:

Выкладываю обновлённую версию анти-чита "Life-Guard"

 

Защита от взлома Rcon пароля.

Защита от взлома Rcon брута. Вот почему не ломается брутом у меня некоторые сервера хD

Защита от высокого пинга.

Защита от подмены ID диалогов.

Защита от подмены цветов.

Защита от СХ.

Защита от JetPack.

Защита от выдачи оружия.

Защита от GM.

Защита от ТП.

Защита от выдачи денег.

Защита от Fly.

Защита от DB.

Зашита от флуда.

Защита от Crash

170_Life-Guard.rar

 

В 8/10/2019 в 1:31 PM, 16Shadows сказал:

Смотря с какой стороны на это смотреть. Некоторые читы меняют версию клиента, которую можно получить с помощью отправки:


SendClientMessage(playerid, -1, "$cmd get_version");

В ответ в OnPlayerCommandText в аргументе cmdtext будет получено что-то вроде:


$response get_version 0.424

 

Я не специалист по КРМП, но, если взглянуть с рациональной точки зрения, задача чита - после инжекта остаться незаметным для клиента (и, следовательно, для сервера). О инжекторах есть много статей в интернете. Однако, скорее всего, Вы столкнётесь с инжектором чита Project Armageddon, который использует инжект через функцию WinApi LoadLibrary(...). Самым эффективным способом защиты в данном случаем будет инжект Вашей библиотеки в игру, которая будет проверять названия библиотек, загружаемых функцией LoadLibraryW(...). Естественно, для этого Вам нужно иметь какой-то лаунчер, чтобы запускать весь этот процесс вместе с игрой.

 

P.S. Для общего развития: в WinApi существуют два варианта практически любых функций: FunctionA() и FunctionW(). FunctionA() работает с ANSI-C, FunctionW() - с wchar_t. В ANSI-C присутствует только английский язык, и кодировка использует по одному байту на символ. А wchar_t (wide char) использует несколько байт на символ, и поддерживает различные языки. Упомянутая же мной выше LoadLibrary(...) является дефайном, который в зависимости от определённой кодировки подставляет одну или другую функцию. На самом деле, вызов LoadLibraryA(...) сводится к вызову LoadLibraryW(...) с преобразованной к wchar_t строкой. Из всего сказанного вывод прост: вызов LoadLibrary() и LoadLibraryA() так или иначе приводят к вызову LoadLibraryW(). Соответственно, LoadLibraryW() является функцией, через которую проходят все загружаемые библиотеки.

 

В 8/11/2019 в 9:25 AM, Weishaypt сказал:

На самом деле все версии CR-MP Trainer от Слонобойки и v1-4 Project Armagedon можно отследить со стороны сервера.
Они обновляют Tab и Ping каждые 5 секунд, что не является нормой и это легко отследить с помощью плагинов Pawn.Raknet или RaknetManager`a.

Вот реализация на Pawn.Raknet


new UpdateScoreAndPing[MAX_PLAYERS];
public OnIncomingRPC(playerid, rpcid, BitStream:bs)
{
    switch(rpcid)
    {
        case 105: //UpdateScoresAndPings
        {

			if((gettime()-UpdateScoreAndPing[playerid]) < 6) printf("[%d] возможно использует CR-MP Trainer, Project Armagedon v1-4", playerid);
			
			UpdateScoreAndPing[playerid] = gettime();
        }
    }

    return 1;
}


Скачать Pawn.Raknet - https://github.com/urShadow/Pawn.RakNet/releases
В версии 1.3 urShadow добавил поддержку CR-MP 0.3e, так что рекомендую использовать именно его.

я балдею с тебя, спасибо

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
LYTKICH
В 8/11/2019 в 9:25 AM, Weishaypt сказал:

На самом деле все версии CR-MP Trainer от Слонобойки и v1-4 Project Armagedon можно отследить со стороны сервера.
Они обновляют Tab и Ping каждые 5 секунд, что не является нормой и это легко отследить с помощью плагинов Pawn.Raknet или RaknetManager`a.

Вот реализация на Pawn.Raknet


new UpdateScoreAndPing[MAX_PLAYERS];
public OnIncomingRPC(playerid, rpcid, BitStream:bs)
{
    switch(rpcid)
    {
        case 105: //UpdateScoresAndPings
        {

			if((gettime()-UpdateScoreAndPing[playerid]) < 6) printf("[%d] возможно использует CR-MP Trainer, Project Armagedon v1-4", playerid);
			
			UpdateScoreAndPing[playerid] = gettime();
        }
    }

    return 1;
}


Скачать Pawn.Raknet - https://github.com/urShadow/Pawn.RakNet/releases
В версии 1.3 urShadow добавил поддержку CR-MP 0.3e, так что рекомендую использовать именно его.

Хотя стой, после того как я все добавил, не появляется окно регестрации, ошибок нет, все прописал

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
LYTKICH
В 8/11/2019 в 9:25 AM, Weishaypt сказал:

На самом деле все версии CR-MP Trainer от Слонобойки и v1-4 Project Armagedon можно отследить со стороны сервера.
Они обновляют Tab и Ping каждые 5 секунд, что не является нормой и это легко отследить с помощью плагинов Pawn.Raknet или RaknetManager`a.

Вот реализация на Pawn.Raknet


new UpdateScoreAndPing[MAX_PLAYERS];
public OnIncomingRPC(playerid, rpcid, BitStream:bs)
{
    switch(rpcid)
    {
        case 105: //UpdateScoresAndPings
        {

			if((gettime()-UpdateScoreAndPing[playerid]) < 6) printf("[%d] возможно использует CR-MP Trainer, Project Armagedon v1-4", playerid);
			
			UpdateScoreAndPing[playerid] = gettime();
        }
    }

    return 1;
}


Скачать Pawn.Raknet - https://github.com/urShadow/Pawn.RakNet/releases
В версии 1.3 urShadow добавил поддержку CR-MP 0.3e, так что рекомендую использовать именно его.

корректировочка, все найс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
LYTKICH

Все, удаляйте топик

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.