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

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

Делаю таблицу на крутой Сэм 2 и сейчас проблема со скриптом на включение кодов разработчиков. Чтоб было понятно, объясню сначала значения адресов, Sam2Game.dll+3B994C этот адрес включает коды разработчиков, он статистический а ещё палевый для игры, при значении 2 коды включены, а при значении 0 отключены, Engine.dll+2E3E30, этот адрес в нужен будет для само отключении проверки в момент перехода в следующий уровень, в этом адресе в игре значения меняются со скоростью света, но в момент кат сцены вплоть до выхода в уровень значение 10, он тоже статистический, третий адрес динамический я его назвал шпион, если в нем значение 2 игра видит что коды включены а если 0 не видит но и коды отключает, в общем вот скрипт и под спойлером со скриптом опишу что мне нужно

Спойлер

[ENABLE]
aobscanmodule(Proverka,Sam2Game.dll,8B 8E 94 00 00 00 83)
alloc(newmem,$1000)
label(code)
label(return)
newmem:
code:
  mov ecx,[esi+00000094]
  jmp return
Proverka:
  jmp newmem
  nop
return:
registersymbol(Proverka)
[DISABLE]
Proverka:
  db 8B 8E 94 00 00 00
unregistersymbol(Proverka)
dealloc(newmem)
//_______________________________________________________________________
EAX=00000000 //из буфера обмена
EBX=00000018
ECX=00000000
EDX=02229CE0
ESI=7E96E9A0
EDI=000000C0
EBP=0012FD5C
ESP=0012FD48
EIP=02092882
Вероятный базовый указатель =7E96E9A0
02092871 - je 02092950
02092877 - mov eax,[0237994C]
0209287C - mov ecx,[esi+00000094]
02092882 - and eax,03
02092885 - or ecx,eax
//_________________________________________________________________________
//Sam2Game.dll+3B994C адрес для включения
//Engine.dll+2E3E30 нужен для сравнения

 

чтоб не было слишком длинно вопрос тоже убираю под спойлер

Спойлер

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

mov [esi+00000094],0

mov [Sam2Game.dll+3B994C],0

это отключены проверка и режим кодов, но скрипт уже включен. Дальше нужны будут флаги и проверка с адресом Engine.dll+2E3E30

флаг включения, плюс если  [Engine.dll+2E3E30]  равен #10 то mov [esi+00000094],2 и mov [Sam2Game.dll+3B994C],2  прыжок в оригинальный код, а если [Engine.dll+2E3E30] не равен #10 то mov [esi+00000094],0  и  mov [Sam2Game.dll+3B994C],0  прыжок в оригинальный код ну и конечно флаг отключения а в нём mov [esi+00000094],0 и  mov [Sam2Game.dll+3B994C],0

а когда сам скрипт отключаешь то сначала mov [esi+00000094],0 и  mov [Sam2Game.dll+3B994C],0 а уже потом db 8B 8E 94 00 00 00 иначе если забыть отключить коды в игре они останутся включенными.

Заранее благодарю всех, кто чем подскажет.

 

 

Изменено пользователем Pitronic
проверка и исправления ошибок
Ссылка на комментарий
Поделиться на другие сайты

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

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

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