Сейчас на форуме: Magister Yoda, johnniewalker, Kybyx, vsv1, r0lka, -Sanchez-, testrev1337 (+3 невидимых)

 eXeL@B —› Крэки, обсуждения —› Трейнер для Risen (Пролемы с DMA)
Посл.ответ Сообщение

Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 октября 2009 12:12
· Личное сообщение · #1

Вобщем хочу сделать трейнер для этой игрушки(в позновательных целях), и сталкнулся с такой проблемой.. поскольку игра DMA(dynamic memory allocatio)n я пытаюсь найти Pointer(Указатель).. в общем всеми традициоными методами которые мне известны, удаеться выйти только на адрес структуры с параметрами персанажа, но поскольку адрес структуры меняеться с каждой загрузкой/перезапуском игры нужно найти Pointer-Указатель на данную структуру с чем собственно и возникают проблемы.

Просьба всем кто сталкивался с данной проблемой или же просто есть какие ни будь идеи или советы, ссылки на мотериал по данной теме, буду очень признателен, если вы отзаветесь на зов о помощи и поделитесь информацией.




Ранг: 147.7 (ветеран), 50thx
Активность: 0.120
Статус: Участник
sv_cheats 1

Создано: 22 октября 2009 12:25 · Поправил: SER[G]ANT
· Личное сообщение · #2

Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 октября 2009 12:55
· Личное сообщение · #3

Спасибо SER[G]ANT, результатов пока нету.. но я изучаю предоставленый материал и уже есть пару идей.




Ранг: 67.4 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 22 октября 2009 14:12
· Личное сообщение · #4

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




Ранг: 104.9 (ветеран), 46thx
Активность: 0.040.02
Статус: Участник

Создано: 22 октября 2009 16:44
· Личное сообщение · #5

bronis
Может быть будет проще "тренировать" не данные, а код, который их меняет? Например, заNOPить кусок кода, который уменьшает жизни, ну или чо там тебе надо выпотрошить.



Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 октября 2009 17:32
· Личное сообщение · #6

ManHunter, в том то и дело что я хочу написать полноценный трейнер... кторый будет менять все характеристики персанажа на указаные тобой в трейнере. многоуровневый поинтер нашел... но как оказалось у меня не достаточно знаний чтоб использовать его в CE. Завтро продолжу.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 22 октября 2009 19:57
· Личное сообщение · #7

bronis пишет:
кторый будет менять все характеристики персанажа на указаные тобой в трейнере


трейнер обычно даёт "+ столько-то к тому-то" или "нескончаемое то-то" или "тебя хер кто замочит" или "не трать времени на игру - скажем ей, что ты и так всё прошёл", а конкретные характеристики перса никто не задаёт - это же игра ))

ты с дизассемблером дружишь?

-----
EnJoy!




Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 октября 2009 14:56
· Личное сообщение · #8

Jupiter, Да немного другу.
На мой взгляд трейнер может быть простым(твое описание), или многофункциональным..



Ранг: 1.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 октября 2009 22:39
· Личное сообщение · #9

Если ты хочешь сделать "мемори патчер" то всё что нужно это найти указатель(статик) на указатель структуры.

Если хочешь профессиональный тренер, пишешь свой тренерный двиг, с элементарными функциями отладки, дабы как выразился ув."ManHunter" NOPить юродивые функции уменьшения HP, MP, Патронов и прочих виртуальных благ.


Если С++ твой язык, юзай готовый двиг от Cheat Engine...



Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 октября 2009 15:46
· Личное сообщение · #10

Вобщем я нашел Указатель на структуру с характеристиками персанажа... пользуясь сканером Cheat Engine 5.5 долго и мучительно насканил около 30 тсысяч Указателей... но при использовании функции отсеивания ложных указателей у меня отсать 0, в ручную проверил около 50 указателей тоже не работают после перезапуска игры/загрузки сейва. Даже не знаю в чем может быть дело =(
DzumoHu4 В качестве движка для трейнера я выбрал CE руководствуясь статьями выложеными выше. Спасибо за совет



Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 октября 2009 15:56
· Личное сообщение · #11

Меня больше заинтересовал ручной поиск многоуровневых указателей на структуры, но достойной информации найти на эту тему не удалось. Пробовал сам ставить бп на адрес структуры, но бп срабатывает только в тех местах где вычесляеться смещение адреса(к примеру на хп) от структуры.



Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 ноября 2009 15:17 · Поправил: Модератор
· Личное сообщение · #12

ManHunter
Дело в том что если даже "занупить" код который к примеру отнимает жизни персонажа то, во первых все будут бессмертны а во вторых чтоб сделать фильтр на бессмертие надо иметь поинтер на адрес хп персонажа. Такой адрес я нашел.. благодаря этому я вышел на структуру характеристик персонажа но она меняет свой адрес с каждым перезапуском/загрузкой. Проблема в том, что каким бы я способом не искал указатель на структуру он всегда динамический и после загрузки сейва не работает. Пытаясь найти алгоритм по которому сама игра ищет структуру персонажа, я забрел в память которая меняется с каждой секундой.. хз че делать дальше =(
Вот к примеру:
mov eax,[edi+1c]
mov ecx,[eax+esi*4]

EAX=2C33F2F8
ECX=2C438980 - адрес структуры
ESI=0000000F
EDI=2C58F410 - этот адрес берется игрой из памяти "которая меняется с каждой секундой."

В погоде за местом где лежит EDI=2C58F410 я попадаю в болото.

Может какой то гений взломает игру =) и скажет в чем дело?


еще в игру толком не поиграл.. но я ее уже ненавижу =(



Пользуйся кнопкой Правка, а не плоди посты подрят - это не чат.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 08 ноября 2009 18:05
· Личное сообщение · #13

bronis пишет:
В погоде за местом где лежит EDI=2C58F410 я попадаю в болото.


в этом болоте не работают хардварные бряки на запись?


bronis пишет:
еще в игру толком не поиграл.. но я ее уже ненавижу =(


так ты играй, а не фигнёй страдай
от игры нужно получать удовольствие, а не ненависть!!111!!

-----
EnJoy!





Ранг: 147.7 (ветеран), 50thx
Активность: 0.120
Статус: Участник
sv_cheats 1

Создано: 08 ноября 2009 19:04 · Поправил: SER[G]ANT
· Личное сообщение · #14

bronis пишет:

ManHunter
Дело в том что если даже "занупить" код который к примеру отнимает жизни персонажа то, во первых все будут бессмертны а во вторых чтоб сделать фильтр на бессмертие надо иметь поинтер на адрес хп персонажа. Такой адрес я нашел.. благодаря этому я вышел на структуру характеристик персонажа но она меняет свой адрес с каждым перезапуском/загрузкой. Проблема в том, что каким бы я способом не искал указатель на структуру он всегда динамический и после загрузки сейва не работает. Пытаясь найти алгоритм по которому сама игра ищет структуру персонажа, я забрел в память которая меняется с каждой секундой.. хз че делать дальше =(
Вот к примеру:
mov eax,[edi+1c]
mov ecx,[eax+esi*4]

EAX=2C33F2F8
ECX=2C438980 - адрес структуры
ESI=0000000F
EDI=2C58F410 - этот адрес берется игрой из памяти "которая меняется с каждой секундой."

В погоде за местом где лежит EDI=2C58F410 я попадаю в болото.

Может какой то гений взломает игру =) и скажет в чем дело?


еще в игру толком не поиграл.. но я ее уже ненавижу =(


Ну так и делай
(будем считать, что "код который к примеру отнимает жизни персонажа то, во первых все будут бессмертны" - это "mov eax,[edi+1c]", чисто для примера)

Code:
  1. адрес_который_нопишь_и_все_бессмертны: 
  2. jmp Code-Cave_#1
  3. ;тут_будут nop'ы, если нужны
  4. Code-Cave_#1:
  5. cmp edi,[ПОИНТЕР]
  6. je Code-Cave_#2
  7. mov eax,[edi+1c]
  8. jmp адрес_который_нопишь_и_все_бессмертны+5_байт
  9. Code-Cave_#2: 
  10. mov eax,[edi+1c]
  11. mov dword ptr [edi+1c],значение_жизней_нашего_персонажа_в_HEX
  12. jmp адрес_который_нопишь_и_все_бессмертны+5_байт




Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 ноября 2009 22:22
· Личное сообщение · #15

SER[G]ANT, спасибо.. с этим проблем нету.. я вот все поинтер не могу найти а с остальным то проблем нету.
Jupiter, у меня эта игра далеко не в списке первых которые я хочу пройти.. просто друг посоветовал поиграть потому что игулька копия готики.. оказалось копия ).. да и трейнер делаю только в учебных целях.
Бряки то ставятся только вот толку надеяться на память которая меняется постоянно даже без всяких перезагрузок. Надо статистический указатель но судя по всему там таких нету ( я уже месяц почти ищу...
а учитывая что там многоуровневый указатель нужен и тот факт что я даже 1-ый уровень указателя не сделал... вообще все печально.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 08 ноября 2009 22:42
· Личное сообщение · #16

bronis, я думаю тебе пора уже грузить исполняемый файл игры в IDA и делать полноценный анализ кода, а не копать "болото" в отладчике
в IDA начни с того, что найди перекрёстные ссылки на твои структуры

выделил пременную с адресом - жми N, вводи имя - так будет проще ориентироваться
для перехода на адрес жми G
для поиска ссылок на адрес - жми X

дело пойдёт быстрее ))

-----
EnJoy!




Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 ноября 2009 12:07
· Личное сообщение · #17

Jupiter, в игре нету оконного режима.. пробовал решить это с помощью программы D3DWindower но не вышло. при попытки "найди перекрёстные ссылки на твои структуры" нажав X мне пишут "There are is not xref" и ничего не происходит.




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 13 ноября 2009 17:51
· Личное сообщение · #18

а не проще будет покопать уже готовый трейнер?
например stopgame.ru/help/risen/36_trainer.html


 eXeL@B —› Крэки, обсуждения —› Трейнер для Risen (Пролемы с DMA)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати