首页
社区
课程
招聘
[求助]请问各位大虾一个问题?
2006-8-26 00:37 3498

[求助]请问各位大虾一个问题?

2006-8-26 00:37
3498
我想动态修改EXE文件中这个位置006031b9 MOV EAX,[ECX+4A0]的代码,把他NOP掉,用DELPHI应该怎么做?
我这样做,错在哪里?请指点一下。谢谢!
procedure TForm1.check2Click(Sender: TObject);
var
  newdata: array[0..$400] of byte;
  paddr,paddr1,paddr2: DWORD;
begin
  if check2.Checked = true then
  begin
  paddr:=$006031b9;
  paddr1:=$006031ba;
  paddr2:=$006031bb;
writeprocessmemory(processhandle,Pointer(paddr), @newdata[nop], 1, bytesread);
writeprocessmemory(processhandle,Pointer(paddr1), @newdata[nop], 1, bytesread);
writeprocessmemory(processhandle,Pointer(paddr2), @newdata[nop], 1, bytesread);
end;

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 291
活跃值: (208)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
thebutterfly 5 2006-8-26 01:09
2
0
bytesread是什么?怎么看都像是byteswritten,当然变量名无关紧要

我写了一个例子程序楼主可以看看
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jackyhwk 2006-8-26 08:35
3
0
能否提供具体的DELPHI程序?谢谢!
雪    币: 291
活跃值: (208)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
thebutterfly 5 2006-8-27 02:08
4
0
我写了一个,楼主看看如何

使用方法
同时启动TestWin.exe和TestWriter.exe
点TestWin的"申请内存",如果失败请填0申请就会成功,复制那个成功的地址到TestWriter的目标地址栏中,先点读取内存看看内存中的值,然后点写入内存,如果提示成功则再次点读取内存看看数据是否改变

TestWriter能够读取和修改任何有窗口的程序的内存,只要填入窗口标题和目标程序内存地址即可,不过只能固定的写入00,01 02 03...0F这16个字节
上传的附件:
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jackyhwk 2006-8-27 12:26
5
0
谢谢2楼的大虾,非常感谢!^o^
游客
登录 | 注册 方可回帖
返回