首页
社区
课程
招聘
[求助]如何Hook程序中代码的某段,并跳转取值后再跳回去
发表于: 2010-9-20 14:47 5323

[求助]如何Hook程序中代码的某段,并跳转取值后再跳回去

2010-9-20 14:47
5323
如何Hook程序中代码的某段,然后JMP到自己代码取出eax后,再跳回去(自己的DLL已经注入到目标进程).

OD加载目标程序后找到如下代码
006621F2 A8 2C test al, 2C
006621F4 69A1 11BE699D 6>imul esp, dword ptr [ecx+9D69BE11], E>
006621FE E4 B5 in al, 0B5
00662200 1A47 12 sbb al, byte ptr [edi+12]
00662203 34 BF xor al, 0BF
00662205 ^ EB 8A jmp short 00662191

拿上面这段代码为例,如何判断00662205段的代码为jmp short 00662191,如果正确,怎样才能Hook这行代码改为跳到自己的处理函数中取出EAX的值后 跳回00662191,不影响目标程序正常运行! 牛人给个例子吧,谢谢!

另外就是还有比Hook代码更好的办法了吗?

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
因为远jmp需要6个字节,所以你不如从00662200开始hook,即00662200开始修改为jmp far xxxx,后面可能还需要nop,一,二个字节。
2010-9-20 15:07
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
有牛人能给个Delphi的例子吗?
2010-9-20 15:57
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我也很想知道,看看哪位牛人给解释下,不一定要代码,给个思路,或者方法也行!
2010-9-20 16:06
0
雪    币: 949
活跃值: (18)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
5
exe 程序运行后地址不会变化,0x00400000 开始。

你只需要先保存00662205 这个地址开始的5个字节,然后改成jmp myFunc,myFunc处理完毕后先回复前面保存的5个字节,然后jmp回去就可以了。
2010-9-20 18:59
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
jasonnbfan 谢谢高手回复
关键苦于没有例子可查 也不知道从哪下手.....

大牛给个参考的Delphi的代码也好呀
2010-9-20 20:12
0
游客
登录 | 注册 方可回帖
返回
//