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

Отдельная работа опций трейнера при одной и той же инструкции


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

Привет всем! Решил написать эту статью, так как достаточно многие игры используют одну инструкцию для нескольких целей и новичков бывает это в гоняет в ступор, хотя догадаться как обойти эту проблему самому довольно не трудно, поэтому я разместил эту статью в разделе для новичков!

Итак начнем... Допустим у нас есть инструкция(или набор инструкций) для работы со здоровьем игрока и его противника и вот мы хотим сделать игроку бессмертие и убийство его врагов с одного удара, но при этом мы бы еще хотели бы, чтобы эти опции работали отдельно друг от друга, сейчас я покажу Вам как это осуществить. Внимание! Вам надо знать хотя бы азы ассемблера, чтобы вникнуть в суть.

1) Допустим вы нашли адрес здоровья вашего игрока, теперь Вам надо найти ID вашего игрока, если не знаете как это сделать идете и смотрите эти видосы

http://forum.gamehac...?showtopic=1577

http://forum.gamehac...?showtopic=1940

3)Теперь приступим к написанию скрипта, но для начала я добавлю пояснения: [id offset] - оффсет, по которому хранится ID игрока в классе игрока, IDplayer - ид вашего игрока, instrPlayerHP - инструкции работающие с жизнью игрока, например:


movss xmm1,[esi+000078C0]
addss xmm1,xmm0
movss [esi+000078C0],xmm1

, Создадим метку, где будет проверка наш ли ID пришел в инструкцию и в зависимости от результата будем предпринимать дальнейшие действия:


conditions:
cmp dword ptr [id offset], idplayer
jne OneHitKill // если idplayer не равен id тому, что лежит в [id offset], то прыгаем на метку OneHitKill
jmp GodMod // иначе прыгаем на метку GodMod

Теперь создадим метку GodMod и опишем действия происходящие там:


GodMod:
cmp dword ptr [gmFlag],0
je originalcode //если опция GodMod отключена, то прыгаем на метку original code
jmp returnhere // иначе просто продолжаем выполнение кода игры пропуская инструкции работы с HP

Опишем метку OneHitKill, на которую происходит прыжок, если нам приходит Id не нашего игрока


OneHitKill:
cmp dword ptr[ohkFlag],0
je originalcode // если опция OneHitKill отключена, то прыгаем на метку originalcode
//иначе тут предпринимаем действия по обнулению HP противника
jmp returnhere

Вот и все ничего сложного! Флаги принимают значения 0/1, вкл/выкл. соответственно:


gmFlag:
dd 1
ohkFlag:
dd 1

Вот исходный код скрипта для большей наглядности


newmem:

conditions:
cmp dword ptr [id offset], idplayer
jne OneHitKill
jmp GodMod

GodMod:
cmp dword ptr [gmFlag],0
je originalcode
jmp returnhere

OneHitKill:
cmp dword ptr[ohkFlag],0
je originalcode
//тут предпринимаем действия по обнулению HP противника
jmp returnhere

///////////////////////////////////////////////////
originalcode:
instrPlayerHP
jmp returnhere

gmFlag:
dd 1

ohkFlag:
dd 1

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

Привет всем! Решил написать эту статью, так как достаточно многие игры используют одну инструкцию для нескольких целей и новичков бывает это в гоняет в ступор, хотя догадаться как обойти эту проблему самому довольно не трудно, поэтому я разместил эту статью в разделе для новичков!

Итак начнем... Допустим у нас есть инструкция(или набор инструкций) для работы со здоровьем игрока и его противника и вот мы хотим сделать игроку бессмертие и убийство его врагов с одного удара, но при этом мы бы еще хотели бы, чтобы эти опции работали отдельно друг от друга, сейчас я покажу Вам как это осуществить. Внимание! Вам надо знать хотя бы азы ассемблера, чтобы вникнуть в суть.

1) Допустим вы нашли адрес здоровья вашего игрока, теперь Вам надо найти ID вашего игрока, если не знаете как это сделать идете и смотрите эти видосы

http://forum.gamehac...?showtopic=1577

http://forum.gamehac...?showtopic=1940

3)Теперь приступим к написанию скрипта, но для начала я добавлю пояснения: [id offset] - оффсет, по которому хранится ID игрока в классе игрока, IDplayer - ид вашего игрока, instrPlayerHP - инструкции работающие с жизнью игрока, например:


movss xmm1,[esi+000078C0]
addss xmm1,xmm0
movss [esi+000078C0],xmm1

, Создадим метку, где будет проверка наш ли ID пришел в инструкцию и в зависимости от результата будем предпринимать дальнейшие действия:


conditions:
cmp dword ptr [id offset], idplayer
jne OneHitKill // если idplayer не равен id тому, что лежит в [id offset], то прыгаем на метку OneHitKill
jmp GodMod // иначе прыгаем на метку GodMod

Теперь создадим метку GodMod и опишем действия происходящие там:


GodMod:
cmp dword ptr [gmFlag],0
je originalcode //если опция GodMod отключена, то прыгаем на метку original code
jmp returnhere // иначе просто продолжаем выполнение кода игры пропуская инструкции работы с HP

Опишем метку OneHitKill, на которую происходит прыжок, если нам приходит Id не нашего игрока


OneHitKill:
cmp dword ptr[ohkFlag],0
je originalcode // если опция OneHitKill отключена, то прыгаем на метку originalcode
//иначе тут предпринимаем действия по обнулению HP противника
jmp returnhere

Вот и все ничего сложного! Флаги принимают значения 0/1, вкл/выкл. соответственно:


gmFlag:
dd 1
ohkFlag:
dd 1

Вот исходный код скрипта для большей наглядности


newmem:

conditions:
cmp dword ptr [id offset], idplayer
jne OneHitKill
jmp GodMod

GodMod:
cmp dword ptr [gmFlag],0
je originalcode
jmp returnhere

OneHitKill:
cmp dword ptr[ohkFlag],0
je originalcode
//тут предпринимаем действия по обнулению HP противника
jmp returnhere

///////////////////////////////////////////////////
originalcode:
instrPlayerHP
jmp returnhere

gmFlag:
dd 1

ohkFlag:
dd 1

Чуть позже запишу наглядный видеоурок на примере, какой-нибудь игры.

извините..опять я со своими проблемами..

если можете посмотрите игру C&C generals Zero hour v 1.04 (2003 года игра.стратегия)...попробуйте взломать таймер супероружия(ядерной ракеты,лазерный луч,PM-17).

Я точно знаю что одна инструкция отвечает за изменение всех таймеров..

будь это доп умения или спец умения.

Так же там довольно хитро запрятаны значения именно таймеров.

Плюс вас ждёт головоломка с инструкциями.

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

Получается полный набор.

Качать репак рекомендую от R.G Механики

Я умудрился запустить данную игру даже на win8 х64 без танцев

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

Наверно так лучше подходит по смыслу


conditions:
cmp dword ptr [id offset], idplayer
jne TryOneHitKill // если это противник, то пытаемся проверить выполнять ли убийство с одного раза
jmp TryGodMod // если это не противник (мой игрок) пытаемся проверить выполнять ли годмод

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

Loner, будет время обязательно посмотрю, люблю сложности. MasterGH, вы правы, но, к сожалению, не могу больше редактировать шапку темы.

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

  • 6 месяцев спустя...

Doc9009 чето я не понял как ты сделал отдельное включение и выключение разных опций в одном скрипте.

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

Ни готового скрипта ни на одном "жывом" примере. Возьми любую игру и сделай все от "А" до "Я", а то совсем ничего не понятно. Хоть тот же Мас Ефект 3,но сделай все "от" и "до".

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

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

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

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

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

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