competition-android-hooking

Hook Android APK trust boundaries with Frida to recover request signing and bypass SSL pinning.

7|4|Updated Jun 22, 2026
One-click install
npx skills add https://github.com/dbx0/skills --skill competition-android-hooking-dbx0
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: competition-android-hooking
Source: https://github.com/dbx0/skills/tree/main/skills/mobile/reverse-engineering/competition-android-hooking
Command: npx skills add https://github.com/dbx0/skills --skill competition-android-hooking-dbx0

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? CTF mobile challenges often hide the decisive logic behind runtime trust boundaries like request signers, JNI bridges, and SSL pinning, which static analysis alone cannot reveal. This Skill provides a structured workflow for instrumenting an Android app at the narrowest effective boundary to recover signed requests and accepted server-side branches. ## Core Features & Use Cases - Static Triage Before Hooking: Map the manifest, exported components, deeplinks, native libraries, shared prefs, SQLite databases, and pinning logic before touching the runtime. - Narrow Boundary Hooking: Hook request signers, crypto helpers, JNI marshaling, keystore access, or WebView bridges with Frida instead of broad UI-level hooks, capturing plaintext inputs and signed outputs together. - Replay of Accepted Paths: Rebuild the smallest request sequence (state, nonce, body, signature, headers) that reaches the accepted server-side branch as proof of the trust boundary. - Use Case: During a CTF, you receive an APK whose flag endpoint rejects unsigned requests. Use this Skill to locate the signer in a JNI library, hook its input and output with Frida, bypass SSL pinning, and replay a valid signed request. ## Quick Start Activate the ctf-sandbox-orchestrator first, then ask it to hook the target APK's request signer and recover a replayable signed request.

Frequently Asked Questions about competition-android-hooking

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I hook an Android app's request signer with Frida?

First map the app statically to locate the signer in Java, Kotlin, or a JNI library, then hook that narrow boundary rather than UI methods. Record the plaintext input string and the output signature together so the signed request can be replayed.

How to bypass SSL pinning in an Android APK for testing?

Identify the pinning logic during static triage, then patch or hook only enough of it to expose the real request path. The goal is to observe genuine traffic, not to disable security broadly, so keep the bypass minimal and scoped.

When should I use runtime hooking instead of static analysis on an APK?

Use runtime hooking when the decisive logic lives behind a live trust boundary, such as request signing, JNI marshaling, or keystore-backed crypto, that static strings cannot reveal. Static triage still comes first to choose the narrowest hook point.

Why does hooking at the UI layer miss the real signing logic?

UI-layer hooks sit above the actual trust boundary, so they capture rendered data rather than signer inputs and outputs. The real signature is produced deeper in crypto helpers, JNI bridges, or request builders, which is where hooks should be placed.

What evidence should I preserve when analyzing an Android trust boundary?

Keep hook points, class names, JNI symbols, signer inputs and outputs, header names, shared prefs, database rows, and deeplinks together. Pair each static location with dynamic proof such as a hook log or accepted response, plus the local state it depends on.