
एक Unity/IL2CPP Android गेम का शैक्षिक रिवर्स इंजीनियरिंग अध्ययन। गेटवे प्रोटोकॉल डिकोडिंग, नेटिव एंटी-टैम्परिंग SDK विश्लेषण, SSL पिनिंग बाईपास, और Frida-आधारित डायनामिक विश्लेषण तकनीकों का दस्तावेजीकरण करता है।
शैक्षणिक परियोजना। लक्ष्य यह समझना है कि एक आधुनिक Unity/IL2CPP Android गेम कैसे संचार करता है, इसके मूल सुरक्षा SDK कैसे काम करते हैं, और वास्तविक दुनिया के APK पर स्थैतिक + गतिशील विश्लेषण तकनीकों को कैसे लागू किया जाए।
यह रिपॉजिटरी com.run.tower.defense (Game of Thrones: Conquest) के एक चल रहे रिवर्स इंजीनियरिंग अध्ययन का दस्तावेजीकरण करती है, जो IL2CPP रनटाइम, कई मूल सुरक्षा SDK और एक कस्टम बाइनरी गेटवे प्रोटोकॉल के साथ एक Unity गेम है।
कोई धोखाधड़ी नहीं, कोई शोषण नहीं, लाइव गेम डेटा में कोई बदलाव नहीं। ध्यान पूरी तरह से आंतरिक आर्किटेक्चर को समझने पर है।
| क्षेत्र | स्थिति | मुख्य खोज |
|---|---|---|
| गेटवे प्रोटोकॉल (पोर्ट 30101) | डिकोड | कस्टम बाइनरी, uint16_BE फ्रेमिंग, varint बॉडी, कोई TLS नहीं |
| ऑपकोड्स | मैप किया गया | 0x55 हैंडशेक, 0x5d गेम एक्शन, 0x1d स्टेट सिंक, 0x15 हार्टबीट, 0x59 क्लाइंट ACK |
| निर्देशांक एन्कोडिंग | डिकोड | ASCII85-जैसा 4-कैरेक्टर → uint32 (x=किंगडम, y=पोजीशन) |
| एनालिटिक्स API | कैप्चर किया गया | logagent-wf.centurygame.com — JSON घटनाएँ, पिन नहीं किया गया |
| SSL पिनिंग | आंशिक रूप से बायपास | Java लेयर बायपास (OkHttp + TrustManager); मूल BestHTTP लेयर की पहचान |
| एंटी-टैम्परिंग (libnesec) | पहचाना गया | Frida अटैच के ~58s बाद प्रक्रिया को मारता है; किल फंक्शन और डिटेक्शन लेवल मैप किया गया |
| libxt_a64.so | पहचाना गया | PLT हुकिंग SDK अलग लिंकर नेमस्पेस में लोड — Frida/मैप्स के लिए अदृश्य |
| libNetHTProtect.so | विश्लेषित | नेटवर्क इंटीग्रिटी SDK; MD5 फिंगरप्रिंटिंग; protobuf-शैली सीरियलाइजेशन |
| IL2CPP डंप | आंशिक | असेंबली सूची पुनर्प्राप्त; BestHTTP certval RVA मैप |
got-re/
├── README.md ← this file
├── FLOW.md ← complete discovered data flow
├── SETUP.md ← environment setup guide
├── TOOLS_AND_COMMANDS.md ← all commands and tools reference
├── CLAUDE.md ← context for AI-assisted sessions
├── captures/
│ ├── battle.pcap ← gateway traffic sample (session 1)
│ └── battle2.pcap ← gateway traffic sample (session 2, richer)
└── scripts/
├── frida/
│ ├── certval_hook.js ← observe BestHTTP certificate validation
│ ├── button_hook.js ← hook Unity UI button events
│ ├── ssl_unpin.js ← SSL unpinning (Java + IL2CPP layers)
│ └── nesec_bypass.js ← neutralize libnesec anti-tampering
├── analysis/
│ ├── analyze_gateway.py ← parse and decode port 30101 pcap captures
│ ├── analyze_mitm.py ← read and filter mitmproxy .mitm files
│ ├── decode_1d_v2.py ← deep decode of 0x1d state-sync frames
│ └── deep_analysis.py ← coordinates, JSON fragments, opcode 0x59
└── proxy/
├── mitm_setup.py ← install mitmproxy CA on device
├── run_ssl_unpin.py ← mitmdump + Frida SSL unpin combined runner
└── run_button_hook.py ← mitmdump + Frida button hook combined runner
# 1. Start frida-server on device
adb shell "su -c '/data/local/tmp/fs17 -l 0.0.0.0:37555 &'"
adb forward tcp:37555 tcp:37555
# 2. Capture gateway traffic
adb shell "su -c 'tcpdump -i any -w /sdcard/session.pcap port 30101'"
# ... play the game ...
adb pull /sdcard/session.pcap captures/
# 3. Analyze it
python scripts/analysis/analyze_gateway.py captures/session.pcap
पूर्ण प्रोटोकॉल मैप और खुले प्रश्नों के लिए FLOW.md देखें।
अपना वातावरण चलाने के लिए SETUP.md देखें।
यदि आपके पास Ghidra विश्लेषण, il2cppdumper आउटपुट, या अतिरिक्त pcap कैप्चर हैं — PR और issues का स्वागत है।