首页
社区
课程
招聘
[求助]函数头如何用4字节HOOK
发表于: 2016-8-24 14:08 6973

[求助]函数头如何用4字节HOOK

2016-8-24 14:08
6973
在函数头部  如何通过4字节或者更少字节   就能改变流程使其跳转到我们自己的函数中?  

本菜对汇编一知半解   仅仅只是了解一些简单关键字的用法      

想请教各位路过的达人      对于4字节内  在函数头能改变流程的方法。  
是否需要满足某些条件 亦或是所有的都可以    求解答    谢谢  

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 870
活跃值: (1033)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
在hook 函数附近找个空的地方 jmp过去 再 jmp到你的模块函数!
2016-8-24 14:26
0
雪    币: 2291
活跃值: (933)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
短跳(2 bytes)+二级长跳
2016-8-24 14:27
0
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
EB xx 不错
2016-8-24 17:12
0
雪    币: 267
活跃值: (438)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
5
想hook,   异常处理可以好好利用的,别浪费技术资源!不过R0下的还沒有实现!
2016-8-24 18:31
0
雪    币: 4668
活跃值: (1713)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
异常处理   效率不好
2016-8-24 19:07
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
谢谢各位的解答   不过还是没有到点子上啊  
异常不可能  直接忽略             二段跳就不止4字节了    可能是我没表达清楚。   
想问的是4字节内 在函数头实现函数流程跳转     有什么偏门?
或需要某个寄存器满足某些条件才能实现?   求解答
2016-8-26 18:09
0
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是不是这样呢 ? 第一图是原来的函数 下面是HOOK后的




上传的附件:
2016-8-26 20:25
0
雪    币: 267
活跃值: (438)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
9
没感觉效率问题,只有处理得好不好的问题!
2016-8-26 20:52
0
雪    币: 120
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
我感觉楼主可以尝试在API头部写INT3断点(1字节)。
至于4字节HOOK的话,jmp的短跳占两个字节,长跳5字节,CALL也占5字节。。。
2016-8-26 23:27
0
雪    币: 488
活跃值: (3149)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
11
8楼分析很到位。
异常处理的hook确实存在效率问题,同样的代码,jmp基本无延迟,异常接管明显卡。
2016-9-6 19:13
0
雪    币:
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我也有同样问题。楼主怎么解决的
2017-4-26 19:40
0
雪    币: 1042
活跃值: (470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
比较赞同  11楼的。
2017-4-27 15:58
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14




封心aa

我也有同样问题。楼主怎么解决的

          找了一些汇编内容      没发现有什么好方法,   一定要用的话   只能如2    3      4楼所说    采用二段跳。

也就是还需要在函数头修改处    前后128字节内找一小块内存    来填充二次跳转代码。


2017-5-5 21:27
0
游客
登录 | 注册 方可回帖
返回
//