首页
社区
课程
招聘
[原创]小菜花的frida-gadget持久化方案汇总
发表于: 2021-6-27 21:41 35049

[原创]小菜花的frida-gadget持久化方案汇总

2021-6-27 21:41
35049

    看到frida-gadget持久化的话题依旧在讨论,遂想记录下自己实践过的方案,第一次在看雪发文,不当之处大手子请轻喷 

                         

    今天咱们讨论的是frida-gadget的持久化,通俗理解也就是注入frida-gadget,让目标app加载该so文件,进而实现frida的hook功能,并且和app共生,一定程度上也免去了反调试,反frida(修改so名字,从maps看检测风险减小,或许从hook原理继续检测?先不说find_mem_string检测)的情况,比较适用于大厂强风控下的群控hook的生产场景(这里不谈一键新机-设备指纹什么的),所以这个方案还是适合和需要掌握并落地的。

    一般来说,需要考虑三种设备环境的情况,那就是root和非root和源码定制,接下来我根据自己的了解和实践分别介绍下拙见。

    先来看这篇文章在未root的设备上使用frida,作者主要介绍的是利用lief工具把frida-gadget链接到目标app的so文件上进而实现加载和hook功能,优缺点作者也都介绍了,作为引言部分,就先从这篇文章获取到lief工具的用途和使用吧。


    1,(实践通过)目标app有使用so,利用lief工具把frida-gadget和目标app的so链接到一起,实现加载和hook

        如:从/data/app/packageName-xxx/lib下,找到app的so然后和frida-gadget进行链接

        风险点:需要过root检测,so文件完整性检测(如:目标app可扫描/data/app/packageName-xxx/lib目录下所有文件,和文件md5上传服务器做校验

    2,(未实践)利用lief工具把frida-gadget和系统库(如libart,libc)链接到一起,实现加载和hook

        风险点:需要过root检测

    3,(未实践)magisk模块方案注入frida-gadget,实现加载和hook

        见文章Frida持久化方案(Xcube)之方案一——基于Magisk和Riru,然后hanbing老师也把fridamanger做成了magisk模块,那天见在群里已经通知了

        风险点:需要过root检测,magisk检测

    4,(未实践)xposed模块方案注入frida-gadget,实现加载和hook

        见文章Frida持久化方案(Xcube)之方案二——基于xposed

        风险点:需要过root检测,xposed检测

    1,(未实践)目标app没有使用so,修改smali文件加入代码load frida-gadget然后再重打包,实现加载和hook


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2021-11-16 10:58 被huaerxiela编辑 ,原因:
收藏
免费 10
支持
分享
打赏 + 11.00雪花
打赏次数 2 雪花 + 11.00
 
赞赏  mfxiaosheng   +1.00 2021/10/08 感谢分享~
赞赏  一位没有留下痕迹的看雪读者   +10.00 2021/06/28
最新回复 (23)
雪    币: 1867
活跃值: (3958)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
哥哥,平头哥有开源计划了。你别做了,到时候直接加入进来吧
2021-6-27 22:19
0
雪    币: 181
活跃值: (2943)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

支持渣总,渣总牛plus

最后于 2021-6-27 22:24 被huaerxiela编辑 ,原因:
2021-6-27 22:23
0
雪    币: 181
活跃值: (2943)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
virjar 哥哥,平头哥有开源计划了。你别做了,到时候直接加入进来吧
哈哈,阔以,支持渣总,先给平头哥预预热
2021-6-27 22:23
0
雪    币: 614
活跃值: (883)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
总结得挺全面的,点赞!
2021-6-28 14:58
0
雪    币: 109
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
hua哥tql
2021-6-28 18:07
0
雪    币: 34
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
大佬
2021-6-28 18:13
0
雪    币: 5
活跃值: (2595)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好帖 支持一下
2021-6-29 09:16
0
雪    币: 2141
活跃值: (4522)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
virjar 哥哥,平头哥有开源计划了。你别做了,到时候直接加入进来吧
什么时候 我坐等白嫖->又有代码可以抄了
2021-6-30 11:46
0
雪    币: 1867
活跃值: (3958)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
小黄鸭爱学习 什么时候 我坐等白嫖->又有代码可以抄了
抄可以,要相信你抄得越多,越容易变成我的付费用户。抄得越多越无法自拔,这就是嗑药
2021-6-30 23:17
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
感谢分享
2021-7-1 14:16
0
雪    币: 225
活跃值: (1089)
能力值: ( LV3,RANK:27 )
在线值:
发帖
回帖
粉丝
12
奋战了几个晚上,终于用magisk驱动gadget了
2021-7-14 09:42
0
雪    币: 181
活跃值: (2943)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
svengong 奋战了几个晚上,终于用magisk驱动gadget了
哈哈,这个不是hanbing巨巨写好了嘛
2021-7-15 18:30
0
雪    币: 225
活跃值: (1089)
能力值: ( LV3,RANK:27 )
在线值:
发帖
回帖
粉丝
14
huaerxiela 哈哈,这个不是hanbing巨巨写好了嘛
有链接么,
2021-8-13 14:06
0
雪    币: 400
活跃值: (775)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Da_
15
用gadget有个问题,需要重打包apk。我这边有个apk重打包后卡在启动页,不知有人会解决吗
2021-8-18 16:34
0
雪    币: 181
活跃值: (2943)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
mb_xkfbmxim 用gadget有个问题,需要重打包apk。我这边有个apk重打包后卡在启动页,不知有人会解决吗
上面引用的项目你都看看,扒扒github肯定能解决
2021-8-24 20:59
0
雪    币: 400
活跃值: (775)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Da_
17
huaerxiela 上面引用的项目你都看看,扒扒github肯定能解决
谢谢
2021-9-15 17:08
0
雪    币: 184
活跃值: (334)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
大佬, 按照ubuntu 20.04系统AOSP(Android 11)集成Frida https://www.mobibrw.com/2021/28588 这个编译Android 11,把frida-gadget 放到 system/lib下,用的文中的配置文件。
遇到个问题
1,重复绑定到 127.0.0.1:27042,只能绑定到第一个app。我测试,只能通过frida 链接到 蓝牙app,其他的app都不能通过frida连接。下面可以看到  pid=1897 监听了27042端口,其他进程都不能了,这个进程对应的app是com.android.bluetooth
。然后frida -U -p 1897 或者 frida -U com.android.bluetooth
可以进入frida 的shell。 
但是其他的进程都不能。提示Failed to attach: unable to act on other processes when embedded
0-07 20:53:24.263  1897  1910 I Frida   : Listening on 127.0.0.1 TCP port 27042
10-07 20:53:24.280  1912  1935 F Frida   : Failed to start: Unable to create socket: Operation not permitted
10-07 20:53:24.494  1972  1991 F Frida   : Failed to start: Unable to create socket: Permission denied

还有就是无法创建socket服务,没权限,这个我觉得影响不大,只要app能联网有intent权限就行。
2,Frida 用pc端 连接的时候出现问题。只能attach 第一个app,com.android.bluetooth,pid=1897。其他的都不行
Failed to attach: unable to act on other processes when embedded
2021-10-7 21:14
0
雪    币: 184
活跃值: (334)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
图样突森剖 大佬, 按照ubuntu 20.04系统AOSP(Android 11)集成Frida https://www.mobibrw.com/2021/28588 这个编译Android 11,把frida ...
配置如下
{
  "interaction": {
    "type": "listen",
    "address": "127.0.0.1",
    "port": 27042,
    "on_load": "resume"
  }
}
2021-10-7 21:17
0
雪    币: 181
活跃值: (2943)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
图样突森剖 大佬, 按照ubuntu 20.04系统AOSP(Android 11)集成Frida https://www.mobibrw.com/2021/28588 这个编译Android 11,把frida ...
看你说的样子是端口占用了吧
这边建议你反编译寒冰大佬的fridamanger app看下他的脚本文件处理逻辑(内心os:我估计你设备没对应的文件移动权限)
或者你搞个 应用程序进程 是否开启frida的配置文件(就类似youpk脱壳配置一样),你这个server场景不能全部进程都启用frida
2021-10-8 11:30
1
雪    币: 184
活跃值: (334)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
huaerxiela 看你说的样子是端口占用了吧 这边建议你反编译寒冰大佬的fridamanger app看下他的脚本文件处理逻辑(内心os:我估计你设备没对应的文件移动权限) 或者你搞个 应用程序进程 是否开启fri ...
2021-10-8 12:00
0
雪    币: 0
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
图样突森剖
大佬,我也遇到同样问题,目前有解决方案吗?
2022-1-13 23:17
0
雪    币: 2334
活跃值: (10386)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
【然后我又改了frameworks/base/core/jni/com_android_internal_os_Zygote.cpp的com_android_internal_os_Zygote_nativeForkAndSpecialize函数,实现了fork进程的时候dlopen frida-gadget给每个进程都加上frida】大佬,这个地方,有具体的操作文章吗
2023-1-16 16:43
0
雪    币: 336
活跃值: (319)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
运行frida以前, 你们尝试过运行 `su root` 命令吗?如你用magisk模块例如 `adb root`, 你必须手动切换到root.
为了确保你们作为adb shell中的root用户, 你可以用iconfig, 没作为root用户就会返回权限错误
2023-1-22 21:17
0
游客
登录 | 注册 方可回帖
返回
//