unity逆向il2cpp打包

unity逆向-il2cpp

LitCTF 2025-Robbie Wanna Revenge

il2cpp打包的unity游戏题,在网上搜了文章,

根据晓梦的文章https://xz.aliyun.com/news/15811

和swdd的文章https://blog.csdn.net/qq_24481913/article/details/148234091?sharetype=blogdetail&sharerId=148234091&sharerefer=PC&sharesource=qq_24481913&spm=1011.2480.3001.8118

利用ilcppdumper提取il2cpp等文件,这是il2cppdumper下载的网址https://github.com/Perfare/Il2CppDumper/

在终端输入命令 .\Il2CppDumper.exe 文件名.dll 文件名.dat output,dll文件就是GameAssembly.dll

image-20250528233715951

直接运行命令发现报错,识别不到,再看dll文件,加了壳

image-20250528213639891

还修改了特征码,用010改回来之后再脱壳

image-20250528223136275

脱壳之后再运行命令。就成功dump了

image-20250528223115942

这就是dump出来的文件

image-20250528234206707

用dnspy查看Assembly-CSharp.dll(来自dump后的文件中)的内容,找到playerhealth函数的内容,这里面主要是通过playerdied来判断角色是否死亡,

image-20250528225350874

用ida打开脱壳后的GameAssembly.dll文件,再附加文件,左上角file/script file,附加ida_with_struct_py3.py和script.json文件,然后再加上il2cpp.h文件

等到加载完成之后,找到对应的playerhealth函数的位置,看汇编,找到对应位置,把下面的jnz改为jmp(强跳转)

ps:这里强跳转就是 把jnz对应的机器码0F 85改为jmp的机器码90 E9

image-20250528225834456

修改成功之后就是这样,然后patch保存之后再重新运行游戏就是无敌状态了

image-20250528231357969


unity逆向il2cpp打包
https://j1nxem-o.github.io/2025/05/29/unity逆向il2cpp打包/
作者
J1NXEM
发布于
2025年5月29日
更新于
2025年5月29日
许可协议