首页
社区
课程
招聘
[求助高手]怎样监视某个程序在内存中的写入操作?
发表于: 2006-6-21 22:38 5520

[求助高手]怎样监视某个程序在内存中的写入操作?

2006-6-21 22:38
5520
现在有个程序A.exe,它会调用B.exe(作为子进程),并在调用时在内存中修改B.exe,以达到修改B.exe部分功能的目的,
问,怎样才能知道它修改了哪里?改动了什么?

[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!

收藏
免费
支持
分享
最新回复 (7)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
高手都睡觉去了?

这个应该算是比较简单的破解吧?

跪求各位大大给一个思路(或者几个思路也行),只要给个思路就行啊,拜托了饿~~
2006-6-21 23:14
0
雪    币: 222
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
bpx WriteProcessMemory
2006-6-22 00:03
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
首先谢谢回复,但是我还是有几个问题,
1 除了WriteProcessMemory是否还有其他类似函数可以调用?请列举,谢谢
2 这种调试不脱壳是否可以进行?难道非要脱壳不可?那个壳又臭又硬,难搞的很啊
另外  我自己也有几个思路:
1 把内存直接dump下来,比对改动前后,但是发现有太多的地方作过修改了,前后看起来整个的都不一样,请问可能在哪个环节出了问题?

2 把内存分模块锁定,看锁定哪个模块后,B.exe功能未发生变化,这样可以缩小范围,但是却不知道哪里去弄这个锁定内存不让写入的软件?

另外,是否还有其他思路可以更好更快更简单更方便的达到这一目标?
请各位达人指教
2006-6-22 06:32
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
刚才我下断点了,可是拦到一大堆WriteProcessMemory,后来抓内存比较,才发现那个B.exe在内存里面的映像在改动后增加了2M,2M啊,难不成要盯着WriteProcessMemory一个一个字节的抄出来?

抓内存,也碰到许多问题,内存是实时刷新的,每秒都不同,我就用进程软件把B.exe挂起(这下内存不会自己变了),再看看A.exe改了些什么,但是每次得到的结果都不同,难道是撞见鬼了?
我的步骤大概是这样:
1 运行A,在A启动B后就把A挂起
2 等到B完全启动,把B也挂起,再抓取B的内存映像(用winhex,抓取主要内存)为1.dat
3 恢复A,等个几秒,大概A已经修改完B了,再挂起A,抓取B的内存映像为2.dat
4 比较1.dat和2.dat

但问题是,改动地方太多了,而且每次都不一样,真的撞见鬼了???
2006-6-22 09:22
0
雪    币: 1316
活跃值: (512)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
6
估计这个得具体问题具体分析,不会有通用的办法了.
比如得知道A.exe是做什么的,B.exe是做什么的,二者各实现什么功能,二者有什么运行时的时序关系,等等这些与你想做的事相关的信息.
2006-6-22 10:19
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
抱歉,我又仔细研究了,发现是B.exe部分内存好象被锁住了一样,winhex读不出来,而在A.exe做手脚之后,就能读出来了,但已经是改变后的东西了
2006-6-22 13:19
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢各位劳心回复,这篇帖子就此打住吧~谢谢
2006-6-22 13:20
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册