Back to writeups
FlagYardmobilepending

Arno

2 Jul 2025 · by 0xIDA

Solvers

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 extractionclasses.dex + classes2.dex
  • Java decompilation — minimal Java code (only R.java in com.Z4ki)
  • Native library extractionlibil2cpp.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

  1. Run Il2CppDumper to recover method signatures from libil2cpp.so
  2. Analyze global-metadata.dat for Unity metadata
  3. Decompile with Ghidra / IDA focused on the IL2CPP code
  4. Check Unity assets (AssetRipper) for embedded data
  5. Consider dynamic analysis with Frida

Files

FileSizePurpose
Arno.apk34 MBOriginal APK
extracted/dex/classes.dexMain DEX
extracted/dex/classes2.dexSecondary DEX
extracted/native/arm64-v8a/libil2cpp.soIL2CPP native
extracted/native/arm64-v8a/libgame.soGame native code

Status

Pending — Challenge not yet solved. Analysis is in initial recon phase.