LYTKICH 0 Опубликовано 9 августа, 2019 Можно ли как-то сделать античит по сигнатурам? Чтобы читер инжектил чит, и его сразу кикало. Видел такой античит на сервере CRMP DayZ. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Reyn 85 Опубликовано 10 августа, 2019 При инжекте чита у CRMP ищменяется что-то в виде ключа, точно не помню как называется. И используется pawn,raknet 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
16Shadows 101 Опубликовано 10 августа, 2019 Смотря с какой стороны на это смотреть. Некоторые читы меняют версию клиента, которую можно получить с помощью отправки: 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() является функцией, через которую проходят все загружаемые библиотеки. 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LYTKICH 0 Опубликовано 10 августа, 2019 (изменено) 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 Изменено 10 августа, 2019 пользователем LYTKICH Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
16Shadows 101 Опубликовано 10 августа, 2019 SendClientCheck была добавлена где-то в версия 0.3x-0.3z. Функция работает с памятью процесса gta sa. Сам о функции мало знаю, нашёл на просторах интернета такой пример. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Weishaypt 12 Опубликовано 11 августа, 2019 (изменено) На самом деле все версии 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, так что рекомендую использовать именно его. Изменено 11 августа, 2019 пользователем Weishaypt Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LYTKICH 0 Опубликовано 14 августа, 2019 В 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 0 Опубликовано 14 августа, 2019 В 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 Опубликовано 14 августа, 2019 В 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 Опубликовано 15 августа, 2019 Все, удаляйте топик Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты