C++로 작성된 IL2CppDumper
이 프로젝트는 Unity의 il2cpp의 원리를 이해하고 작성한 작은 장난감입니다. IL2CppDumper는 C#으로 개발되었기 때문에 macOS를 지원하지 않으며, il2cpp 자체도 편의상 C++를 사용하여 개발하기로 했습니다. 이것이 유일한 방법입니다. 크로스 플랫폼 il2cpp 덤프 도구입니다. 현재 해당 툴은 il2cpp 버전 24.0/24.1을 지원하고 있으며, 다른 버전도 이식하는 것은 어렵지 않습니다. 현재 안드로이드와 iOS 64비트 실행 파일을 지원하며, 32비트 파일은 직접 컴파일해야 합니다. 이 프로젝트는 개발과 유지 관리에 많은 시간과 에너지를 쏟았습니다. 도움이 되셨다면 별점도 꼭 기억해주시고 즐겨주세요~ ([email protected])
2020-06-01 업데이트
앞서 소개한 것처럼 이 프로젝트는 단지 작은 장난감일 뿐이며 더 이상 유지되지 않을 것입니다. 대부분의 기존 게임은 강화 작업을 거치기 때문에 정적 덤프 도구는 보편적이지 않습니다. 현재 시중에 나와 있는 모든 게임 강화를 우회할 수 있는 동적 il2cpp 덤프로 전환되었습니다. Unity5.x-unity2020 버전, Android/iOS, arm/arm64를 지원하고 C# 기호 덤프 및 ida 스크립트 생성을 지원하며 그 기능은 다음과 같습니다. Il2CppDumper 프로젝트에 대해 벤치마킹되었으므로 이 프로젝트는 오픈 소스가 아닙니다. 유사한 동적 덤프 도구를 만들고 싶다면 이 장난감 프로젝트가 여전히 좋은 참고 자료가 될 것입니다. (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 |
+--------------------------------------------------------------------------------------+
전체 DLL 복원(코드 제외)
(ELF) ELF64, MachO64 형식 지원
이론적으로 Unity 모든 버전을 지원합니다(unity3d(2017-2019)에서 테스트).
자동화된 IDA 스크립트 생성 지원
기본적으로 Clion을 사용하여 x64 프로그램으로 컴파일합니다.
Android arm32 libil2cpp.so의 경우 동일한 il2cpp 헤더 파일에 대해 x86 바이너리로 컴파일해야 합니다.
덤프.cs
C#의 모든 유형과 주소를 덤프합니다.
script.py
기호를 복원하는 ida Python 스크립트
Perfare - Il2CppDumper
nevermoe - [unity_metadata_loader](