首页
社区
课程
招聘
关于lnline hook的问题
发表于: 2013-9-12 15:16 8719

关于lnline hook的问题

2013-9-12 15:16
8719
例:
00444444    jmp xxxxx
00444449    mov eax, 1
假设已知地址444444,如何知道44444-444449之间是一行完整的代码?有没有办法?
反汇编器对此应该有处理方法吧。

需求是这样的,我想要封装一个inline hook函数,众所周知,hook某地址的话,必须将该地址处>=5的内容替换为长度为5的jmp跳转指令,剩余部分使用nop填充。
目前要替换为jmp指令的话,必须要人工分析hook地址下面几行代码,以决定要替换的指令长度,我想要实现封装的函数无需传入替换的指令长度,函数智能处理,这样就能hook任意地址而不需要人工参与,省去不少心力。

Detour Hook能实现这个需求,但是它必须放在dll里然后注入到目标进程,但这会使我在我的程序中不能很自由地安装/卸载hook。

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

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 1392
活跃值: (4867)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
没必要自己去弄个汇编引擎分析。detours就可以做到,稍微修改一下 就可以不依赖DLL HOOK了。具体可以百度。。

如果你是想WriteProcessMemory 写别的进程来HOOK 那还是没太多好办法。
2013-9-12 15:40
0
雪    币: 297
活跃值: (235)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
3
表示没看懂什么意思
统一5个字节不可以么
不管是不是完整的一条指令,反正那5个字节要给他保存起来并且还原回来的吧
2013-9-12 16:05
0
雪    币: 5
活跃值: (421)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
当然不行,这样会把一些指令截断,会出现不可预知的后果。。。。
比如跳转处指令的机器码是AABBCCDDEEFF,共六个字节,如果只取五个字节的话,那么汇编代码就会变成:
00444444 E9 XXXXXX jmp xxxxx
00444449 FF  ??
执行完自定义代码跳转回444449时,就会执行机器码为FF的这条指令,显然是不对的。
2013-9-12 16:41
0
雪    币: 297
活跃值: (235)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
5
转回来的时候就把那五个字节补回来,然后从44444执行不可以么,没必要一定要从444449执行吧
2013-9-12 19:51
0
雪    币: 293
活跃值: (287)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
你这个多线程明显是会异常的。

我一直用 xde32 反汇编引擎的
也还在别人的hook代码里面看到过一个很简短的汇编写的反汇编引擎过
不过至于E8、E9开头的代码,保存后必须修正地址的

附以前写的一个inline hook工程
上传的附件:
2013-9-12 20:20
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
可以选择性地在合适的位置跳转,例如就是选择jmp这个命令的位置,也不用怎么反汇编,知道jmp命令是什么就行了,然后特征搜索
2013-9-12 22:12
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习了一下代码,非常感谢,对于反汇编函数xde_disasm确实看不懂,感觉这个表xde_table很重要,是怎么构造的?反汇编基本原理也明白一些,就是按照intel指令格式进行解析,但是能不能详细指点指点呢,或者详细注释一下这个函数,或者给点参考资料。谢过谢过
2013-10-29 10:53
0
雪    币: 239
活跃值: (190)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
9
请参考 http://bbs.pediy.com/showthread.php?t=154721 附件中的代码,是咋处理的.
2013-10-29 11:24
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
学习一下。!!
2013-11-25 16:00
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习学习~
2013-11-26 18:24
0
游客
登录 | 注册 方可回帖
返回
//