首页
社区
课程
招聘
[求助]Android内置Frida-Gadget问题
发表于: 2021-6-26 10:26 6896

[求助]Android内置Frida-Gadget问题

2021-6-26 10:26
6896

我需开发一款运行时hook的Android SDK,供公司其他App接入,并且要支持非root情况下运行,因此我在SDK代码中内置了frida-gadget,目前有遇到以下两个问题,希望各位大佬支援一下:
问题1、内置Frida-gadget后,如果应用是开启混淆的,需要怎么做hook?通过脚本java.use指定方式的前提是我要知道混淆后的包名、类名,这种方式要求我打包完还要再反编译,有没有类似smali这种的,可以直接操作java字节码,即使混淆开启,运行阶段我仍可以准确找到原始类信息?
问题2、内置Frida-gadget后我配置的使用内置脚本的方式,代码如下:libgadget.config.so中配置的内如如下:
{
"interaction": {
"type": "script",
"path": "/mnt/sdcard/gadget.js",
"on_load": "resume"
}
}
path这块我指定的是"/mnt/sdcard/gadget.js"。因为是在外置sd卡需要依赖存储权限,需要用户运行时授权才行。因此我在想这个path有没有办法指定到/data/data/${应用目录}下面,并且这个应用目录是动态可设置的(因为我提供的是sdk,应用包名没法提前获取到),或者有别的可读写路径也可以。
以上两个问题,若有大佬知道还请赐教,感谢~!


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

收藏
免费 1
支持
分享
最新回复 (11)
雪    币: 2089
活跃值: (3933)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
试试Xposed?
https://coolapk.com/apk/io.virtualapp.sandvxposed
2021-6-26 16:08
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
lhxdiao 试试Xposed? https://coolapk.com/apk/io.virtualapp.sandvxposed
需要支持手机非root才行,因为要提供sdk最好可以内置app里面,所以xposed是不是不太合适
2021-6-27 18:05
0
雪    币: 181
活跃值: (2943)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mb_pquleemt 需要支持手机非root才行,因为要提供sdk最好可以内置app里面,所以xposed是不是不太合适
没认真看项目啊铁子,2楼说的就是非root下的xp容器
2021-6-28 01:05
0
雪    币: 68
活跃值: (1662)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
混淆可能没这么容易处理,只不过应用目录这个办法比较多,可以考虑做成一个小工具。传入apk成品你再根据apk包填信息,不一定要在编译时做。如果一定要在编译时的话可以考虑gradle脚本或者写gradle插件编译时做事情
2021-6-28 10:26
0
雪    币: 1867
活跃值: (3958)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
最近怎么这么多做 Frida-Gadget的
2021-6-28 10:39
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
huaerxiela 没认真看项目啊铁子,2楼说的就是非root下的xp容器
我的错,对这个项目不太了解,我去学习一下,谢谢
2021-6-29 09:35
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
lhxdiao 试试Xposed? https://coolapk.com/apk/io.virtualapp.sandvxposed
谢谢大神,我了解一下sandvxposed,另外这个项目兼容性如何?
2021-6-29 09:36
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
SuMilk 混淆可能没这么容易处理,只不过应用目录这个办法比较多,可以考虑做成一个小工具。传入apk成品你再根据apk包填信息,不一定要在编译时做。如果一定要在编译时的话可以考虑gradle脚本或者写gradle ...
frida-gadget似乎没有提供接口,动态修改脚本路径,目前看都是需要提前配置好的,这样反而会导致没法灵活切换
2021-6-29 09:37
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
因需要支持Android、iOS两端,所以最终还是决定用Frida, 各位大神,通过gadget方式嵌入到应用后,如果应用代码已做过混淆,有什么办法可以在运行时获取到内存中原始JAVA类信息?因为目标应用也是我们自己的应用,原始代码我们是知道的,只是想通过非倾入的方式写一些hook脚本做测试,不想每次都反编译自己的包
2021-7-1 16:55
0
雪    币: 4
活跃值: (327)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
app 先读入 proguard 的map ,做一次转换再重写js,再用 gadget 载入吧
2021-7-7 16:22
1
雪    币: 550
活跃值: (2387)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
12
下面是官方的描述,所以你可以将libgadget.so, libgadget.config.so放到data/data/pkg/下面,然后这个path路径使用相对路径就可以了
path: string specifying the filesystem path to the script to load. May also be a path relative to where the Gadget binary resides. Specifying a relative path on iOS will first look for the script relative to the app’s Documents directory. This means you can use iTunes file sharing to upload an updated version of the script, or update it by vending the whole container through AFC, which is allowed for debuggable apps. This is especially useful together with
2021-7-23 15:44
0
游客
登录 | 注册 方可回帖
返回
//