准备一个要被破解的APP
将安装包后缀.apk 改为.zip 解压
如果lib文件夹下或者在下层的子文件夹中有包含libunity.so则说明是unity制作的游戏
如果有libil2cpp.so 则说明是IL2CPP模式下构建的安装包
需要用到工具
打开il2cpp dumper.exe
第一个弹框选择文件lib2cpp.so
第二个弹框的文件选择assets/bin/Data/Managed/Metadata/global-metadata.dat
出现下图说明成功 失败有可能是有加密 需要手动模式 这里只说明成功的
此时会在IL2CPPDUMPER安装目录同级目录下出现DummyDll文件夹 下面有一个反编译出来的dll
打开dnSpy.exe
将刚才反编译出来的Assembly-CSharp.dll拖进去
找到按钮对应的函数 Refresh(int,int)
基址偏移是0x781D90
接下来用frida hook这个函数并修改
没用过得frida的看这个frida 下载安装与使用基础
在js代码中写下
// 程序入口
Java.perform(function()
{
// 获取模块
var module = Process.getModuleByName("libil2cpp.so")
// 转为函数地址
var addr=module.base.add("0x753B7B");
// 获取函数入口
var func = new NativePointer(addr.toString());
console.log('[+] hook '+func.toString())
// 函数hook钩子附加
Interceptor.attach(func, {
onEnter: function (args) {
console.log('hook success')
//输入参数
args[1] = ptr(999)
args[2] = ptr(888)
},
onLeave: function (retval) {
console.log('method onleave')
}
});
});
执行后成功显示
原文地址:https://blog.csdn.net/wodejiaoaoa/article/details/115150313
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。