偶想做个红色警戒修改器,但读取内存时出问题请帮我解决下
本帖最后由 爱琴琴ZL 于 2012-12-31 21:42 编辑金钱基址:00A83D4C 偏移地址:30C
这个地址0A93EF50+30C= 0A93F25C这两个地址都变动的 0A93EF500A93F25C
我想修改金钱为99999,并且99999保持不变但保持不变还不知道 怎么实现
procedure TForm1.hotykey(var msg: TMessage);
begin
if (msg.LParamHi = VK_NUMPAD1) then
begin
GameH := FindWindow(nil, 'Yuri''s Revenge');
GetWindowThreadprocessID(GameH,GamePid);
GameProc := OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE,false,GamePid);
ReadProcessMemory(GameProc,Pointer($00A83D4C),@mNum,4,tmpNum);
self.lblText.Caption := IntToHex(mNum,8);
if (GameProc <> 0) then
begin
WriteProcessMemory(GameProc,Pointer($00A83D4C),@money,4,lpNumberOfBytes);
end;
请帮我看看,这段代码有没有问题。现在可以读了但是写有问题一点反应都没有。WriteProcessMemory不知道 正确否。
经过努力,偶已经解决这个问题了。{:5_100:}
很简单,调试一下吗。。。 跟到ReadProcessMemory函数之前,看一下各个参数是否正确。你这种最可能的问题是。第三个参数@mNum,4。。。。。。。这个是存放数据的缓冲区吧。肯定是你这个缓冲区有问题。你在哪里定义的? 好好看看。如果其他参数有问题,顶多是返回失败,绝对不会崩溃。。。API函数没事就蹦,谁还敢用? 要是单击游戏,你既然已经找到基址了,为什么不用OD直接修改得了,把值直接改成最大! 拉登o睡觉 发表于 2012-11-26 22:17 static/image/common/back.gif
要是单击游戏,你既然已经找到基址了,为什么不用OD直接修改得了,把值直接改成最大!
对啊,单机用OD修改。 基地已经找到了,但是我想用 delphi 制作修改器来修改。 1、首先 $00A83D4C就是金钱地址吗 您找的地址没有偏移吗? 否则下次进入游戏就不是这个地址了
2、如果是这样 开始money赋值为99999
3、不知道您的具体的怎么写的 也不好说 不好意思 aminghanhua 发表于 2012-11-28 14:08 static/image/common/back.gif
1、首先 $00A83D4C就是金钱地址吗 您找的地址没有偏移吗? 否则下次进入游戏就不是这个地址了
2、如果是 ...
哦,找到了,晚上补好。 难道就没有人能解决吗? 加QQ309505449 一起学习。 {:10_254:}
页:
[1]