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

Metal Gear Rising не могу сделать скрипт


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

Здравствуйте уважаемые геймхакеры!!!

Столкнулся с такой проблемой что СЕ не может сделать скрипт. Ломаю, как Вы все догадались, игру Metal Gear Rising - Revengeance. Вот собственно сам скрипт


//Energy Hack
[ENABLE]
alloc(newmem,256)
label(returnhere)
label(original)

label(bigEnergy)
label(smallEnergy)

label(exit)

newmem:
cmp [ecx+0C],43C80000
je bigEnergy
cmp [ecx+0C],438C0000
je smallEnergy
jmp original

bigEnergy:
mov [ecx+04],43C80000
jmp original

smallEnergy:
mov [ecx+04],438C0000
jmp original

original:
mov edx,[ecx+04]
lea eax,[eax*8+METAL GEAR RISING REVENGEANCE.g_LEngineDefaultPoolId+29B2FC] // вот эта строка не компилируеться

exit:
jmp returnhere

"METAL GEAR RISING REVENGEANCE.exe"+8B6F86:
jmp newmem
nop
nop
nop
nop
nop
returnhere:

[DISABLE]
"METAL GEAR RISING REVENGEANCE.exe"+8B6F86:
mov edx,[ecx+04]
lea eax,[eax*8+METAL GEAR RISING REVENGEANCE.g_LEngineDefaultPoolId+29B2FC]
dealloc(newmem)

Пробовал делать замену через регистры, но ни один регистр не отвечает адресу. Пробовал делать через инструкции выше и ниже такая же проблема. Тренер Lingon'a видел по этим опциям, значит он как-то это сделал.

Так вот как правильно написать/скомпилировать скрипт чтоб работал?

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

"METAL GEAR RISING REVENGEANCE.exe"+8B6F86

попытайся заменить данную строчку на 0554+8B6f86 = 05548B6f86

базовый адрес METAL GEAR RISING REVENGEANCE.exe + смешение +8B6F86

попытайся так ))

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

Просто проинжекть строкой выше...

или в виде

"METAL GEAR RISING REVENGEANCE.exe"+8B6F86:
mov edx,[ecx+04]
db xx xx xx xx xx xx xx
dealloc(newmem)

или вытащи переменную [METAL GEAR RISING REVENGEANCE.g_LEngineDefaultPoolId] на символ через aobscan

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

Наиболее удачный способ это сделать инъекцию по адресу выше

"METAL GEAR RISING REVENGEANCE.exe"+8B6F86

чтобы инструкция

lea eax,[eax*8+METAL GEAR RISING REVENGEANCE.g_LEngineDefaultPoolId+29B2FC]

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

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

Вот как выглядит кусок кода с нужной мне инструкцией (mov edx,[ecx+04]):


METAL GEAR RISING REVENGEANCE.exe+8B6F7F - mov [eax*8+METAL GEAR RISING REVENGEANCE.g_LEngineDefaultPoolId+29B2FC],edx
METAL GEAR RISING REVENGEANCE.exe+8B6F86 - mov edx,[ecx+04]
METAL GEAR RISING REVENGEANCE.exe+8B6F89 - lea eax,[eax*8+METAL GEAR RISING REVENGEANCE.g_LEngineDefaultPoolId+29B2FC]

Кроме этого изменилось само значение байт

с db 8D 04 C5 90 62 D8 01

на db 8D 04 C5 90 62 C1 02,

а само значение не изменилось, как было так и есть [eax*8+METAL GEAR RISING REVENGEANCE.g_LEngineDefaultPoolId+29B2FC].

Может есть какой-нибудь способ пропустить эти 2 байта? Что-то вроде db 8D 04 C5 90 62 XX XX ?

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

eax*8 - это сигнал к тому, что в данной инструкции идет перебор элементов массива. Со всеми вытекающими, разумеется. Поможет анализ кода и исследование регистров.

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

Bromvol, в качестве примеров для обучения можешь посмотреть здесь (на форуме CE) разные скрипты именно по этой игре. Надеюсь, что эти скрипты не будут скопипастены в твой трейнер :)

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

***

Кроме этого изменилось само значение байт

с db 8D 04 C5 90 62 D8 01

на db 8D 04 C5 90 62 C1 02,

а само значение не изменилось, как было так и есть [eax*8+METAL GEAR RISING REVENGEANCE.g_LEngineDefaultPoolId+29B2FC].

Может есть какой-нибудь способ пропустить эти 2 байта? Что-то вроде db 8D 04 C5 90 62 XX XX ?

Именно этот.

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

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

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

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