免root使用frida-gadget去除autojs主流应用限制

最近在研究frida-gadget,意识到安卓里,当可以在进程内运行代码时,实际上就拥有了与开发者同等的对进程的控制权。利用frida的hook能力,可以在autojs,AIDE达到类似xposed的功能。恰好之前研究过autojs去除主流应用限制的方法,于是使用frida重写并分享出来。

获取并配置frida-gadget

首先在github下载合适的frida-gadget
frida-gadget
这里主要是选择合适的架构。

下载后解压并重命名获得frida-gadget.so(名字可以随便取,但必须和配置文件名保持一致)
同级目录下新建配置文件frida-gadget.config
写入配置如下

{
    "interaction": {
        "type": "script",
        "path": "/sdcard/脚本/frida解除限制.js"
    }
}

具体配置见frida-gadget官网,此处表示脚本模式运行,脚本路径/sdcard/脚本/frida解除限制.js

复制frida-gadget文件到autojs数据目录

在autojs里运行脚本,使用files.copy将上述两个文件复制到autojs的内置存储路径/data/data/org.autojs.autojspro/,以便后续运行

编写hook代码

frida使用javascript作为脚本语言,新建配置文件中指定的脚本文件/sdcard/脚本/frida解除限制.js
hook代码编写类似xposed,需要参考autojs脱壳后的dex,脱壳也可以使用frida配合termux完成,如果有人看的话,后续或许简单介绍一下。

hook代码如下

Java.perform(function() {
    var config_className = Java.use('com.stardust.autojs.core.accessibility.AccessibilityBridge').mConfig._p[2].className
    var mN = Java.enumerateMethods(config_className+"!*(java.lang.String): boolean/su")[0].classes[0].methods[0]
    Java.use(config_className)[mN.substring(0, mN.indexOf('('))].implementation = function(str){
        console.log(str)
        return false;
    }
    
    let AIC_ins = Java.use('android.view.accessibility.AccessibilityInteractionClient').getInstance()
    Java.use('com.stardust.view.accessibility.AccessibilityService').getRootInActiveWindow.implementation = function(){
        return AIC_ins.getRootInActiveWindow(Java.use('com.stardust.view.accessibility.AccessibilityService').instance.value.mConnectionId.value)
    }
});

autojs启动frida-gadget.so

编写并运行autojs脚本文件用于加载frida-gadget.so
,并且可以设置脚本定时任务:autojs启动时运行,已达到无感去除主流应用限制。

java.lang.System.load( "/data/data/org.autojs.autojspro/frida-gadget.so")

效果图

最后上一个效果图
在这里插入图片描述


2023.07.28更新:

安卓13修改了getRootInActiveWindow函数的定义,所以需要修改hook代码的第11行

return AIC_ins.getRootInActiveWindow(Java.use('com.stardust.view.accessibility.AccessibilityService').instance.value.mConnectionId.value, 0)

追加一个参数0

### NEUDET与YOLOv11的技术细节及其实现 #### YOLOv11的基础架构概述 YOLOv11作为目标检测领域的一个重要进展,继承并优化了许多前代版本的优点。通过点击上方链接进入YOLOv11的GitHub仓库,可以找到详细的安装指南以及如何下载打包好的YOLOv11代码与预训练权重文件到本地的方法[^1]。 #### NEUDET的具体实现方式 NEUDET是一个基于神经网络的目标检测框架,其设计旨在提高小物体检测精度的同时保持较高的推理速度。对于YOLOv11而言,NEUDET引入了几项关键技术: - **特征金字塔网络(FPN)**:为了增强模型对不同尺度对象的理解能力,采用了自底向上的路径聚合方法来构建更强大的多层表示。 - **空间注意力模块(SAM)**:该组件能够自动学习输入图像中的显著区域,并赋予这些位置更高的权重,从而改善整体性能。 - **通道注意力机制(CAM)**:通过对各个卷积核响应的重要性进行建模,进一步提升了模型捕捉细微差异的能力。 ```python import torch.nn as nn class SAM(nn.Module): def __init__(self, channel): super(SAM, self).__init__() self.conv = nn.Conv2d(channel, 1, kernel_size=7, padding=3) def forward(self, x): attention_map = self.conv(x) max_out, _ = torch.max(attention_map, dim=1, keepdim=True) avg_out = torch.mean(attention_map, dim=1, keepdim=True) out = max_out + avg_out return x * (torch.sigmoid(out)) ``` 上述代码展示了空间注意力模块的一种简单实现形式,其中`conv`函数用于生成单通道的关注度映射;接着利用最大池化和均值池化的组合操作计算最终关注度得分,并将其应用于原始特征图上以突出重要的视觉线索[^2]。 #### 使用说明 要开始使用NEUDET-YOLOv11解决方案,建议遵循官方文档提供的指导完成环境配置工作之后再尝试运行示例脚本或调整参数设置来进行定制开发。此外,还可以订阅相关专栏获取更多关于算法调优方面的技巧和支持材料。
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值