首页
社区
课程
招聘
[原创] BudHook :又一 Android hook 框架,基于YAHFA,但写起来更方便,类似于Xposed。
2018-4-26 21:53 12678

[原创] BudHook :又一 Android hook 框架,基于YAHFA,但写起来更方便,类似于Xposed。

2018-4-26 21:53
12678
用过YAHFA的都知道:每hook一个方法,就要写一个类。更具体来说,YAHFA的实现要求每hook一个方法就要写一个方法来替换它,如果还想再调用原方法,还要再写一个方法来保存它。写起来很麻烦。
BudHook解决了这个问题,它用起来是这样的:


你可以在 MethodHookParams 中获取你想知道的一切,并且更改他们。

原理:

BudHook用到了下面三种框架:
YAHFA :ART模式下的hook框架,没有YAHFA就没有BudHook。
asmdex :动态的生成 smali 代码。(发帖的时候突然发现官网改版了,在官网居然找不到asmdex了。。)
TurboDex :不进行优化,更快的加载dex文件。 测试中发现 TurboDex使dex不被优化的特性也可能恰巧解决了YAHFA有时调用不到原方法的问题。

简单来说:
BudHook在获取到需要hook的方法后,会根据这个方法使用asmdex生成一个类,这个类中包含了两个方法,这两个方法就是用于替换原方法和保存原方法的。对于基本类型,BudHook会自动装箱拆箱。对于抛出的异常,BudHook会捕捉后抛出,当然你可以更改这个异常。

项目地址

https://github.com/bmax121/BudHook









[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞1
打赏
分享
最新回复 (18)
雪    币: 709
活跃值: (2230)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
sudami 25 2018-4-26 22:08
2
0
跟某大牛的 epic 相比,有何优势所在呀
最后于 2018-4-26 22:09 被sudami编辑 ,原因:
雪    币: 241
活跃值: (226)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
ckis 2018-4-27 08:22
3
0
epic有些BUG挺让人头疼 
不知道你的框架解决了吗

稍等贴BUG代码
雪    币: 580
活跃值: (1502)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bmax 2018-4-27 08:32
4
0
优势不敢当,这种方式也有不足的地方,只是提供了另一种简单的思路
雪    币: 580
活跃值: (1502)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bmax 2018-4-27 08:35
5
0
ckis epic有些BUG挺让人头疼 不知道你的框架解决了吗 稍等贴BUG代码
代码到现在为止只进行了简单的测试,可能还有很多没有考虑到的地方,请把bug砸向我
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
junkboy 2018-4-27 08:56
6
0
谢谢~等会试下
雪    币: 5855
活跃值: (438)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
NightGuard 1 2018-4-27 10:07
7
0
只用过Xposed,请问和Xposed比,有什么优势不?
雪    币: 241
活跃值: (226)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
ckis 2018-5-3 10:35
8
0
试用感受
因为是基于YAHFA的  所以稳定性要稍强于EPIC框架  初期的时候有BUG也是比较正常的  作者也在尽力修复  我试用后  感觉不错
EPIC框架的实现方式有些短板和劣势  在这个框架内得到了解决
稳定性受限于作者使用的实现方式  相较于YAHFA本身要低一些  但易用性大幅度提升

值得注意的地方
因为需要动态生成静态类  在加载时  会有不同classloader造成引用问题  在使用时注意下
雪    币: 2719
活跃值: (1502)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Vn小帆 2018-5-3 14:39
9
0
frida  都比这些好用多了
雪    币: 13432
活跃值: (4763)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tDasm 2018-5-4 16:54
10
0
需要root?
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_啊啊啊_709090 2018-5-4 23:20
11
0
看起来很带劲的样子~~~~~~~~~~~~~~
雪    币: 19
活跃值: (1056)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
iceway 2018-5-5 19:32
12
0
支持MIUI  Oreo吗
雪    币: 174
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
koangel 2018-6-23 11:11
13
0
怎么结合VirtualApp?目前来说  感觉还是用起来很麻烦
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
YerikK 2018-6-25 15:39
14
0
Vn小帆 frida 都比这些好用多了
FRIDA  在连接模拟器的时候,无返回值。模拟器是腾讯手游助手syzs.qq.com,这个您有什么思路吗?
雪    币: 2719
活跃值: (1502)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Vn小帆 2018-6-25 17:39
15
0
YerikK FRIDA 在连接模拟器的时候,无返回值。模拟器是腾讯手游助手syzs.qq.com,这个您有什么思路吗?
加我QQ  2687757224
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
YerikK 2018-6-25 17:49
16
0
Vn小帆 加我QQ 2687757224
好的,已加。
雪    币: 4
活跃值: (197)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
liuxucau 2018-11-8 21:58
17
0
你好,BudHelpers这个类和BudBridge这个类里面的方法为什么都是空的?
雪    币: 2649
活跃值: (1541)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hhhaiai 2018-11-9 17:56
18
0
需要root吗?
雪    币: 580
活跃值: (1502)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bmax 2020-12-27 09:47
19
0
现在有很多好用的框架在,此早已不再维护。
游客
登录 | 注册 方可回帖
返回