Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 10.04.2015, 23:00   #1
 Разведчик
Аватар для JKHKJgj
 
JKHKJgj никому не известный тип
Регистрация: 06.09.2014
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 17
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Поиск по сигнатуре и получение адреса со значением, инъекция кода.

Здравствуйте уважаемые коллеги, я сам начинающий кулхацкер так что опытные не грузите сильно за ошибки а лучше укажите на ошибки Знаю в коде нужно упорядочить типы данных, добавить проверки от ошибочного ввода значений и.т.д но код вполне работоспособен и думаю очень поможет начинающим. Кстати способ этот я избрал так как пишу читы именно для флеш игры потому поиск по сигнатуре. И так приступим. Для начала видео что у нас должно в итоге получится.
[Ссылки могут видеть только зарегистрированные пользователи. ]

А теперь собственно как это реализовано.
1: Ищем сигнатуру участка кода который что то делает с нужным нам значением в памяти просто читает для отображения на экране или изменяет. Желательно найти инструкцию которая постоянно читает искомое значение, иначе у нас адрес будет появляться не сразу а только при выполнении инструкции.
2: В Cheat Engine делаем инъекцию кода и пишем что то подобное:

Код:
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
label(sun)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
mov eax,[edi+00005578]   // Оригинальная строка кода
push esi                         // Сохраняем регистр esi так как будем с ним работать
lea esi, [edi+00005578]    // инструкция lea вычисляет адрес и помещает его в регистр esi
mov [sun],esi                 // теперь сохраняем этот адрес 
pop esi                         // Восстанавливаем первоначальное значение регистра, вытаскиваем из стека.

exit:
jmp returnhere

sun:
dd 00000000

"PlantsVsZombies.exe"+94445:
jmp newmem
nop
returnhere:
Можно и без чит енжина но просто в нем удобнее гораздо ассемблерный код писать и потом после выполнения просто скопировать получившийся байт код.

3: После выполнения скопируем получившийся байт код в 2 массива.

Код:
byte[] bSunAsmPart1 = { 0x8B, 0x87, 0x78, 0x55, 0x00, 0x00, 0x56, 0x8D, 0xB7, 0x78, 0x55, 0x00, 0x00, 0x89, 0x35 };
byte[] bSunAsmPart2 = { 0x5E, 0xE9 };
Смысл в том что первый массив у нас идёт до адреса с нашей меткой, а наша метка будет располагаться как раз после всего этого кода, расчитаем адрес нашей метки
Код:
byte[] SunOffsLb = BitConverter.GetBytes(uSunAddrNewMem + 25);
25 - это сколько байт занимает весь наш код вместе с двумя адресами, адреса метки и ареса прыжка обратно в код игры.
Адрес метки это к началу нашей выделенной памяти мы прибавляем количество байт занимаемое нашим кодом.

Далее вычисляем адрес возврата в код игры

Код:
byte[] bSunAddrRet = BitConverter.GetBytes(((uSunAddrOrCode + 5u) - (uSunAddrNewMem + uSunBytesCode)));
И наконец то объединяем все 4 массива в 1 который и будем записывать в память

Код:
byte[] bSunNewCode = arr.ArrayCombination(bSunAsmPart1, bSunAddrLabel, bSunAsmPart2, bSunAddrRet);
Вот и всё записываем этот массив в начало нашей выделенной памяти. И теперь раз мы знаем адрес нашей метки мы можем считать от туда значение адреса с нужным нам значением.
Ну и конечно же не забудьте вписать записать команду jmp на наш код.

Вот сам проект.
Доработал немного чит, теперь восстанавливает изначальный код игры при выходе.
Теперь работает добавление золота.
Так же отсутствуют какие либо проверки от ошибочных действий, не реализована заморозка.

Cheat - Plants vs Zombies.rar
VT

Последний раз редактировалось VeTaL_UA; 17.05.2015 в 03:52. Причина: Добавлены отчёты VirusTotal
  Ответить с цитированием
Пользователь сказал cпасибо:
Nickitee (12.04.2015)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[ASM]Получение адреса исполняемого файла артём612 Вопросы и ответы, обсуждения 8 25.11.2013 13:27
[Помогите!] Получение базового адреса и оффсета AnImAsHkO Вопросы, просьбы, обсуждение 0 07.01.2013 22:52
[Помогите!] поиск hex адреса в dll... liafa2 Вопросы, просьбы, обсуждение 0 27.09.2011 12:30
[Статья] Pointer Logger(Получение базового адреса и оффсета) †PrEDok† Скрипты и прочий софт для Point Blank 19 23.05.2011 20:19

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 17:23.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net