首页
社区
课程
招聘
关于代码覆盖的问题(让代码跳到自己的代码中)
发表于: 2010-3-5 00:20 3744

关于代码覆盖的问题(让代码跳到自己的代码中)

2010-3-5 00:20
3744
如以下代码 :

有两个程序a.exe和b.exe

a.exe向b.exe注入了一个DLL(键盘钩子),然后DLL修改b.exe的部分代码,然后执行一个操作,马上把修改的代码还原。具体如以下:

要修改的b.exe的代码如下:
006035D7    8BC8              mov     ecx, eax
006035D9    FF52 3C         call    near dword ptr ds:[edx+3C]

在DLL中,我申请了一个指针,我想直接把指针赋值给eax来替代上述两句

即用 mov eax,myAddr

来替代上面两句。。

在实际的使用中,不能手动用OD改,要怎么才能实现我说的功能呢

用一句来替代那两句?

-----------------------------------------------------

如果说在006035d7这个地址做一个跳转,跳转到我的DLL中的函数中去,那么这个跳转该怎么写呢

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 266
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
外挂 ????????
2010-3-5 09:48
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
如果修改EXE的代码,应该是可以改的。两点需要注意:1.EXE的代码段默认是不可写的,所以你要让此EXE的代码段具有可写属性。第二就是修改后应该注意代码对齐,即修改后的代码应该和之前的代码长度一致,OD中一般用NOP代替。
“如果说在006035d7这个地址做一个跳转,跳转到我的DLL中的函数中去,那么这个跳转该怎么写呢 ”
这个不会
2010-3-5 09:57
0
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
dll跟exe是在一个地址空间内的,只要知道地址应该可以跳转,但是修改后会增加exe内的字节数,或许可以偷出来几个字节放入你的dll中执行,然后把这几个字节改成你的跳转指令,这样就不会影响exe的大小了。
2010-3-5 16:12
0
雪    币: 364
活跃值: (91)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
呵呵 其实不用考虑改多少行的事了 因为执行时JMP已经跳出不对齐的地方了,跳回来时,代码又已经改成原来的了。反正都不执行了,管它改成什么样子的。只要回来执行时还能改回原来的样子就行了。
2010-3-5 17:17
0
雪    币: 2
活跃值: (164)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我是执行后才改回来的。。
2010-3-5 17:22
0
雪    币: 364
活跃值: (91)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
不是说要在006035d7这个地址做一个跳转,跳转到自已的DLL中的函数中去吗?执行完DLL又回来吗?我的理解有问题?006035d7做了跳转,这时b.exe代码改乱了。不要紧反正还没执行它。正执行DLL呢,执行完DLL后,改回b.exe的原代码 再跳转原处执行。
2010-3-5 17:32
0
游客
登录 | 注册 方可回帖
返回
//