Arno
Author: 0xIDA
Platform: FlagYard · Category: mobile · Difficulty: N/A
Solvers
Summary
Unity IL2CPP Android game reverse engineering challenge from FlagYard. The APK com.Z4ki.Arno is a Unity-based Android game with native IL2CPP code.
Structure
- Category: Mobile Reverse Engineering
- Challenge Name: Arno
- Path:
ctf/flagyard/mobile/arno/ - Target: Extract the flag from the Unity game binary
Analysis Performed
- APKTool unpack — extracted smali, AndroidManifest, resources
- DEX extraction —
classes.dex+classes2.dex - Java decompilation — minimal Java code (only R.java in
com.Z4ki) - Native library extraction —
libil2cpp.so,libgame.so,libunity.so(arm64-v8a)
Key Observations
- Package:
com.Z4ki.Arno - Unity IL2CPP build — main game logic in
libil2cpp.so - No flag text found in plain strings yet
- Kotlin support libraries present (AndroidX, Kotlin stdlib)
Next Steps
- Run Il2CppDumper to recover method signatures from
libil2cpp.so - Analyze
global-metadata.datfor Unity metadata - Decompile with Ghidra / IDA focused on the IL2CPP code
- Check Unity assets (AssetRipper) for embedded data
- Consider dynamic analysis with Frida
Files
| File | Size | Purpose |
|---|---|---|
Arno.apk | 34 MB | Original APK |
extracted/dex/classes.dex | — | Main DEX |
extracted/dex/classes2.dex | — | Secondary DEX |
extracted/native/arm64-v8a/libil2cpp.so | — | IL2CPP native |
extracted/native/arm64-v8a/libgame.so | — | Game native code |
Status
Pending — Challenge not yet solved. Analysis is in initial recon phase.