-
Автор темы
- #1
Приветствую друзья!
В связи с обилием инфантильных долбаёбов, которые пытаются реализовать защиту из моей самой первой статьи, а так же обилие желающих её заказать - я скрыл свою статью о hake.me от публики, дабы уменьшить свой батхёрт от вышеперечисленных людей.
И поэтому, в замену ей - я решил сделать другую статью, не настолько сильную, как прошлую, но думаю для многих людей даже более интересную, которая касается моего последнего публичного кряка на чит R8 CS:GO.
Всем приятного чтения :)
1. Лоадер.
Лоадер у нас упакован VMProtect, и имеет какую то неебическую антиотладку (не знаю от VMP или нет), но справится с ней смогла лишь связка Windows 7 + TitanHide, хотя остальные софты под VMP я спокойно запускаю в отладчике в связке Windows 10 + TitanHide, но с этой почему то мой любимый драйвер сделал сосо. Но заострять внимания на лоадере я не буду, так как я для кряка вообще не занимался его изучением, самое важное он инжектит в стим, так что я аттачнулся к нему и начал копать :)
2. Модуль для инжекта в стим.
Я не буду в этой статье описывать как ПОЛНОСТЬЮ устроена эта защита, в силу своей нехватки времени (и лени) - я всегда нахожу только те части, которые мне нужны, и никогда не трачу время на изучение защиты полностью. Итак:
1) Модуль ставит хук на CreateProcessW.
2) При запуске КС срабатывает хук, и происходит внедрение бинарника чита в игру.
Инжект происходит при помощи изменения контекста главного потока игры.
2.1. Инжект бинарника чита.
Я называю это бинарником, поскольку в нём нет PE хеадеров (возможно они затираются в лоадере, я точно не знаю). Код инжекта не самописный, его автор Zer0Memory (помянем его канал минутой молчания ), и я думаю его многие уже видели, вот он (не реклама):
Минус этого кода с точки зрения защиты в том, что фикс таблицы импорта и релокаций происходит в целевом процессе, то есть как бы PE хеадеров и нет, но они и нахуй не нужны :D. Как и в ситуации с хейком, я перехватил функцию VirtualAllocEx и заставил выделить память для чита по адресу 0x20000000, который всегда свободен на этапе создании процесса.
3. Защита внутри бинарника чита.
Вся защита находится именно здесь. Дллка по всем современным канонам накрыта VMProtect + виртуализация пользовательского кода, однако меня огорчила система авторизации. Как я уже говорил много раз, протектор никак не поможет защитить приложение, если сам по себе код уязвим. Эти слова целиком и полностью применимы к R8.
Когда я анализировал трафик, я увидел, что отправляемый пакет на сервер каждый раз имел одни и те же данные, и я сделал вывод, что можно без проблем сделать кряк с помощью простой подмены ответа от сервера (спойлер: так и оказалось, однако с небольшим нюансом, о нём позже).
4. Патчи для обхода защиты.
Ниже приложен скрин страницы, в которую я записал все нужны патчи для кряка:
Единственное что мне понадобилось пропатчить для того, что бы статичный ответ от сервера на всех ОС кушал чит - это SteamID, который получается через функцию GetEnvironmentVariableA, адрес которой я просто подменил в таблице импорта, как и адрес InternetConnectA, для подмены сервера.
Путь к файлам конфига вшивается в бинариник чита, и так как оригинал нельзя запускать с системного диска - пришлось это делать с диска D, в кряке я просто подменил букву диска для удобства тем, у кого не более одного раздела для использования.
Ответ от сервера - это сплошная каша. Я не стал разбирать что там получается, но я видел что туда отправляется помимо каши - это SteamID и HWID, который на моё удивление ВШИВАЕТСЯ в инжектируемый бинарник.
По сути кодер R8 сделал за меня ВСЮ работу, кроме SteamID, но и там не оказалось никаких особых сложностей :)
5. Заключение
Вот такой вот довольно простенький обход защиты получился у данного чита. Меня многие спрашивали в ЛС, какая стояла защита, по этому решил сделать эту небольшую статью. Надеюсь авторы уже исправили этот довольно сильный косяк, поскольку никаких злых умыслов я не преследовал ломая их защиту, просто хотел руку в лишний раз набить, и что бы это не заняло слишком много времени :)
На сим всё друзья, увидимся с вами в следующий раз, всем удачи!
P.S. Прошу не ебать мозг в ЛС, касательно АВ, Скита, Зора, и прочего шлака. Кряк этих читов займёт у меня не мало времени, которое я лучше потрачу на деятельность, благодаря которой я имею финансовую независимость, за хайпом мне гнаться смысла нет, однако это не значит, что у меня когда-нибудь не появится желание и время заняться одним из этих софтов (скит не считается, всем ссыктоно давать на него инвайт, зная что лицензию могут забанить xD).
В связи с обилием инфантильных долбаёбов, которые пытаются реализовать защиту из моей самой первой статьи, а так же обилие желающих её заказать - я скрыл свою статью о hake.me от публики, дабы уменьшить свой батхёрт от вышеперечисленных людей.
И поэтому, в замену ей - я решил сделать другую статью, не настолько сильную, как прошлую, но думаю для многих людей даже более интересную, которая касается моего последнего публичного кряка на чит R8 CS:GO.
Всем приятного чтения :)
1. Лоадер.
Лоадер у нас упакован VMProtect, и имеет какую то неебическую антиотладку (не знаю от VMP или нет), но справится с ней смогла лишь связка Windows 7 + TitanHide, хотя остальные софты под VMP я спокойно запускаю в отладчике в связке Windows 10 + TitanHide, но с этой почему то мой любимый драйвер сделал сосо. Но заострять внимания на лоадере я не буду, так как я для кряка вообще не занимался его изучением, самое важное он инжектит в стим, так что я аттачнулся к нему и начал копать :)
2. Модуль для инжекта в стим.
Я не буду в этой статье описывать как ПОЛНОСТЬЮ устроена эта защита, в силу своей нехватки времени (и лени) - я всегда нахожу только те части, которые мне нужны, и никогда не трачу время на изучение защиты полностью. Итак:
1) Модуль ставит хук на CreateProcessW.
2) При запуске КС срабатывает хук, и происходит внедрение бинарника чита в игру.
Инжект происходит при помощи изменения контекста главного потока игры.
2.1. Инжект бинарника чита.
Я называю это бинарником, поскольку в нём нет PE хеадеров (возможно они затираются в лоадере, я точно не знаю). Код инжекта не самописный, его автор Zer0Memory (помянем его канал минутой молчания ), и я думаю его многие уже видели, вот он (не реклама):
Пожалуйста, авторизуйтесь для просмотра ссылки.
Минус этого кода с точки зрения защиты в том, что фикс таблицы импорта и релокаций происходит в целевом процессе, то есть как бы PE хеадеров и нет, но они и нахуй не нужны :D. Как и в ситуации с хейком, я перехватил функцию VirtualAllocEx и заставил выделить память для чита по адресу 0x20000000, который всегда свободен на этапе создании процесса.
3. Защита внутри бинарника чита.
Вся защита находится именно здесь. Дллка по всем современным канонам накрыта VMProtect + виртуализация пользовательского кода, однако меня огорчила система авторизации. Как я уже говорил много раз, протектор никак не поможет защитить приложение, если сам по себе код уязвим. Эти слова целиком и полностью применимы к R8.
Когда я анализировал трафик, я увидел, что отправляемый пакет на сервер каждый раз имел одни и те же данные, и я сделал вывод, что можно без проблем сделать кряк с помощью простой подмены ответа от сервера (спойлер: так и оказалось, однако с небольшим нюансом, о нём позже).
4. Патчи для обхода защиты.
Ниже приложен скрин страницы, в которую я записал все нужны патчи для кряка:
Единственное что мне понадобилось пропатчить для того, что бы статичный ответ от сервера на всех ОС кушал чит - это SteamID, который получается через функцию GetEnvironmentVariableA, адрес которой я просто подменил в таблице импорта, как и адрес InternetConnectA, для подмены сервера.
Путь к файлам конфига вшивается в бинариник чита, и так как оригинал нельзя запускать с системного диска - пришлось это делать с диска D, в кряке я просто подменил букву диска для удобства тем, у кого не более одного раздела для использования.
Ответ от сервера - это сплошная каша. Я не стал разбирать что там получается, но я видел что туда отправляется помимо каши - это SteamID и HWID, который на моё удивление ВШИВАЕТСЯ в инжектируемый бинарник.
По сути кодер R8 сделал за меня ВСЮ работу, кроме SteamID, но и там не оказалось никаких особых сложностей :)
5. Заключение
Вот такой вот довольно простенький обход защиты получился у данного чита. Меня многие спрашивали в ЛС, какая стояла защита, по этому решил сделать эту небольшую статью. Надеюсь авторы уже исправили этот довольно сильный косяк, поскольку никаких злых умыслов я не преследовал ломая их защиту, просто хотел руку в лишний раз набить, и что бы это не заняло слишком много времени :)
На сим всё друзья, увидимся с вами в следующий раз, всем удачи!
P.S. Прошу не ебать мозг в ЛС, касательно АВ, Скита, Зора, и прочего шлака. Кряк этих читов займёт у меня не мало времени, которое я лучше потрачу на деятельность, благодаря которой я имею финансовую независимость, за хайпом мне гнаться смысла нет, однако это не значит, что у меня когда-нибудь не появится желание и время заняться одним из этих софтов (скит не считается, всем ссыктоно давать на него инвайт, зная что лицензию могут забанить xD).
Последнее редактирование: