本帖最后由 正己 于 2024-8-10 11:43 编辑
前言
声明:本文仅供学习交流使用,所涉及的APP破解版不提供下载渠道。所涉及的技术请勿用于非法活动,否则所带来的一切后果自负。
使用工具
● NP管理器
开始实战
-
打开APP就有环境检测
-
管理器打开受害者
-
查看apk信息
-
选择resources文件
-
Arsc编辑
-
常量搜索
-
搜索“环境”
-
搜索结果,后面发现是flutter和原生Android混合开发
-
复制toast_app_fail
-
返回resource搜索代码toast_app_fail
11.搜索到0x7f0f00d7
-
返回dex
-
dex++编辑
-
全选dex
-
搜索十六进制0x7f0f00d7
-
搜到结果0x7f0f00d7的使用
-
进入MainActivity并定位到g方法
-
反编译为Java代码分析逻辑
[Java] 纯文本查看 复制代码
public final boolean v() {
//该方法检测签名信息
PackageManager packageManager = getPackageManager();
m.d(packageManager, "this.packageManager");
Signature[] signatureArr = packageManager.getPackageInfo(getPackageName(), 64).signatures;
m.d(signatureArr, "packageInfo.signatures");
return signatureArr[zxsq-anti-bbcode-0].hashCode() == 574540939;
}
-
搜索类DeviceUtils
-
搜索到DeviceUtils
-
反编译DeviceUtils类代码,b方法检测文件中是否存在Root, antiToot是个native方法,调用so库
-
依次搜索方法查看调用处是否只有一处
-
确认DeviceUtils的两个方法只有MainActivity一处调用
-
回到MainActivity分析,所有return false都调用v1寄存器,所以将v1寄存器的值修改为true,即cosnt v1, 0x1
-
保存代码
-
反编译回Java可以验证修改结果
-
退出修改并保存代码
-
保存并编译文件
-
打开功能
-
使用APK签名
-
签名并重新安装APK
-
修改完成可以打开
|