ワンクリックで
mitm-capture
A mitmproxy-based tool for capturing mobile-app network traffic, detecting encrypted parameters, and analyzing APIs.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
A mitmproxy-based tool for capturing mobile-app network traffic, detecting encrypted parameters, and analyzing APIs.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Fully automated reverse-engineering orchestrator. Given a target (Android APK/AAB/XAPK, web URL, or Windows PE), it drives the end-to-end workflow — fingerprinting → planning the analysis chain → static analysis → dynamic analysis → native deep-dive → result synthesis → reproduction & verification — and produces a structured report. This is the entry point of the auto_reverse project, responsible for deciding "which skill/tool to invoke and when, and what to do next once results come back." Trigger scenarios: automated reversing, "reverse this app/website," auto-reverse, fully automated analysis, "here's an APK, run it automatically," "I don't know where to start."
Generic dynamic instrumentation / trace engine for heavily-obfuscated anti-bot JavaScript. Takes ANY obfuscated JS, weaves Babel AST probes (function enter/exit, variable assignments, member reads), recursively re-instruments every runtime-generated string (eval / new Function / string setTimeout) so code that only exists after decryption is also traced, runs it bare in a Node harness on top of an env-supplement-proxy environment, and dumps an aggregated execution trace (hot functions, hot variables, dynamic code-gen layers, candidate sign outputs). Ships an L2 anti-detection prelude (clock freeze defeats timing anti-debug; DebuggerStatement stripping; eval/Function toString spoofing). This is the OBSERVATION layer that stacks on top of env-supplement-proxy / node-bridge-build (which make the JS RUN) — it shows HOW the algorithm computes, not just its output. Use when you must understand the internal computation of obfuscated sign/cookie JS, capture runtime-decrypted algorithm code, or produce an execution tr
Use capa (Mandiant) + FLOSS to perform capability triage and string deobfuscation on native libraries (.so / ELF) and executables—before diving into IDA/Ghidra decompilation, automatically identify what capabilities a binary has (crypto/network/anti-debug/anti-analysis/file operations) and recover obfuscated/encoded/stack-built strings (URLs, keys, C2). Trigger scenarios — capa, floss, analyze .so capabilities, identify crypto algorithms, native library capability overview, deobfuscate strings, triage before digging deep.
Decompile Android APK, XAPK, JAR, and AAR files using jadx or Fernflower/Vineflower. Reverse engineer Android apps, extract HTTP API endpoints (Retrofit, OkHttp, Volley), and trace call flows from UI to network layer. Use when the user wants to decompile, analyze, or reverse engineer Android packages, find API endpoints, or follow call flows. Trigger keywords: decompile APK, Android reverse engineering, extract API, analyze Android app, decompile Android, reverse engineering, trace call chain, extract interfaces
Android reverse-engineering onboarding and fundamentals. Covers device preparation and rooting (unlock bootloader, flash a clean ROM, Magisk root, real-device vs emulator trade-offs), full environment setup (JDK, adb/fastboot, Frida server/tools, Charles/mitmproxy CA certificates), APK internal structure and the forward packaging pipeline, the Android filesystem and partition layout, decompile-and-hook basics, and phone UI automation. Use this when bootstrapping an Android RE workstation, when the user is new to Android reverse engineering, or when they ask how to root a phone, set up Frida/adb/Charles, understand APK/DEX structure, learn the Android filesystem, or automate a device. Trigger keywords — android reverse engineering basics, set up Frida, install adb, root phone, unlock bootloader, flash ROM, Magisk, APK structure, DEX, AndroidManifest, Android filesystem, phone automation, uiautomator2, Charles certificate, JDK install, Android reverse engineering getting started, flashing ROM, root, environment
Fully automatic APK acquisition for Android reversing. Given a package name, it obtains the APK through the first route that works — pull from a connected adb device, use a local file, or download from APKPure's direct-link endpoint (XAPK with splits or single APK) — then optionally installs it back to a device and verifies the package name. This is Phase 0 (Intake) of the auto_reverse orchestrator: it answers "I don't have the APK yet, get it for me" without manual confirmation. Trigger terms: get the apk, download apk, acquire apk, pull apk, automatic apk acquisition, download apk, install apk, app not installed / not available locally.
| name | mitm-capture |
| description | A mitmproxy-based tool for capturing mobile-app network traffic, detecting encrypted parameters, and analyzing APIs. |
An automated, mitmproxy-based capture tool for intercepting and analyzing a mobile app's network requests, detecting encrypted parameters, and generating a structured analysis report. Suited to API reverse-engineering of Android/iOS apps.
<mitm-capture-dir>/
pip install mitmproxy rich pyyaml
# or
cd <mitm-capture-dir> && pip install -r requirements.txt
The device must be configured with a Wi-Fi proxy pointing to the IP:8080 of the machine running mitmproxy, and the mitmproxy CA certificate must be installed. Run bash setup.sh for the full configuration guide.
cd <mitm-capture-dir>
# Basic start (listens on 0.0.0.0:8080)
python cli.py start
# Specify the port and target domain
python cli.py start --port 9090 --domain api.example.com
# Transparent proxy mode
python cli.py start --transparent
Once started, the terminal displays a live, color-coded request log:
Data is saved automatically as JSONL files to output/{domain}/{timestamp}.jsonl.
# Analyze and print to the terminal
python cli.py analyze output/
# Output to a Markdown file
python cli.py analyze output/ -o report.md
# Analyze data for a specific domain
python cli.py analyze output/api.example.com/ -o report.md
The report includes:
/restaurants/{id})# Export as cURL commands
python cli.py export output/ -f curl -o requests.sh
# Export as a HAR file
python cli.py export output/ -f har -o capture.har
# Export only a specific domain and method
python cli.py export output/ -f curl --domain api.example.com --method POST
# Filter by domain
python cli.py filter output/ --domain api.example.com
# Filter by method + path
python cli.py filter output/ --method POST --path "/api/v2"
# Show only requests with an auth header
python cli.py filter output/ --has-auth -o auth_requests.jsonl
# Filter by status code
python cli.py filter output/ --status 200
Edit config.yaml to customize:
include_domains to capture only the listed domainspython cli.py start --domain <target>python cli.py analyze output/ -o report.mdreport.md, focusing on encrypted parameters and authentication methodspython cli.py export output/ -f curl to generate reproducible cURLWhen the report detects encrypted parameters:
resources/frida_crypto_hooks.js templateFor platforms that have both an app and a web version:
One JSON object per line:
{
"timestamp": "2026-02-13T14:00:00.123456",
"method": "POST",
"url": "https://api.example.com/v2/search",
"host": "api.example.com",
"path": "/v2/search?sign=abc123",
"request": {
"headers": {"content-type": "application/json", "authorization": "Bearer xxx"},
"body": "{\"keyword\": \"test\"}"
},
"response": {
"status_code": 200,
"headers": {"content-type": "application/json"},
"body": "{\"results\": [...]}"
}
}
| Issue | Solution |
|---|---|
| The phone can't connect to the proxy | Confirm the phone and computer are on the same network; check the firewall |
| HTTPS requests show errors | Install the mitmproxy CA certificate on the device; Android 7+ requires a system-level certificate or a Frida-based SSL pinning bypass |
| Some requests aren't captured | Check the exclusion rules in config.yaml, or use the --domain parameter to specify the target |
| The output directory is empty | Confirm the proxy is configured correctly and the app is making network requests |