Перейти к содержанию

Как сделать свои читы долгоживущими на примере игры Unepic


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

13 часов назад, Pitronic сказал:

а можно пример на скрине чтоб я догнал

Я видео не смотрел, но предполагаю, что эти два байта пропускаемые - это два байта самой инструкции, а дальше начинаются значения операндов. Покопай в эту сторону. Правда, тут нужно уже в ассемблер немного погрузиться. Как минимум, нужно посмотреть мнемонику инструкции, которая начинается за меткой code.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

14 часов назад, Pitronic сказал:

а можно пример на скрине чтоб я догнал

Зачем скрин, если есть целый видос.

Я не помню. что там у меня  в видосе, но если даже @MasterGH написал:

В 07.08.2018 в 22:20, MasterGH сказал:

Видео-то не плохое, хорошее. Все подробно изложено и работает.

 

Что можно улучшить до идеала. Попробовать кому-нибудь аналитику прикрутить с проверкой нашлась сигнатура или нет. Результат попробовать отправлять в сервис аналитики. Возможно Firebase или что-то похожее

то видимо все довольно подробно.

А так обрати внимание на логи в скрипте:

Спойлер

unepic.exe+2D44F: CC                            - int 3 
unepic.exe+2D450: A1 848C6800                   - mov eax,[00688C84]
// ---------- INJECTING HERE -----------
unepic.exe+2D455: 8B 15 888C6800                - mov edx,[00688C88]  // вот сюда посмотри внимательно
// ---------- DONE INJECTING  ----------
unepic.exe+2D45B: 33 44 24 04                   - xor eax,[esp+04]
unepic.exe+2D45F: 33 54 24 08                   - xor edx,[esp+08]
unepic.exe+2D463: 3B C2                         - cmp eax,edx
unepic.exe+2D465: 74 0A                         - je 0042D471
unepic.exe+2D467: C7 81 180D0000 01000000       - mov [ecx+00000D18],00000001
unepic.exe+2D471: C2 0800                       - ret 0008
unepic.exe+2D474: CC                            - int 3 

 

пересмотри видео и думаю поймешь - почему я смещаю на два байта.

  • Понравилось 1
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

6 минут назад, Garik66 сказал:

на логи в скрипте:

 

7 минут назад, Garik66 сказал:

mov edx,[00688C88]

unepic.exe+2D455: 8B 15 888C6800 - mov edx,[00688C88]  // вот сюда посмотри внимательно, // вот в этом месте я вижу в адресе первые стоят 2 нуля а потом уже смещение, значит значение со второго байта, я правильно понял или я не там смотрел?

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

35 минут назад, Pitronic сказал:

unepic.exe+2D455: 8B 15 888C6800 - mov edx,[00688C88]

 

unepic.exe+2D455: 8B 15 888C6800 - mov edx,[00688C88] // цветами показан обратный порядок следования байт, просто так инструкции следует "перевернутыми"

8B 15 - это бинарный/байтовый код инструкции mov edx

Во многих играх после перекомпиляции кода, инструкции сохраняют последовательность, но меняются смещения и адреса внутри. Можно попробовать в сигнаруте искать по первым начальным байтам последовательность инструкций, но в этом случае нужно умело править код. Т.е.  содержимое инструкции, смещения, адреса могут поменяться. Т.е. если mov edx сохранил свое положение в сигнатуре, то вот адрес [00688C88] уже может быть другим, а точнее 90% будет другим и инъекцию кода уже надо делать не зарнее подготовленную, а генерируемую или как-то еще копируя участки кода и т.п.  По опыту небольшого исследования, могу сказать есть инструкции, которые очень просто подходит для редактирования с такими "гибкими" сигнатурами: например по смещениям просто, что-то нопить. А есть инструкции, которые не достаточно нопить, а есть типа этой unepic.exe+2D455: 8B 15 888C6800 - mov edx,[00688C88] где нужно танцевать с бубном, т.к. будущая инъекция кода еще не известна, а будет известно на какой-то игре

  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

Пока не сталкивался с необходимостью вопроса, но пятой точкой чувствую что когда нибудь эта необходимость будет, в вашем варианте как быть с фильтром, допустим я выяснил что мой адрес помещается по смещению 20, а фьльтр на смещении 48, как будет выглядеть скрипт, есл сравнит code+2 с разницей смещения 28 и если допустим равно то mov наш регистр в который записан code+2 #9999 извените за такой комент но на телефоне отсутствуют не обходимые символы, в частности квадратные скобки и другие. (На компе сетевая плато накрылась)

 

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

×
×
  • Создать...

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

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.