首页
论坛
课程
招聘
雪    币: 559
活跃值: 活跃值 (634)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝

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

2020-7-9 17:22 3710

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

2020-7-9 17:22
3710

背景

在前文《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

使用

使用前要做一点准备

  1. 将XposedBridge.jar推进设备
  2. 安装Xposed插件,或将APK推进设备
  3. 配置modules.list

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

adb push XposedBridge.jar /data/local/tmp/XposedBridge.jar
adb install justtrustme.apk
adb shell 'echo "/data/app/just.trust.me-1/base.apk" > /data/local/tmp/conf/modules.list'

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

frida -U com.monkeylord.hooktarget -l .\XposedFridaBridge.js

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

关于modules.list

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

adb push XposedBridge.jar /data/local/tmp/XposedBridge.jar
adb push justtrustme.apk /data/local/tmp/justtrustme.apk
adb push xserver.apk /data/local/tmp/xserver.apk
adb shell 'echo "/data/local/tmp/justtrustme.apk" > /data/local/tmp/conf/modules.list' 
adb shell 'echo "/data/local/tmp/xserver.apk" >> /data/local/tmp/conf/modules.list'

已知问题

发现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插件了。

 

好了,我这个Xposed遗民可以坐到一边等待Xposed的诸神黄昏了。



HWS计划·2020安全精英夏令营来了!我们在华为松山湖欧洲小镇等你

最新回复 (14)
雪    币: 3736
活跃值: 活跃值 (143)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
smartdon 活跃值 1 2020-7-9 17:32
2
0
太强了
雪    币: 1652
活跃值: 活跃值 (47)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
Craft_A 活跃值 1 2020-7-9 17:34
3
0
mark 学习一下
雪    币: 1662
活跃值: 活跃值 (160)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
virjar 活跃值 1 2020-7-9 18:08
4
1
xp遗民又可以挣扎一段时间了
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_dkmcfvpg 活跃值 2020-7-9 22:28
5
0
雪    币: 23
活跃值: 活跃值 (48)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
芃杉 活跃值 2020-7-10 09:26
6
0
mark
雪    币: 597
活跃值: 活跃值 (495)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
Snark 活跃值 1 2020-7-10 10:48
7
0
大神
雪    币: 98
活跃值: 活跃值 (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lipengzhu 活跃值 2020-7-10 10:58
8
0
太牛逼了
雪    币: 229
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
Kris777 活跃值 2020-7-11 14:10
9
0
强啊,铁汁
雪    币: 269
活跃值: 活跃值 (69)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dryzh 活跃值 2020-7-14 10:03
10
1
很有想法。点赞
雪    币: 1701
活跃值: 活跃值 (108)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
skyun 活跃值 3 2020-7-14 14:13
11
0
我这个Xposed遗民可以坐到一边等待Xposed的诸神黄昏了。赞赞赞
雪    币: 3134
活跃值: 活跃值 (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
VNRKDOEA 活跃值 2020-7-27 18:00
12
0
厉害了
雪    币: 78
活跃值: 活跃值 (26)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
LeadroyaL 活跃值 2020-7-27 19:53
13
0

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

最后于 2020-7-27 19:54 被LeadroyaL编辑 ,原因:
雪    币: 203
活跃值: 活跃值 (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hatawong 活跃值 2020-7-28 12:31
14
0
好了,我这个Xposed遗民可以坐到一边等待Xposed的诸神黄昏了。
雪    币: 1604
活跃值: 活跃值 (145)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
世界美景 活跃值 1 2020-7-28 14:46
15
0
好思路 赞
游客
登录 | 注册 方可回帖
返回