Skip to content

Guide · Agent skill

How to use the Android App Hooking for CTF agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

Android App Hooking for CTF is an agent skill, a set of written instructions that an AI agent loads when a task matches it. This one guides the agent through analysing an Android app while it runs inside a controlled capture-the-flag training sandbox, using Frida-style hooks to watch internal functions such as request signers. It is aimed at security students and reverse engineers who already know APKs, Frida and JNI, and this guide shows how to install it, trigger it and use it safely.

Android App Hooking for CTFzhaoxuya520/reverse-skill · MIT

Quick start

  1. 1Download the ZIP. Download the competition-android-hooking skill ZIP from this page. It contains agents/openai.yaml, references/android-hooking.md and SKILL.md.
  2. 2Install the skill. Unzip the folder into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder. Alternatively, upload the ZIP in the Claude apps under Settings, then Capabilities, then Skills.
  3. 3Prepare the lab. Set up Frida and a rooted Android device or emulator inside an isolated sandbox, along with an APK decompiler and manifest tools as listed in the reference file.
  4. 4Set up the parent skill. Make sure ctf-sandbox-orchestrator is active and has established the sandbox assumptions, since this skill is routed from it.
  5. 5Ask for a specific task. Describe one Android target in plain language, such as hooking a signer or tracing a JNI call, and mention the parent skill if needed.
  6. 6Check the evidence. Confirm the hook logs, headers and state dependencies line up with the static location of the code before accepting the result.
  7. 7Replay the accepted request. Ask for the smallest request or branch that the server accepts, using the same session state, nonce and headers.

What the skill makes the agent do

The skill is a playbook for analysing an Android app's live trust boundary, meaning the point where the app decides what to send to the server and what the server accepts. Instead of relying only on strings found in the code, the agent is directed to choose the narrowest internal function to watch, such as a request signer or crypto helper, record its inputs and outputs with hooks, and rebuild the smallest request the server accepts.

The skill is an internal downstream skill. It is meant to run only after the parent skill ctf-sandbox-orchestrator has set up the sandbox assumptions and routed the task here. By default it replies in Simplified Chinese unless you ask for English.

  • Maps the app's manifest, exported components, deeplinks, native libraries, shared prefs, local databases and bundled configs before hooking anything
  • Prefers hooks on request signers, crypto helpers, keystore access, protobuf encode or decode, and JNI marshaling over broad UI hooks
  • Covers SSL pinning, root checks and WebView bridges when they block the real request path
  • Keeps hook logs, headers, nonces and storage paths tied to the same session so the result can be replayed

How to install the competition-android-hooking skill

Download the skill ZIP from this page. Then choose one of the two install routes below, depending on where you want the skill to be available.

For a personal setup, unzip the file into your ~/.claude/skills/ folder. For a single project, unzip it into that project's .claude/skills/ folder. In the Claude apps, you can instead upload the ZIP under Settings, then Capabilities, then Skills.

The package contains agents/openai.yaml, references/android-hooking.md and SKILL.md. Keep the folder structure intact so the agent can load the reference file.

  • Personal install: unzip into ~/.claude/skills/
  • Project install: unzip into the project's .claude/skills/
  • Claude apps: Settings, then Capabilities, then Skills, then upload the ZIP
~/.claude/skills/

Requirements before you start

The skill assumes a working lab. It needs Frida and either a rooted Android device or an emulator, both inside a sandbox. It also needs an APK decompiler and manifest tools; the specific tools are named in the bundled reference file, so check that file for the exact list.

The parent skill ctf-sandbox-orchestrator must be installed and active. This skill depends on it and is not meant to be used on its own.

  • Frida
  • A rooted Android device or an emulator, inside a sandbox
  • An APK decompiler and manifest tools (see references/android-hooking.md)
  • The parent skill ctf-sandbox-orchestrator

How to trigger the skill with natural requests

The skill loads when your request matches its description. Ask for a specific Android task in plain language, and make sure the parent skill has already set up the sandbox. You can also name the parent skill explicitly, as its own description does.

Good triggers include asking the agent to hook an APK, inspect signer logic, trace Java or native boundaries, bypass pinning or root checks, inspect shared prefs or app databases, or replay accepted mobile requests. Vague requests such as fix my app are less likely to match.

  • Hook the signer in this APK and log its input string and output signature
  • Trace the JNI calls from this native library during login
  • Find where the root check runs and show what the app does when it fails
  • Look at the shared prefs and local database for the session token used in this challenge
  • Replay the request the server accepted, using the same nonce and headers
$ctf-sandbox-orchestrator

Example workflow the skill follows

The skill works in three stages. First, static triage: it preserves the original APK and decompiled output before any patching, then maps exported components, deeplinks, prefs and databases. Second, it picks the narrowest runtime boundary to hook and records plaintext inputs, signed strings, headers and outputs there. Third, it rebuilds the smallest sequence that reaches the accepted server-side branch.

The agent is also told to correlate static and dynamic evidence before claiming it understands a trust edge. The reference file asks for three things kept together: where the code lives, what the hook or response proved, and which local state the result depends on.

  • Static location: class, method, symbol or asset path
  • Dynamic proof: hook log, returned value, request header or accepted response
  • State dependency: token, database row, pref key, nonce or device flag

Safety notes: scripts and network

This skill runs scripts and uses the network, as stated in its requirements. Run it only inside an isolated lab that you control, not against live services or apps you do not own or have no authorisation to test. Bypassing pinning and root checks against live services can be illegal or harmful.

The skill also tells the agent to preserve the original APK before patching or resigning, which helps you go back to a clean state if something goes wrong.

  • Use only isolated, controlled CTF sandboxes
  • Do not target real apps or services without authorisation
  • Keep the original APK, resources and decompiled output before patching
  • Pure static string or crypto puzzles should go to a broader crypto or mobile skill instead

Tips for getting useful results

Give the agent the sandbox context up front, and let the parent skill finish its setup before asking for hooks. Name the feature or request you care about, such as a signer or login call, because the skill is built to narrow down to one boundary rather than hook everything.

If the challenge turns out to be mostly about recovering a transform, the skill itself says to switch back to the broader crypto or mobile skill. Keep your evidence organised as the reference file suggests, so the final replay is easy to check.

  • Let ctf-sandbox-orchestrator finish its setup first
  • Name one target boundary, such as a signer, JNI call or login request
  • Ask for the smallest replayable request, not the whole app
  • Note which account or session state each log belongs to

What people use it for

  • Recovering how a request signer builds its input string and output signature in a CTF Android challenge
  • Tracing JNI calls between Java and a native library to find where a secret is handled
  • Bypassing SSL pinning or a root check in a lab app to expose the real request path
  • Inspecting shared prefs and local databases to find the token a challenge depends on
  • Replaying an accepted mobile request with the same nonce, headers and session state

Frequently asked questions

Is the Android App Hooking for CTF skill free?

This page does not state a price or licence terms for the skill itself beyond the MIT licence shown for the repository. Check the licence file in the source before reuse. Frida and any decompiler or emulator tools you install are separate and have their own terms.

What do I need to install before using this skill?

You need Frida, a rooted Android device or an emulator inside a sandbox, an APK decompiler and manifest tools, and the parent skill ctf-sandbox-orchestrator. The skill depends on the parent and will not work as a standalone tool.

Where do I put the skill folder after downloading it?

Unzip it into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder for a single project. In the Claude apps you can upload the ZIP under Settings, then Capabilities, then Skills.

Why does the skill reply in Chinese?

The skill is set to reply in Simplified Chinese by default. Ask for English in your request if you want English replies.

Can I use this skill to bypass SSL pinning on any app?

No. It is designed for isolated CTF labs and internal training. Bypassing pinning or root checks against apps or services you do not own or have no authorisation to test can be illegal or harmful.

Is this skill a good alternative to a general Android reverse engineering guide?

It is more specialised. It gives the agent a structured checklist for choosing hook targets and collecting evidence, but it assumes you already understand APKs, Frida, JNI and signing schemes. If you are new to these, learn the basics first.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

This skill suits security students working through Android CTF challenges in an isolated lab, and reverse engineers who already know Frida and want a structured checklist for hook targets and evidence. It is a poor fit for beginners, for analysing real apps without authorisation, or for pure static string and crypto puzzles, which the skill itself says should go elsewhere.

Download the skill