Il2Cpp反编译工具是一款APK反编译工具,一般大家可以通过这款软件来破解安卓软件,或者对安卓软件进行修改。这款软件主要针对unity l2cpp包的反编译,如果你想修改某个单机手游或者程序,可以通过这款软件来试试。
主要功能:
支持ELF, ELF64, Mach-O, PE和NSO格式
支持Metadata版本16, 19~24
导出包括types, fields, properties, methods, attributes
自动生成IDA脚本
重命名函数
重命名并注释Metadata
MakeFunction完善IDA分析
生成DummyDll
修改手游方法:
从apk解压出libil2cpp.so和global-metadata.dat,把libil2cpp.so丢进ida,等分析结束后,在左侧Functions window搜索il2cpp::vm::MetadataCache::Register

双击.plt那一行,在右侧可以看到一个引用,双击

可以看到这个

接下来把上面的Il2CppDumper和libil2cpp.so,global-metadata.dat放在一起,双击运行,分别输入上图的头两个offset,就是174E858和1739C10,等待几秒后就能生成dump.cs啦
修改
打开dump.cs看一眼,你大概就可以猜出Il2CppDumper的功能了。接下来就是找修改的位置,这里直接参考了我去年写的一篇文章,里面列举了非常基础的修改位置,可以看出修改攻击力的话就是修改CardInfo下的get_ATK函数的返回值,在dump.cs里搜索就能找到,右侧的值就是函数所在的位置啦
接下来就是修改so,因为这就是个返回攻击力int数值的函数,所以修改思路就是让它返回一个大值,这里il的代码还是有点参考价值的,arm下也就是两句话
mov r0,#0x19000 —> ldc.i4 0x19000
bx lr —> ret
注意arm里不是所有数都可以是立即数的,具体的就自行百度啦
接下来就把这两句话转换成HEX,用这个在线转换网站,输入上面两段代码,在ida里明显可以看出代码的间隔是4字节,也就是32位,所以就选x32,点击Convert后就可以得到HEX
190AA0E3
1EFF2FE1
接下来就在16进制编辑器里,跳转到偏移0x91ae50,把上面的HEX写进去就修改成功啦~























大小: 55.6M
dex2jar2.0 免费最新版
完美UPX脱壳机0.3简体中文免费版
Stud_PE(PE查看和修改工具)v2.6.1.0 中文绿色版
.net反编译工具(reflector 8)8.5.0.179 官方版
Reflector(.Net的Dll反编译工具)V5.1.2.0绿色英文版
VB6反编译软件(VBRezQ)V3.1b汉化特别版
ResHackerV3.4.0.79汉化绿色版
VB反编译工具(VB Decompiler)v9.2 英文绿色特别版
Athena-A(汉化工具)v4.13 绿色汉化特别版
CHM反编译工具 (能够快速的提取CHM文件中的全部信息)1.1中文绿色免费版
HackFansUnpack(全自动脱壳)中文特别版
unEbookEditV2.6绿色版
51反汇编工具V1.0 智能版
apk反编译工具(smali baksmali)v2.1.3 最新版
AsmFunv1.20.623中文绿色版
C32ASMv0.4.12中文绿色注册表