Automatic offset mapping tool for Unity IL2CPP dumps 🚀
When your Unity game updates and all your precious offsets become invalid... 😿
Me trying to manually update hundreds of offsets after game update
- ✨ Smart Signature Matching: Maps old offsets to new ones based on method signatures
- 🧹 Clean Parsing: Removes compiler-generated noise from signatures
- 📊 Progress Tracking: Beautiful progress bars powered by Rich
- 🎯 Batch Processing: Process entire files with hundreds of offsets at once
- 🔍 Detailed Results: Shows exactly what was mapped and what wasn't found
# Clone the repository
git clone https://github.com/traitimtrongvag/GetOFFSET.git
cd GetOFFSET
# Install dependencies
pip install rich- Python 3.6+
richlibrary for beautiful console output
-
Prepare your files:
dump_old.cs- Your old IL2CPP dump filedump.cs- Your new IL2CPP dump fileINPUT.txt- File containing your old offsets
-
Run the tool:
python main.py- Follow the prompts:
Enter old dump file (default dump_old.cs):
Enter new dump file (default dump.cs):
- Get your results in
OUTPUT.txt✨
GetOFFSET/
│
├── main.py # Main script
├── INPUT.txt # Your input file with old offsets
├── OUTPUT.txt # Generated output with new offsets
├── dump_old.cs # Old IL2CPP dump
├── dump.cs # New IL2CPP dump
└── README.md # This file
Your INPUT.txt can contain offsets in any format:
// Example C++ code
void* someFunction = (void*)0x12345678;
int offset = 0xABCDEF00;
// Mixed with other content...The tool will:
- Replace all old offsets with new ones in
OUTPUT.txt - Show detailed mapping results in console:
=== Mapping result ===
0x12345678 -> 0x87654321 [PlayerController] Update()
0xABCDEF00 -> 0x00FEDCBA [GameManager] Start()
0x11111111 -> NOT FOUND in dump
When all offsets are successfully mapped 🎉
- Parse Old Dump: Extracts class names, method signatures, and their offsets
- Parse New Dump: Creates a mapping from signatures to new offsets
- Smart Matching: Uses cleaned signatures to find corresponding methods
- Batch Replace: Updates all offsets in your input file
The tool automatically cleans compiler-generated patterns:
// Before cleaning
public void Update() b__123_456; // 0x12345678
// After cleaning
public void Update() // 0x12345678Because manually updating offsets is like trying to teach a cat to code...
Technically possible, but you'll lose your sanity 😹
Contributions are welcome! Feel free to:
- 🐛 Report bugs
- 💡 Suggest features
- 🔧 Submit pull requests
This project is licensed under the MIT License - see the LICENSE file for details.
This tool is for educational purposes. Please respect game developers and their terms of service.
Made with ❤️ and lots of ☕
P.S: If this tool saved you hours of manual work, consider giving it a ⭐!
That's you after using GetOFFSET 😸



