Decompiled and deobfuscated C# source code from Star Savior (StudioBside).
The game uses Malayalam Unicode characters to obfuscate class, interface, method, and property names in its DLLs. This repo contains:
- Clean
.csfiles - all 34,526 obfuscated identifiers replaced with readableOBF_XXXXASCII names identifier_mapping.json- full mapping from obfuscated names to placeholders (edit this to add real names)deobfuscate.py- the Python script used to generate clean files
| DLL | Description | Size |
|---|---|---|
NKC/ |
Client UI code | 20MB (largest) |
NKM/ |
Game model/logic | 1.5MB |
NKM.Templets/ |
Model data templates | 2.1MB |
Star.Templets/ |
Star data templates | 2.0MB |
Assembly-CSharp/ |
Shared C# code | 182KB |
Bs.Core/, Bs.Addressable/ |
Bside framework | (not obfuscated) |
Cs.UnityShare/, Cs.Core/ |
Unity helpers | (not obfuscated) |
K4os.Compression.LZ4*/ |
LZ4 compression | (not obfuscated) |
- Browse clean files in the
*clean.csdirectories - they read as normal C# code - To give identifiers real names, edit
identifier_mapping.json:{ "അഅഅഅആഉഌഊഇഊആഊഈഊഋ": "UnitStatBuilder", "അഅഅഅആഊആആഇഈഊഇഇഋഇ": "GetStatBundleData" } - Re-run
python deobfuscate.pyto regenerate
The identifier_mapping.json file maps each obfuscated name to its placeholder. To reverse-engineer real names:
- Look at return types, parameters, and usage context in the clean files
- Cross-reference with templet JSON files from the extracted game data
- Check string literals in the original obfuscated files (some contain key names)
- Use Frida hooks on the live game to capture runtime type names
- 34,526 unique obfuscated identifiers across all files
- Only identifier names are replaced - string literals, comments, and non-obfuscated code are preserved
- Non-obfuscated DLLs (Bs.Core, K4os, etc.) are included for completeness
- Star Savior (스타 세이버) by StudioBside
- Turn-based RPG, Unity 6 Mono
- Platforms: Android, iOS, PC