新人求助,浪费高手一分钟时间,谢谢
本人刚刚学习用delphi写辅助。想用植物大战僵尸试试手,在网上找到基址 游戏内存基址:base = 0x006A9EC0
游戏阳光地址:+0x5560
游戏金钱地址:+0x28
游戏关卡地址:+0x24//关卡如:A-B 实际值为:(A-1)×10+B
按照基址写的代码如下
Var
Gameh:HWND;
GamePid:DWORD;
GamehProcess:Thandle;
YNum:DWORD;
base:DWORD;
readByte:DWORD;
begin
//获取游戏窗口句柄
Gameh:=findwindow(nil,'植物大战僵尸中文版');
//获取进程ID
GetWindowThreadProcessId(Gameh,GamePid);
//获取进程句柄
GamehProcess:=OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE,false,GamePid);
//改阳光
Readprocessmemory(GamehProcess, pointer($006A9EC0),@base,4,readByte);
Readprocessmemory(GamehProcess, pointer(base+768),@base,4,readByte);
Readprocessmemory(GamehProcess, pointer(base+5560),@YNum,4,readByte);
Edit1.text:=inttostr(YNum);
运行以后一直得不到正确的阳光数,高手帮帮忙。
万分感激。 游戏阳光地址:+0x5560
按照你的公式的话你代码是写错的。
是基本地址的值 + 0x768 地址保存的值
然后由那个值加上0x5560
才是你公式地址的值
也就是先读这个内存地址的值 0x006A9EC0+768
把读到的值加上 0x5560
然后就是游戏阳光了。 Readprocessmemory(GamehProcess, pointer($006A9EC0),@base,4,readByte);
Readprocessmemory(GamehProcess, pointer(base+$768),@base,4,readByte);
Readprocessmemory(GamehProcess, pointer(base+$5560),@YNum,4,readByte);
Edit1.text:=inttostr(YNum);
这样就ok了!
页:
[1]