partoftheworlD Опубликовано 8 января, 2016 Поделиться Опубликовано 8 января, 2016 (изменено) Часть 1 К 4 утра нашлось все-таки свободное время Скрытый текст В этой статье нам понадобится найти адрес прыжка, базовый адрес игрока, смещение m_fFlags которое возвращает значение в каком положении находится игрок. Начнем со смещения открываем любой отладчик и ищем строку m_fFlags. Видим push 350h это наше смещение, буква h значит, что смещение типа DWORD(HEX). Все закрываем отладчик. Теперь найдем адрес прыжка, заходим в игру, создаем сервер. Все команды прописываются без кавычек. открываем консоль пишем “+jump” и enter в CE будем искать 5 типа int, дальше снова открываем консоль и пишем “-jump” в CE пишем 4 и сканируем. Продолжаем так пока не останется как можно меньше адресов. Если найдется статический(зеленый) используйте его, если нет, то придется искать поинтер. Когда закончили пишем в консоль sv_cheats 1; cl_pdump 1. Находим строку m_iFlags integer() и переписываем только те значение пока игрок находится в воздухе. Они у всех одинаковые, так что можете переписать из статьи (256,258,260,262,1280). Остался базовый адрес, но как его находить можно посмотреть в видео-уроках keng’а. Скрытый текст Для начала напишем функцию по которой будем определять находимся мы в воздухе или нет. Используем для этого найденное ранее значение fFlags и LocalBase Теперь приступим к написанию Bunnyhop. Назначим клавишей активации пробел. Используем наш адрес прыжка, который мы искали в самом начале. Что делает у нас код и почему нас не банит SMAC? Из первой части мы узнали, что SMAC проверяет время от приземления игрока и до следующего прыжка, если время равно 0 и у вас 5 прыжков (идеальных прыжков) с таким результатом мы получим бан. Счетчик анти-чита работает таким образом, что счет идет от приземления до приземления, но наш прыжок в воздухе подходит под условие, при котором счетчик сбрасывается. Скрытый текст int in_air(){ int fFlag; ReadProcessMemory(hProcess, (LPCVOID)(LocalBase + 0x350), &fFlag, 4, 0); return fFlag == 256 || fFlag == 258 || fFlag == 260 || fFlag == 262 || fFlag == 1280; } void Bunnyhop() { int on = 5; int off = 4; if (GetAsyncKeyState(VK_SPACE) & 0x8000 && !in_air) { WriteProcessMemory(hProcess, (LPCVOID)(ClientDLL + 0x4F3B3C), &on, 4, 0); //5 } else if (GetAsyncKeyState(VK_SPACE) & 0x8000 && in_air) { WriteProcessMemory(hProcess, (LPCVOID)(ClientDLL + 0x4F3B3C), &off, 4, 0); //4 WriteProcessMemory(hProcess, (LPCVOID)(ClientDLL + 0x4F3B3C), &on, 4, 0); // 5 WriteProcessMemory(hProcess, (LPCVOID)(ClientDLL + 0x4F3B3C), &off, 4, 0); //4 } else { WriteProcessMemory(hProcess, (LPCVOID)(ClientDLL + 0x4F3B3C), &off, 4, 0); //4 } } Изменено 5 марта, 2016 пользователем partoftheworlD 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
afro228offical Опубликовано 8 января, 2016 Поделиться Опубликовано 8 января, 2016 Кто-то выезжает за счёт скила , а кто-то за счёт мозгов ) Ссылка на комментарий Поделиться на другие сайты Поделиться
KaLaSh Опубликовано 8 января, 2016 Поделиться Опубликовано 8 января, 2016 Как хорошо, когда античит OpenSource Если смотреть сорцы античита, то можно наоборот извлекать для себя идеи функций чита, хех Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 9 января, 2016 Автор Поделиться Опубликовано 9 января, 2016 Как хорошо, когда античит OpenSource Если смотреть сорцы античита, то можно наоборот извлекать для себя идеи функций чита, хехОдно дело идеи, а другое ограничение со стороны сервера и VAC Ссылка на комментарий Поделиться на другие сайты Поделиться
Dejavu Опубликовано 5 марта, 2016 Поделиться Опубликовано 5 марта, 2016 Ребят, я только начинаю изучать C++. Пожалуйста, помогите скомпилировать правильно этот код. Работаю в Visual Studio 2015. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения