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

Как прописать Pointer в скрипт?


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

Взял игру Метро так как ломал ее.

Вот мне стало интересно, как всетаки прописать поинтер в скрипт

поинтер, [[["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)

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

В скрипте этот указатель [[["metro.exe"+00D012D0]+448]+27]+10 приходиться выключать/ключать скрипт при переходе на другой уровень. %) А вот этот у MasterGH'а нормальный указатель для скрипта...лично мне он больше нравится. :-D

 

push eax

mov eax,["metro.exe"+00D012D0]

mov eax, [eax+448]

mov eax, [eax+27]

mov eax, [eax+10]

mov [rsi+00000448],eax

pop eax

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

[[["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, ну и тому подобное....

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

В скрипте этот указатель [[["metro.exe"+00D012D0]+448]+27]+10 приходиться выключать/ключать скрипт при переходе на другой уровень. %) А вот этот у MasterGH'а нормальный указатель для скрипта...лично мне он больше нравится. :-D

 

push eax

mov eax,["metro.exe"+00D012D0]

mov eax, [eax+448]

mov eax, [eax+27]

mov eax, [eax+10]

mov [rsi+00000448],eax

pop 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 eax
mov [рассчитанный адрес],#1000
Ссылка на комментарий
Поделиться на другие сайты

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

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

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