Pitronic Опубликовано 17 мая, 2019 Поделиться Опубликовано 17 мая, 2019 (изменено) Делаю таблицу на крутой Сэм 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 иначе если забыть отключить коды в игре они останутся включенными. Заранее благодарю всех, кто чем подскажет. Изменено 17 мая, 2019 пользователем Pitronic проверка и исправления ошибок Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения