当前位置:编程学习 > Delphi >>

请问delphi 怎么修改汇编上的一个eax的值

例如是某个游戏的汇编代码是: 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他 

上一个:delphi为什么没有四舍五入函数?
下一个:delphi中控件不可用的属性是什么

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,