Dison Опубликовано 2 марта, 2015 Поделиться Опубликовано 2 марта, 2015 (изменено) Взял игру Метро так как ломал ее. Вот мне стало интересно, как всетаки прописать поинтер в скрипт поинтер, [[["metro.exe"+00D012D0]+448]+27]+10 [ENABLE] aobscanmodule(Script,44 89 B6 48 04 00 00) // should be unique alloc(newmem,$1000) registersymbol(Script) label(code) label(return) newmem: code: mov [rsi+00000448],r14d jmp return Script: jmp code nop nop return: [DISABLE] Script: db 44 89 B6 48 04 00 00 unregistersymbol(Script) dealloc(newmem) Изменено 2 марта, 2015 пользователем Dison Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 марта, 2015 Поделиться Опубликовано 2 марта, 2015 Уже было, например прочти это сообщение и вообще вся тема этому вопросу посвящалась. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 2 марта, 2015 Автор Поделиться Опубликовано 2 марта, 2015 Уже было, например прочти это сообщение и вообще вся тема этому вопросу посвящалась. Спасибо, гляну Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 3 марта, 2015 Поделиться Опубликовано 3 марта, 2015 [[["metro.exe"+00D012D0]+448]+27]+10 Если не напутал, то так push eaxmov eax, ["metro.exe"+00D012D0]mov eax, [eax+448]mov eax, [eax+27]mov eax, [eax+10]mov [rsi+00000448],eaxpop eax Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 3 марта, 2015 Поделиться Опубликовано 3 марта, 2015 В скрипте этот указатель [[["metro.exe"+00D012D0]+448]+27]+10 приходиться выключать/ключать скрипт при переходе на другой уровень. А вот этот у MasterGH'а нормальный указатель для скрипта...лично мне он больше нравится. push eaxmov eax,["metro.exe"+00D012D0]mov eax, [eax+448]mov eax, [eax+27]mov eax, [eax+10]mov [rsi+00000448],eaxpop eax Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 3 марта, 2015 Автор Поделиться Опубликовано 3 марта, 2015 [[["metro.exe"+00D012D0]+448]+27]+10 Если не напутал, то так push eaxmov eax, ["metro.exe"+00D012D0]mov eax, [eax+448]mov eax, [eax+27]mov eax, [eax+10]mov [rsi+00000448],eaxpop eaxВопрос такой? Почему в скрипте пигем eax а не ebx,ecx, ну и тому подобное.... Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 3 марта, 2015 Поделиться Опубликовано 3 марта, 2015 Взят первый попавшийся регистр. С тем же успехом там мог быть и любой другой. Главное - он сохранен и восстановлен после работы с ним. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 3 марта, 2015 Поделиться Опубликовано 3 марта, 2015 В скрипте этот указатель [[["metro.exe"+00D012D0]+448]+27]+10 приходиться выключать/ключать скрипт при переходе на другой уровень. А вот этот у MasterGH'а нормальный указатель для скрипта...лично мне он больше нравится. push eaxmov eax,["metro.exe"+00D012D0]mov eax, [eax+448]mov eax, [eax+27]mov eax, [eax+10]mov [rsi+00000448],eaxpop eax Вообще я наверно не то, написал, надо было так - запись в указательКак уже писал Xipho я взял первый попавшийся регистр. Как подметил krocki такой расчет указателя не придется включать/выключать при переходе на уровень Дело в том что, в моем примере расчет происходит постоянно, а если писать [[["metro.exe"+00D012D0]+448]+27]+10 в АА скрипте, то адрес рассчитывается один раз и АА скрипт примет видpush eaxmov eax,["metro.exe"+00D012D0]mov eax, [eax+448]mov eax, [eax+27]mov [eax+10], #1000pop eaxmov [рассчитанный адрес],#1000 Ссылка на комментарий Поделиться на другие сайты Поделиться
RockHammer Опубликовано 3 марта, 2015 Поделиться Опубликовано 3 марта, 2015 (изменено) Скажи, зачем ВСЁ в шапке темы сносить под один тег code? Изменено 3 марта, 2015 пользователем RockHamer Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 3 марта, 2015 Автор Поделиться Опубликовано 3 марта, 2015 Всем спасибо! Буду пробовать... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения