Android-Unity游戏逆向思路

Unity游戏逆向思路

图片链接失效访问博客园:https://www.cnblogs.com/MillionMind/p/20061945

IL2CPP

  • lib/arm64-v8a/libil2cpp.so :游戏主要逻辑在这里,使用IDA分析需要若干小时加载。

  • assets/bin/Data/Managed/Metadata/global-metadata.dat :游戏函数的符号名都在这里,可以根据这些符号名,来寻找自己感兴趣的逻辑。

  • catalog.json:游戏资源定位文件,可以寻找指定关键词。

    rg -a -n -i "cg|gallery|illust|illustration|event|movie|replay|story|scenario|回想|動画|スチル|cutscene|album|unlock" .\temp\pinkcore_base\assets\bin\Data\Managed\Metadata\global-metadata.dat

    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8; OutputEncoding = [System.Text.Encoding]::UTF8; rg -a -n -i -o --color never "(.{0,50})(cg|gallery|illust|illustration|event|movie|replay|story|scenario|回想|動画|スチル|cutscene|album|unlock)(.{0,30})" --replace '>>1【2】3<<' .\temp\pinkcore_base\assets\bin\Data\Managed\Metadata\global-metadata.dat | Out-File -Encoding utf8 result.txt

    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8; OutputEncoding = [System.Text.Encoding]::UTF8; rg -a -n -i -o --color never "(.{0,50})(<关键词1> | <关键词2>)(.{0,30})" --replace '>>1【2】3<<' .\temp\pinkcore_base\assets\aa\catalog.json | Out-File -Encoding utf8 result.txt

unity版本信息

  • assets/bin/Data/globalgamemanagers 里能直接抠出来 Unity 版本字符串,如Unity 2021.3.45f2
  • 同时 global-metadata.dat 的头部是标准 IL2CPP 元数据魔数(0xFAB11BAF),版本号是 310x1f),这也和 Unity 2021 LTS 系列对得上。

Il2CppDumper--libil2cpp符号表恢复

  • lib/arm64-v8a/libil2cpp.so ✅(IL2CPP 主代码)
  • assets/bin/Data/Managed/Metadata/global-metadata.dat ✅(IL2CPP 元数据)

使用这个项目:https://github.com/Perfare/Il2CppDumper?tab=readme-ov-file

输入命令后会弹出文件选择,依次选择so文件和dat文件解密即可。

也可以使用命令:

复制代码
Il2CppDumper.exe <executable-file> <global-metadata> <output-directory>

下面是输出示例:

红色标识的是运行后生成的文件,红色方框是需要额外注意的文件。

DummyDLL中的Assembly-CSharp.dll文件:这个文件有符号名和程序结构,无源代码,可以使用dnspy打开查看一下大致结构。

恢复IDA符号表:使用ida加载libil2cpp,等跑完之后,选择ida_py3.py,选择scripts.json就可以恢复符号表了。

相关推荐
艾iYYY6 小时前
string 类的模拟实现
android·服务器·c语言·c++·算法
xyzzklk7 小时前
解决Salesforce无法向外发送邮件
android·java·开发语言·网络·crm·salesforce·客户关系管理
修炼者9 小时前
Gradle三阶段
android
morchalen9 小时前
安卓framework学习6:Contacts 联系人 APP 日志
android
KANGBboy9 小时前
java知识四(面向对象编程)
android·java·开发语言
AD钙奶-lalala13 小时前
Android Studio新建项目默认不使用Compose模版
android·ide·android studio
游乐码14 小时前
Unity基础(十一 )资源同步加载
unity·游戏引擎
故渊at15 小时前
第一板块:Android 系统基石与运行原理 | 第二篇:Android 编译、打包与安装机制
android·系统架构·apk·打包·application·dalvik·android编译
wgc2k15 小时前
Oops Framework-6-项目中如何使用AI的思路
人工智能·游戏·cocos2d
LONGZETECH15 小时前
汽车仿真教学软件技术实现深度解析:从三维建模到学情数据闭环
c语言·3d·unity·架构·汽车