首页
社区
课程
招聘
13
[原创] XposedFridaBridge:使用Frida加载Xposed插件
发表于: 2020-7-9 17:22 14369

[原创] XposedFridaBridge:使用Frida加载Xposed插件

2020-7-9 17:22
14369

在前文《Frida加载和启动XServer》中提到,Xposed的使用环境越来越受限制。Frida成为了新宠,这在论坛中新技术文章的频率中就可以看到。
但是不可否认的是,Xposed的生态和工具还是相当的丰富。所以,如果能将Xposed移植到Frida中,那将是极好的。

Xposed API本身的移植在技术上是畅通的,比如EdXposed等,使用其他框架来实现Xposed API是可行的。实质上讲,实现Xposed API其实就是加载XposedBridge并实现其中的native方法,而Frida的Hook正好是一种native方法实现。

所以可以用Frida实现XposedBridge,然后剩下的杂七杂八的事情交给XposedBridge去做就行了。

有类似的还有@Leadroyal同学,他在《friposed —— Write java hook with frida》也提到了这种可能,对我有一些启发。不过确实说来容易做来难,Frida实现Xposed Bridge里有不少坑,甚至发现了Frida的BUG提了Issue。

项目地址:https://github.com/monkeylord/XposedFridaBridge

使用前要做一点准备

比如说,目标应用是com.monkeylord.hooktarget,要使用的插件是justtrustme

然后就可以用Frida在目标应用里启动Xposed和插件了

效果:
图片描述
然后Burp里就顺利抓到包了。

这是XposedBridge寻找插件时加载的配置文件,可以在XposdInstaller沙箱中的conf/modules.list看到,其格式很简单,就是插件APK的路径,每行一个。其实这些APK不安装也行,只要在里面指明APK路径就行。所以其实完全可以不安装:

发现Frida在夜神模拟器中不能Hook com.android.org.conscrypt.TrustManagerImpl 中的checkServerTrusted方法,否则会崩溃,这不是XposedFridaBridge的问题,可能是模拟器和Frida不兼容。
在测试设备(Nexus 5)中一切正常,本质上还是Hook框架不稳定。
如果发现其他问题,欢迎提出。

使用Frida实现了Xposed API,实现Xposed API的实质是加载XposedBridge.jar并实现其native方法。成功实现之后,就可以用Frida在无需Xposed Framework的情况下加载Xposed插件了。


[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费 13
支持
分享
赞赏记录
参与人
雪币
留言
时间
心游尘世外
感谢你的贡献,论坛因你而更加精彩!
2025-1-18 05:03
飘零丶
感谢你的贡献,论坛因你而更加精彩!
2024-10-27 04:12
PLEBFE
为你点赞~
2022-7-30 13:14
shinratensei
为你点赞~
2022-7-15 11:37
xxRea
为你点赞~
2020-12-7 17:50
dreamhake
为你点赞~
2020-10-17 09:09
cyxvc
为你点赞~
2020-9-3 11:13
0xEA
为你点赞~
2020-8-19 13:46
Love Lenka
为你点赞~
2020-8-4 14:09
0x指纹
为你点赞~
2020-7-9 20:20
zhighest
为你点赞~
2020-7-9 18:11
smartdon
为你点赞~
2020-7-9 17:35
Craft_A
为你点赞~
2020-7-9 17:32
最新回复 (23)
雪    币: 3549
活跃值: (941)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
太强了
2020-7-9 17:32
0
雪    币: 1308
活跃值: (559)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
mark 学习一下
2020-7-9 17:34
0
雪    币: 1867
活跃值: (4158)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
xp遗民又可以挣扎一段时间了
2020-7-9 18:08
1
雪    币: 136
活跃值: (1227)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2020-7-9 22:28
0
雪    币: 36
活跃值: (1151)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
mark
2020-7-10 09:26
0
雪    币: 3104
活跃值: (3566)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
7
大神
2020-7-10 10:48
0
雪    币: 348
活跃值: (1763)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
太牛逼了
2020-7-10 10:58
0
雪    币: 81
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
强啊,铁汁
2020-7-11 14:10
0
雪    币: 1224
活跃值: (2635)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
很有想法。点赞
2020-7-14 10:03
1
雪    币: 765
活跃值: (1450)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
11
我这个Xposed遗民可以坐到一边等待Xposed的诸神黄昏了。赞赞赞
2020-7-14 14:13
0
雪    币: 3123
活跃值: (4277)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
厉害了
2020-7-27 18:00
0
雪    币: 4752
活跃值: (2923)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
13

非常好的项目,做到了我曾经想去做、但没做到的事情,学习了

最后于 2020-7-27 19:54 被LeadroyaL编辑 ,原因:
2020-7-27 19:53
0
雪    币: 3
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
好了,我这个Xposed遗民可以坐到一边等待Xposed的诸神黄昏了。
2020-7-28 12:31
0
雪    币: 2041
活跃值: (3140)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
好思路 赞
2020-7-28 14:46
0
雪    币: 76
活跃值: (1105)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
16
应该给加个精的!
2020-9-3 11:12
0
雪    币: 136
活跃值: (1227)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
大佬 xserver报错了 说不能在主线程进行网络请求 这个怎么搞?
2020-12-3 14:05
0
雪    币: 447
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
人才!
2020-12-4 07:20
0
雪    币: 634
活跃值: (1503)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
万里星河 大佬 xserver报错了 说不能在主线程进行网络请求 这个怎么搞?
你试试看
setprop persist.sys.strictmode.disable 1
2020-12-4 10:07
0
雪    币: 136
活跃值: (1227)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
Monkeylord 你试试看 setprop persist.sys.strictmode.disable 1
大佬 我昨天直接定位源码 把trysend()函数放在了子线程 好像能跑了 但是关于xserver如何主动调用 好像要设置中间人什么的 还是不明白 而且堆栈调用信息也没看到 主动调用时调用对象也总是为空 不知道是不是我乱改出的bug 我以前搞过java的服务器开发 那时用的Spring+tomcat 不知道大佬这个是用了什么技术把安卓手机本身变成服务器的呀?
2020-12-4 13:25
0
雪    币: 136
活跃值: (1227)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
其实关于Frida加载xposed 我觉得可以把hook的任务交给Frida hook之后的功能实现交给java 把Java写的功能代码编译成dex或者apk,frida hook成功后动态加载dex,调用dex的函数 把hook结果传到java 应该也可行吧
2020-12-4 13:46
0
雪    币: 634
活跃值: (1503)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
22
万里星河 其实关于Frida加载xposed 我觉得可以把hook的任务交给Frida hook之后的功能实现交给java 把Java写的功能代码编译成dex或者apk,frida hook成功后动态加载dex ...
可行的。动态加载,然后去调里面的方法。
实际上frida在动态创建新类时也是这么干的。
缺点是学习成本高,不如复用已有的格式。
所以有了XposedFridaBridge来跑xposed插件。
2020-12-6 01:43
0
雪    币: 15
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
大佬 这个XposedBridge是多少版本的
2022-6-21 16:19
0
雪    币: 441
活跃值: (4927)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
24
赞,思路不错
2023-9-7 16:45
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册