IL2CppDumper writed in C++
這個專案是我理解unity的il2cpp原理時寫的一個小玩具,由於IL2CppDumper用C#開發,所以並不支援macOS和linux,il2cpp本身也是C++開發的,為了方便所以我選擇了用C++去開發,算是唯一款跨平台的il2cpp dump工具。目前工具支援il2cpp 24.0/24.1版本,其他版本移植的難度也不大。目前支援Android和iOS 64位元可執行文件,32位元需自行編譯。專案花費了大量時間和精力去開發維護,如果有幫助的話記得點小星星哦,enjoy~([email protected])
2020-06-01 update
正如前面所介紹那樣,這個項目只是一個小玩具,後面不再進行維護。由於現有遊戲大多都會進行加固操作,靜態的dump工具的並不通用。現已轉向了動態的il2cpp dump,目前能繞過市面上所有遊戲加固,支援unity5.x-unity2020版本,Android/iOS,arm/arm64,支援C#符號dump以及ida腳本生成,能力對標Il2CppDumper項目,正因為如此,該專案不會開源。如果你想做一個類似的動態dump工具,這個玩具專案仍然具有很好的參考性。 (X!A0@2020)
__ _____ _ ____ ____ ____
/ /_ _| | |___ / ___|_ __ _ __ | _ _ _ _ __ ___ _ __ ___ _ __
/ | || | __) | | | '_ | '_ | | | | | | | '_ ` _ | '_ / _ '__|
/ | || |___ / __/| |___| |_) | |_) | |_| | |_| | | | | | | |_) | __/ |
/_/____|_____|_____|____| .__/| .__/|____/ __,_|_| |_| |_| .__/ ___|_|
|_| |_| |_|
+--------------------------------------------------------------------------------------+
| XIL2CppDumper | a tool of C++ version IL2CppDumper made by xia0@2019 |
+--------------------------------------------------------------------------------------+
| Info | version: 0.2 support: iOS[arm64] Android[arm64] il2cpp[24.1/24.0] |
+--------------------------------------------------------------------------------------+
| Usage | XIL2CppDumper unity_metadata_file_path il2cpp_so_or_macho_file_path |
+--------------------------------------------------------------------------------------+
| Blog | http://4ch12dy.site |
+--------------------------------------------------------------------------------------+
| Github | https://github.com/4ch12dy |
+--------------------------------------------------------------------------------------+
| Specail thanks to Perfare's Il2CppDumper:https://github.com/Perfare/Il2CppDumper |
+--------------------------------------------------------------------------------------+
Complete DLL restore (except code)
Supports (ELF) ELF64, MachO64 format
Supports Unity all version theoretically (test on unity3d(2017-2019))
Supports automated IDA script generation
Default use Clion to compile it to x64 progam.
For android arm32 libil2cpp.so, It need compile to x86 binary for the same il2cpp header files.
dump.cs
dump C# all types and address
script.py
ida python script to restore symbol
Perfare - Il2CppDumper
nevermoe - [unity_metadata_loader](