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

     阅读 708 次    更新时间:2014/4/20    

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

刚学习的时候直接读取基值是很简单的,但是类型[[[00a41ff0+1c]+34]+490]这样的偏移数值应该如何读取呢?下面给大家分享下Delphi 的代码:
  1. var  
  2.   GameH:HWND;             {定义窗口句柄}  
  3.   GamePid:DWORD;          {定义窗口进程ID}  
  4.   ReadByte:SIZE_T;        {实际读取字节}  
  5.   Gamehprocess: THandle;  {就是非负数的整数类型  定义进程句柄}  
  6.   HP:DWORD;  
  7.   Text:DWORD;             {看下面代码你就知道为什么要定义它了}  
  8.   //完美血值基值 [[[00a41ff0+1c]+34]+490]  
  9. begin  
  10.   GameH:=FindWindow(nil,'完美世界国际版');   //取窗口句柄  
  11.   GetWindowThreadProcessId(GameH,GamePid);   //获取进程ID  
  12.   Gamehprocess:=OpenProcess(PROCESS_All_Access,False,GamePid);  //获取进程句柄  
  13.   ReadProcessMemory(Gamehprocess,Pointer($00a41ff0),@Text,4,ReadByte);  //读取00a41ff0内存的值  
  14.   ReadProcessMemory(Gamehprocess,Pointer(Text+$1c),@Text,4,ReadByte);   //读取00a41ff0+1C的值  
  15.   ReadProcessMemory(Gamehprocess,Pointer(Text+$34),@Text,4,ReadByte);   //读取00a41ff0+1C+34的值  
  16.   ReadProcessMemory(Gamehprocess,Pointer(Text+$490),@HP,4,ReadByte);    //读取00a41ff0+1C+34+490的值  
  17.   lbl2.Caption:=inttostr(Hp); //显示血值  
  18. end;  


今天你有收获了吗?

 
 

Copyright 2003-2008 All Rights Reserved 自由风工作室 版权没有 [湘ICP备06002185号]
.