Skip to main content

droids1

  • Description: Find the pass, get the flag. Check out this file.
  • Difficulty: Hard

🔎 Solution

The app’s interface remains minimal - just a text input and a single button. To understand what the app is doing behind the scenes, I opened the APK in Bytecode Viewer (run with java). Inside the decompiled classes, I located the FlagstaffHill.class, which contains a method named getFlag.

   public static String getFlag(String var0, Context var1) {
return var0.equals(var1.getString(2131427375)) ? fenugreek(var0) : "NOPE";
}

This method is straightforward: it checks whether the input string matches a specific value. If it does, the flag is returned. Otherwise, the app simply logs "NOPE".

Rather than reverse-engineering the method logic directly, a faster approach is to inspect the app’s resources. Using apktool, I decompiled the APK: apktool d one.apk, then navigated to two/res/values/strings.xml This file typically holds static strings used throughout the app.

There, I found a suspicious value that looked like the expected input.

<string name="password">opossum</string>

I entered opossum into the input field, clicked the button, and... the flag was revealed.

🚩Flag

picoCTF{pining.for.the.fjords}