通过反编译去除autojs特征的代码实现防检测的目的
需要以下软件
软件名 | 类型 | 用途 |
---|---|---|
apktool | win软件 | 用于反编译apk文件 |
JDK | win软件 | apktool软件需要用到JDK环境 |
everything | win软件 | 用于快速搜索文件 |
grepWin | win软件 | 用于批量替换文本 |
MT管理器 | 安卓软件 | 用于签名软件。也可以用电脑端其他签名软件代替 |
实现思路
通过《apktool》软件进行反编译,使用《everything》软件快速搜索出包含《autojs》、《autoxjs》、《auojs》、《auto.js》、《scriptexecution》、《scriptexecute》、《使脚本自动操作(点击、长按、滑动等)。。。》等文本,利用《grepWin》软件批量替换成其他文本,再重新编译、签名,达到防止检测的目的。
修改教程
首先把autojs编译好的软件,放在apktool目录下,执行以下命令进行解包
apktool d 软件名.apk
1. 修改文件名
需要将以下文件,文件名替换成其他,以下作为示例*
原文本 | 新文本 | 注释 |
---|---|---|
autojs | xiaomi | 这里将autojs改成xiaomi |
autoxjs | xiaomi | 如果不是autox.js编译的应用可以省略这步,可以和上面的相同 |
auojs | star | 这里将auojs改成start,最好不要和上面的相同 |
scriptexecution | coreservers | 这里将scriptexecution改成coreservers,最好不要和上面的相同 |
scriptexecute | coreservers | 这里将scriptexecute改成coreservers,可以和上面的相同 |
以下为详细步骤
打开《everything》软件,在上方菜单栏选《搜索》—《高级搜索》,在《必选单词》填入:autojs,在最下方的《搜索文件夹》浏览:选择解包后的路径,如下图所示
将搜索到的结果全部包含 autojs 的手动重命名成其他文本,这里演示的替换成 xiaomi ;命名其它名称也可以,参照上方表格。
同理,以上表格所有的原文本都需要替换一遍;如果使用的是autoxjs编译的软件,还需要搜索一次 autoxjs ,将文件夹名称替换成其他文本,步骤都是相同的,不再重复截图展示
2. 修改文本内容
根据上方表格,使用grepWin软件将文件里面包含原文本的字符替换成新文本
以下为详细步骤
打开《grepWin》软件
在 Search in 输入框内填写反编译后的路径,建议直接复制粘贴路径,或者选中反编译后的文件夹,长按不放,拖动到输入框上,自动会填写路径。
在 Search栏 单选 Text search
在 Search for 输入框中填写 原文本
在 Replace with/Capture format 输入框填写 新文本
在 Limit search栏 单选 All sizes
点击右下方的 Replace 按钮进行替换文本。会提示是否不创建备份,这里选 是,就已经替换完成了。
此时再按一次 Search 按钮,搜索一下,会发现已经没有包含 原文本 的文件了。
将上方表格里的 原文本 ,按照表格的内容,使用同样的方法进行替换,软件不要关闭,下一步需要用到。
3.替换 无障碍 界面的文本
还是《grepWin》软件
Search in 输入框 和 Search栏 还有 Limit search栏 都不用管,与上一步一致。
在 Search for 输入框中填写:使脚本自动操作(点击、长按、滑动等)所需,若关闭则只能执行不涉及自动操作的脚本。
在 Replace with/Capture format 输入框内填写需要显示的文本,这里演示填写: bfcore核心服务,请勿关闭������
点击右下方的 Replace 按钮进行替换文本。会提示是否不创建备份,这里选 是,就已经替换完成了。
4.删除多余的不必要权限
打开 反编译 后的软件目录,使用编辑器或者记事本打开AndroidManifest.xml文件
在没有开启自动换行的情况下,大约在 第2行 到 第186行, <uses-permission 开头 > 结尾的代码文本全部删除。
添加以下必要的权限代码文本:
<!--存储读写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!--Android 11以上的读写权限-->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
<!--Android 8以上的未知来源应用权限,Android8以上必须加入,否则会出现解析安装包出错,无法进行安装-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<!--访问网络权限-->
<uses-permission android:name="android.permission.INTERNET"/>
<!--显示在其他应用上方(悬浮窗)权限-->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<!--无障碍权限-->
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"/>
<!--前台服务权限-->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<!--后台运行权限-->
<uses-permission android:name="android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND"/>
如下图所示
5.修改版本号(按需选择是否修改)
貌似是apktool的原因,会导致编译后的应用版本号为6.2.7
打开 反编译 后的软件目录,使用编辑器或者记事本打开apktool.yml文件
在最后一行的 versionName: 6.2.7 改成自己的想要的版本号,这边改成1.1.0
如下图所示
6.编译APK
CMD进入 apktool 目录,执行以下命令进行编译
apktool b bfcore
编译成功后会在 反编译目录下 多出一个 dist 文件夹,在里面就是已经编译好的apk安装包(还未签名)
如下图所示
7.签名
编译好后的软件是没有签名的,所以需要签名,这里演示使用 mt管理器 进行签名
讲上一步编译好的APK复制到自己熟悉的路径目录下
点击 【apk】 » 左下角【功能】 » 左上角【APK签名】 » 【确定】,会生成【软件名_sign.apk】的安装包。如下图所示
至此,通过反编译去除autojs特征的代码实现防检测的目的已经达到。
最后,相关软件地址:
软件名 | 下载地址 |
---|---|
JDK | https://www.oracle.com/cn/java/technologies/downloads/ |
Everything | https://www.voidtools.com/zh-cn/ |
grepWin | https://github.com/stefankueng/grepWin/releases |
apktool | https://ibotpeaches.github.io/Apktool/install/ |
MT管理器 | https://coolapk.com/apk/bin.mt.plus |