Delphi XE2读取游戏内存偏移数据代码

 

刚学习的时候直接读取基值是很简单的,但是类型[[[00a41ff0+1c]+34]+490]这样的偏移数值应该如何读取呢?下面给大家分享下Delphi 的代码:

var
  GameH:HWND;             {定义窗口句柄}
  GamePid:DWORD;          {定义窗口进程ID}
  ReadByte:SIZE_T;        {实际读取字节}
  Gamehprocess: THandle;  {就是非负数的整数类型  定义进程句柄}
  HP:DWORD;
  Text:DWORD;             {看下面代码你就知道为什么要定义它了}
  //完美血值基值 [[[00a41ff0+1c]+34]+490]
begin
  GameH:=FindWindow(nil,'完美世界国际版');   //取窗口句柄
  GetWindowThreadProcessId(GameH,GamePid);   //获取进程ID
  Gamehprocess:=OpenProcess(PROCESS_All_Access,False,GamePid);  //获取进程句柄
  ReadProcessMemory(Gamehprocess,Pointer($00a41ff0),@Text,4,ReadByte);  //读取00a41ff0内存的值
  ReadProcessMemory(Gamehprocess,Pointer(Text+$1c),@Text,4,ReadByte);   //读取00a41ff0+1C的值
  ReadProcessMemory(Gamehprocess,Pointer(Text+$34),@Text,4,ReadByte);   //读取00a41ff0+1C+34的值
  ReadProcessMemory(Gamehprocess,Pointer(Text+$490),@HP,4,ReadByte);    //读取00a41ff0+1C+34+490的值
  lbl2.Caption:=inttostr(Hp); //显示血值
end;


今天你有收获了吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值