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

The TakeOver помогите с адресами

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

Доброго времени суток!

Использовался Cheat Engine 7.2

Ситуация такая:

Нашел адрес который отвечает за нужный мне параметр, хранится он в float.

Выполнил поиск инструкций, выбрал ту, к который меньше всего обращений.

Выполненные действия в картинках:

Спойлер

45b29ba3067cec8e9d74f377f1e5be96-full.pn

Попробовал вписать код через автоассамблер:

Спойлер

674f05b2a6d675cd9c72ca8c668c2312-full.pn

Код сработал, после удара по мне линейка полностью восполнилась и получил бесконечные супер удары.

Проблема проявилась сразу, дошёл до первого ограждения и не смог его разбить, как я понял инструкция обращается не только к одному адресу.

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

Вопрос заключается именно в том, как исключить все остальные адреса и оставить только то, что нужно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
19 минут назад, kenshin сказал:

как исключить все остальные адреса

фильтр

 

Поделиться сообщением


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

Будьте так добры, подскажите как это реализовать 🙂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, kenshin сказал:

Будьте так добры, подскажите как это реализовать 🙂

Посмотреть видосы от Руслана к примеру

Почитать статьи на форуме,
Каждый раз проговаривать одно и тоже - утомительно уже.

Поделиться сообщением


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

Игра на юнити

В структуре игрока есть это

Struct.jpg

Тоесть наш ГГ всегда (вроде) =13. Остальное не то

Скрипт будет такой

Спойлер

[ENABLE]
aobscan(INJECT,D9 5B 18 85 DB 0F 84 47 00 00 00 0F B6 47 41 85 C0 0F 84 3B 00 00 00 89 1C 24)
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(INJECT)

newmem:
  push eax
  mov eax,[ebx+08]
  add eax,08
  cmp [eax],#13
  je short code
  fstp dword ptr [ebx+18]
code:
  pop eax
  test ebx,ebx
  jmp return

INJECT:
  jmp newmem
return:

[DISABLE]
INJECT:
db D9 5B 18 85 DB
unregistersymbol(INJECT)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+133

HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+117: 8B 47 34           - mov eax,[edi+34]
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+11a: 89 04 24           - mov [esp],eax
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+11d: 39 00              - cmp [eax],eax
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+11f: E8 9C B9 2A 0A     - call HutongGames.PlayMaker:FsmFloat:get_Value
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+124: DD 45 E0           - fld qword ptr [ebp-20]
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+127: D9 C9              - fxch st(1)
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+129: DE E9              - fsubp st(1),st(0)
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+12b: D9 5D F0           - fstp dword ptr [ebp-10]
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+12e: 39 1B              - cmp [ebx],ebx
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+130: D9 45 F0           - fld dword ptr [ebp-10]
// ---------- INJECTING HERE ----------
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+133: D9 5B 18           - fstp dword ptr [ebx+18]
// ---------- DONE INJECTING  ----------
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+136: 85 DB              - test ebx,ebx
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+138: 0F 84 47 00 00 00  - je HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+185
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+13e: 0F B6 47 41        - movzx eax,byte ptr [edi+41]
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+142: 85 C0              - test eax,eax
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+144: 0F 84 3B 00 00 00  - je HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+185
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+14a: 89 1C 24           - mov [esp],ebx
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+14d: 39 1B              - cmp [ebx],ebx
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+14f: E8 2C F1 EB 09     - call 1210F280
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+154: DD 5D E0           - fstp qword ptr [ebp-20]
HutongGames.PlayMaker.Actions:SubtractFsmFloat:DoSubtractFsmFloat+157: 8B 47 34           - mov eax,[edi+34]
}

Спойлер

Игра пиратка 

The TakeOver v10.11.2019

Перед тем как влючать скрипт нужно чтоб по ГГ ударили иначе сигнатуру не найдёт

Изменено пользователем JIeXA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 часов назад, JIeXA сказал:

В структуре игрока есть это

Давать готовое решение - плохо. Я для чего все эти видосы записывал? Чтобы ребята учились, а не получали всё готовенькое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
19 часов назад, kenshin сказал:

Код сработал

 

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

 

 

15 часов назад, JIeXA сказал:

Скрипт будет такой

 

может я не прав , но  здесь по моему  надо поправить

cmp [eax],#13
  je short code
  fstp dword ptr [ebx+18]
code:
  pop eax
  test ebx,ebx
  jmp return 

 у тебя получаеться  когда сравнение равно  значение останеться в стеке fpu , а его тоже  надо вытолкнуть . не ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 часов назад, Xipho сказал:

Давать готовое решение - плохо. Я для чего все эти видосы записывал? Чтобы ребята учились, а не получали всё готовенькое.

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

Ваши видео смотрю постоянно, там ведь вы тоже пишите код. 

Изменено пользователем kenshin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Alex2411 сказал:

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

 

Да, вы правы, я просто забываю об этом )) Но знаю это. Самое интересно, что скрипт всегда работает ))). Даже после перезагрузки системы. Поменял на D9 и скрипт перестал работать.

Изменено пользователем kenshin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
23 часа назад, JIeXA сказал:

иначе сигнатуру не найдёт

так на юнити лучше

aobscanregion

Сразу всё найдет :)

Поделиться сообщением


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

[CENSORED]

 

 

 

 

 

// Xipho: видео пришлось удалить из-за присутствия ненормативной лексики. 

Поделиться сообщением


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

Плюсовать не могу,  я пока не достоин этих привилегий, а так +

Поделиться сообщением


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

Нецензурщину вырезал

 

Изменено пользователем JIeXA

Поделиться сообщением


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

 

В 15.11.2020 в 12:02, JIeXA сказал:

Нецензурщину вырезал

 

На основе уроков, я сделал свое решение, возможно оно и не верное, но все работает 🙂.  Враги умирают, ограждения разрушаются, мой персонаж бессмертный.

Спойлер

newmem:
cmp [ebx+18],42C80000 <<<<<<<<< В этом смещении полоска жизни.  Правда есть одно условие, нужно ударить врага.
jne code
nop
nop
nop
jmp return
code:
  fstp dword ptr [ebx+18]
  test ebx,ebx
  jmp return

INJECT+09:
  jmp newmem
return:
registersymbol(INJECT)

 

 

Изменено пользователем kenshin

Поделиться сообщением


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр

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

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

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