Unity逆向

工具

  • Unity Dll逆向

    一般的 Unity3D 游戏的主逻辑都在 Assembly-CSarp.dll 中,所以需要 dll文件逆向/重新打包 工具。Unity3D开发的游戏,其核心代码都在这个 dll 文件中,所以逆向/修改这个 dll 文件就可以了。

    • ILSpy

      用于查看dll程序逻辑。

    • ILDASM

      用于反编译dll文件,生成il文件(存放了dll反编译后的指令)和res文件(反编译后的资源文件),可以安装Windows SDK或者从网上下载。

    • ilasm

      .NET4.0自带,位置在 C:\Windows\Microsofr.NET\Framework\v4.0.30319\ilasm.exe

  • Unity il2cpp逆向

    Unity 程序为了防止大量的外挂和盗版游戏,推出了一种 il2cpp 的操作,大概就是让 C# 的中间代码 IL 转换成 C++ 来编译,最后生成汇编程序使得反编译难度大大增加。

    • Il2CppDumper

      还原DLL文件(不包含代码),可用于提取MonoBehaviourMonoScript

      使用方法

      直接运行Il2CppDumper.exe并依次选择il2cpp的可执行文件和global-metadata.dat文件,然后根据提示输入相应信息。程序运行完成后将在当前运行目录下生成输出文件。

      命令

      Il2CppDumper.exe <executable-file> <global-metadata> <output-directory>

      输出文件

      DummyDll

      文件夹,包含所有还原的DLL文件。使用dnSpy,ILSpy或者其他.Net反编译工具即可查看具体信息,可用于提取Unity的MonoBehaviour和MonoScript,适用于UtinyRipper或者UABE等

      ida.py
      用于IDA

      ida_with_struct.py
      用于IDA, 读取il2cpp.h文件并在IDA中应用结构信息

      il2cpp.h
      包含结构体的头文件

      ghidra.py
      用于Ghidra

      script.json
      用于IDA和Ghidra脚本

      stringliteral.json
      包含所有stringLiteral信息