首页
社区
课程
招聘
[求助]mov操作,一个很诡异的问题,求高人。
发表于: 2011-10-17 20:57 4496

[求助]mov操作,一个很诡异的问题,求高人。

2011-10-17 20:57
4496
在win7 32bit上hook一个系统函数,在恢复时,采用了memcpy,但是却发现函数第一个字节始终无法恢复,调试发现:mov [首地址],eax,时,首地址第一个字节始终不会改变回原来的样子。我又做了如下测试。

1.ZeroMemory,结果也是一样,首地址第一个字节不会清零,其余清零。

2.载入调试器当发现不能清零后,用windbg的eb指令设置这个第一字节是可以改变的。

3.我将原定的函数地址减一,(那么不变的地方就不再是首地址了),但是memcpy后仍旧无法改变原先那个“第一字节”

郁闷啊,调试了一下午了。5555555

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 75
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼主能贴出相应的代码么 不然这个真不好分析...
2011-10-17 21:28
0
雪    币: 1040
活跃值: (1293)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
…………对齐……
2011-10-17 21:38
0
雪    币: 9
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我也考虑过类似对齐的问题,但是可能是我理解不错,比如:mov [1],eax

eax 是 8baa44aa,[1]处是 80aabbcc,执行后,[1]处是80aa44aa
2011-10-17 22:24
0
雪    币: 9
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
呃,现在手上没有代码,但是这个问题我很记忆深刻
2011-10-17 22:25
0
雪    币: 359
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
我估计是LZ在首字节加着软断点,导致调试器认错内容(实际上已经修改了,但调试器给你看的内容仍然是以前的),你可以去掉断点,再让其执行memcpy试试看
2011-10-18 09:43
0
游客
登录 | 注册 方可回帖
返回
//