请问delphi 怎么修改汇编上的一个eax的值
例如是某个游戏的汇编代码是: OD显示: 00DF78FD 898424 04000000 mov Dword ptr ss:[esp+4],eax 上面最后eax的值怎么改为3
例如是某个游戏的汇编代码是: OD显示: 00DF78FD 898424 04000000 mov Dword ptr ss:[esp+4],eax 上面最后eax的值怎么改为3
答案:写多大的值?四个字节的话这样
如果是本进程直接
var
p: PInteger;
begin
p := $805c;
p^ := ...;
end;
如果是其他进程,需要:
OpenProcess...
然后WriteProcessMemory
如果写入的地址本不在数据段(如代码段,是不可写区域)
则需要VirtualQueryEx查出地址页属性,然后使用VirtualProtectEx改变该页属性,改为可写后再使用WriteProcessMemory写入值。
其他:你可以直接修改寄存器eax的值为3,或者可以patch他