看流星社区

 找回密码
 注册账号
查看: 3114|回复: 3

[Delphi] DELPHI 如何取游戏基址的数值

[复制链接]

该用户从未签到

发表于 2011-4-3 14:22:58 | 显示全部楼层 |阅读模式
写了一个注入游戏辅助,游戏人物小退时人物基址的数值是0,(游戏基址为4字节DWORD类型)如何取出他的值(注已经是基址没有偏移的)(我想让人物小退时时钟自动停止)  
我的代码如下,但人物小退后时钟没有停,导致游戏出错!请大大们指点下  
Function pd:Integer ; //判断人物  
var  
   a:PDWORD;  
Begin  
  Try  
    Begin  
      a:=Pointer(Base);  
      Result := a^;  
    end;  
  except  
    Result := 0;  
  end;  
end;  
时钟事件  
IF PD>0 then  
begin  
......  
end;

该用户从未签到

发表于 2011-4-3 14:23:11 | 显示全部楼层
你读取数值只读取了一次,时钟调用的是不是一直在调用这个数值而没有及时得到最新数值

该用户从未签到

发表于 2011-4-3 14:23:21 | 显示全部楼层
类似这样子:
var     
    ProcessID: Thandle;    //目标进程句柄
    ReadByte: Dword;
ReadProcessMemory(ProcessID,Pointer(Base),@a,sizeof(a),ReadByte);    //读取
if  a=0  then    //判断
  begin
    Timer1.Enabled := False;    //计时器关
end;

该用户从未签到

发表于 2011-4-3 14:25:10 | 显示全部楼层
如果是注入的,你的PD函数直接用指针读取游戏基址的数值,返回a的数值,但时钟事件不能那么写:
IF PD>0 then 这里的PD函数不能直接参与判断
你可以:
var
    b : cardinal
begin
    b := PD();
    IF b>0 then
    begin
    ……
  end;
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-25 08:33

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表