缤纷科技站
世间百态 人性丑恶

【技巧】autojs编译的软件防检测无障碍

Zeb 于 2022-11-22 发布
autojs

通过反编译去除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
图2

1. 修改文件名

需要将以下文件,文件名替换成其他,以下作为示例*

原文本 新文本 注释
autojs xiaomi 这里将autojs改成xiaomi
autoxjs xiaomi 如果不是autox.js编译的应用可以省略这步,可以和上面的相同
auojs star 这里将auojs改成start,最好不要和上面的相同
scriptexecution coreservers 这里将scriptexecution改成coreservers,最好不要和上面的相同
scriptexecute coreservers 这里将scriptexecute改成coreservers,可以和上面的相同

以下为详细步骤

打开《everything》软件,在上方菜单栏选《搜索》—《高级搜索》,在《必选单词》填入:autojs,在最下方的《搜索文件夹》浏览:选择解包后的路径,如下图所示

图3

将搜索到的结果全部包含 autojs 的手动重命名成其他文本,这里演示的替换成 xiaomi ;命名其它名称也可以,参照上方表格。

图4

同理,以上表格所有的原文本都需要替换一遍;如果使用的是autoxjs编译的软件,还需要搜索一次 autoxjs ,将文件夹名称替换成其他文本,步骤都是相同的,不再重复截图展示

2. 修改文本内容

根据上方表格,使用grepWin软件将文件里面包含原文本的字符替换成新文本

以下为详细步骤

打开《grepWin》软件
在 Search in 输入框内填写反编译后的路径,建议直接复制粘贴路径,或者选中反编译后的文件夹,长按不放,拖动到输入框上,自动会填写路径。
在 Search栏 单选 Text search
在 Search for 输入框中填写 原文本
在 Replace with/Capture format 输入框填写 新文本
在 Limit search栏 单选 All sizes
点击右下方的 Replace 按钮进行替换文本。会提示是否不创建备份,这里选 是,就已经替换完成了。
此时再按一次 Search 按钮,搜索一下,会发现已经没有包含 原文本 的文件了。
将上方表格里的 原文本 ,按照表格的内容,使用同样的方法进行替换,软件不要关闭,下一步需要用到。
图6

3.替换 无障碍 界面的文本

还是《grepWin》软件
Search in 输入框 和 Search栏 还有 Limit search栏 都不用管,与上一步一致。
在 Search for 输入框中填写:使脚本自动操作(点击、长按、滑动等)所需,若关闭则只能执行不涉及自动操作的脚本。
在 Replace with/Capture format 输入框内填写需要显示的文本,这里演示填写: bfcore核心服务,请勿关闭������ 点击右下方的 Replace 按钮进行替换文本。会提示是否不创建备份,这里选 是,就已经替换完成了。 图7

4.删除多余的不必要权限

打开 反编译 后的软件目录,使用编辑器或者记事本打开AndroidManifest.xml文件
图8
在没有开启自动换行的情况下,大约在 第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"/>


如下图所示
图9

5.修改版本号(按需选择是否修改)

貌似是apktool的原因,会导致编译后的应用版本号为6.2.7
打开 反编译 后的软件目录,使用编辑器或者记事本打开apktool.yml文件
在最后一行的 versionName: 6.2.7 改成自己的想要的版本号,这边改成1.1.0 如下图所示
图10
图11

6.编译APK

CMD进入 apktool 目录,执行以下命令进行编译

apktool b bfcore

编译成功后会在 反编译目录下 多出一个 dist 文件夹,在里面就是已经编译好的apk安装包(还未签名)
如下图所示 图12

7.签名

编译好后的软件是没有签名的,所以需要签名,这里演示使用 mt管理器 进行签名
讲上一步编译好的APK复制到自己熟悉的路径目录下
点击 【apk】 » 左下角【功能】 » 左上角【APK签名】 » 【确定】,会生成【软件名_sign.apk】的安装包。如下图所示
图13

至此,通过反编译去除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