Communitygithub.com

Mobile Reverse Engineering

Ermöglicht autorisierte Reverse-Engineering- und Sicherheitstests von Android- und iOS-Anwendungen, einschließlich APK- oder IPA-Analyse, Laufzeitinstrumentierung, SSL-Pinning-Umgehung und Plattform-Schutzprüfungen.

Was ist Mobile Reverse Engineering?

Dieses Skill-Paket bietet eine umfassende Methodik für das Reverse Engineering mobiler Anwendungen auf Android und iOS. Es wurde für autorisierte Sicherheitstests konzipiert, wie z. B. Penetrationstests, Sicherheitsaudits und Schwachstellenanalysen. Es umfasst die Phasen Informationssammlung, statische Analyse, dynamische Analyse und Netzwerkanalyse. Zu den wichtigsten Tools gehören Frida, Objection, JADX-GUI, Ghidra, Burp Suite und viele weitere. Es deckt gängige Umgehungstechniken ab, z. B. SSL-Pinning-Umgehung, Root-/Jailbreak-Erkennung, Anti-Debugging-Mechanismen und die Extraktion kryptografischer Schlüssel auf Mobilgeräten. Das Skill-Paket ist plattformunabhängig, unterstützt sowohl Android (APK) als auch iOS (IPA) und kann sowohl auf gerooteten als auch auf nicht gerooteten Geräten eingesetzt werden, unter anderem durch Frida Gadget. Die strukturierte Arbeitsweise mit vier Phasen und eine Check-Liste am Ende stellen sicher, dass alle Schritte systematisch durchgeführt werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/mobile-reverse

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Mobile Reverse Engineering?

AKTION ERFORDERLICH (nach dem Lesen sofort ausführen)

  1. NOW: Lese ../field-journal/precedent-reverse.md – Bestätige, dass die Operation dieser Skill-Richtlinie autorisiert und regulär ist.
  2. NOW: Bestätige, ob die aktuelle Aufgabe in den Anwendungsbereich dieses Skills fällt.
  3. NEXT: Lese ../tool-index.md, überprüfe die Verfügbarkeit der Tools und die tatsächlichen Pfade.
  4. NEXT: Wenn Tools fehlen, rufe Bootstrap auf; rate keine Pfade.
  5. ACT: Springe zum ersten Schritt des "Workflows" und führe ihn aus; bleibe nicht im Bestätigungsstatus hängen.

Einheitliche Reverse-Engineering-Methodik für Android + iOS Frida / Objection / OWASP MSTG / SSL Pinning Bypass

Anwendungsbereiche

  • Android APK Reverse Engineering und Sicherheitstests
  • iOS IPA Reverse Engineering und Sicherheitstests
  • Laufzeit-Dynamische Instrumentierung mobiler Apps
  • Umgehung von SSL Pinning / Root-Erkennung / Jailbreak-Erkennung
  • Extraktion mobiler Verschlüsselungsalgorithmen (AES/RSA/HMAC-Schlüssel)
  • Mobile Penetrationstests (OWASP MASTG)
  • App-Tests in Nicht-Root-/Nicht-Jailbreak-Umgebungen

Vier-Phasen-Workflow

Phase 1: Informationssammlung

Android:
□ APK-Beschaffung (Google Play / APKMirror / adb pull)
□ Manifest-Analyse: Berechtigungen, exportierte Komponenten, Intent-Filter, Backup-Flag
□ androguard: androguard analyze APK → Komponenten/Berechtigungen/Signaturen
□ APKLeaks: Scan nach hartcodierten API-Keys / Token / Secrets
□ Schutz-Erkennung: ob gepackt (360/Tencent/Bangbang/Aijiami)

iOS:
□ IPA-Beschaffung (App Store / ipatool / Apple Configurator)
□ Entschlüsselung von App Store-Binaries: frida-ios-dump / Clutch
□ Info.plist-Analyse: ATS-Konfiguration, URL-Schemes, Queries Schemes
□ class-dump: Export von ObjC-Klassenstrukturen
□ Schutz-Erkennung: ob Swift/ObjC-Verschleierung verwendet wird

Phase 2: Statische Analyse

Plattformübergreifend:
□ JADX-GUI: APK → Java-Quellcode (Android)
□ Ghidra / Hopper: .so / Mach-O Dekompilierung
□ radare2 / Cutter: CLI-Schnellrecon

Android spezifisch:
□ apktool d app.apk → smali-Code + Ressourcen
□ dex2jar: DEX → JAR → JD-GUI
□ smali/baksmali: Dalvik-Bytecode-Modifikation

iOS spezifisch:
□ class-dump: Export von ObjC-Header-Dateien
□ Swift-Symbol-Wiederherstellung: swift-demangle
□ dsymutil: Debug-Symbol-Extraktion
□ otool -L: Anzeige dynamischer Bibliotheksabhängigkeiten
□ jtool2: Mach-O-Analyse

Phase 3: Dynamische Analyse

Frida — Universelle dynamische Instrumentierung:
□ frida-ps -U: Liste der Geräteprozesse
□ frida-trace -U -i "open*" com.app: Verfolgung von Funktionsaufrufen
□ Benutzerdefinierte Hook-Skripte: Parameter-/Rückgabewertänderung, Aufruf privater Methoden

Objection — Frida-Erweiterungsschicht (ohne Skriptschreiben):
□ objection -g "com.app" explore
□ android root disable / ios jailbreak disable
□ android sslpinning disable / ios sslpinning disable
□ android keystore list / ios keychain dump
□ env / ls / sqlite connect

Frida Gadget (Root-/Jailbreak-frei):
□ Injiziere frida-gadget.so / FridaGadget.dylib in APK/IPA
□ Neu signieren → installieren → Hook ohne Geräteberechtigungen möglich
□ objection patchapk --source app.apk (vollautomatisch)

Phase 4: Netzwerkanalyse

□ Burp Suite: HTTP/HTTPS abfangen, Anfragen/Antworten modifizieren
□ mitmproxy: Skriptbasierter Proxy (Python API)
□ Wireshark: PCAP-Paketanalyse
□ Zertifikatsinstallation: Android Benutzerzertifikat → Systemzertifikat (Magisk + MoveCert)
□ SSL Pinning Umgehung: Frida/Objection/Xposed/SSL Kill Switch 2
□ WebSocket / gRPC Traffic-Analyse

Kurzreferenz gängiger Umgehungen

SSL Pinning

# Objection (am einfachsten)
objection -g "com.app" explore
android sslpinning disable

# Frida Universal-Skript
frida -U -l ssl_pinning_bypass.js -f com.app

# Xposed (Android)
TrustMeAlready Modul → globale Deaktivierung der Zertifikatsprüfung

Root / Jailbreak Erkennung

# Objection
android root disable
ios jailbreak disable

# Frida benutzerdefiniert (mehrschichtige Erkennung)
Java.perform(function() {
    var RootBeer = Java.use("com.scottyab.rootbeer.RootBeer");
    RootBeer.isRooted.implementation = function() { return false; };
    // Zusätzliche Umgehungen: Magisk su-Erkennung, frida-server-Erkennung, /proc/self/maps-Erkennung
});

Anti-Debugging

# Android
frida -U -l anti_debug_bypass.js -f com.app
# Umgehungen: ptrace(TracerPid), /proc/self/status, isDebuggerConnected()

# iOS
# Umgehungen: PT_DENY_ATTACH, sysctl CTL_KERN/KERN_PROC/KERN_PROC_PID
frida -U -l ios_anti_debug.js -f com.app

Mobile Verschlüsselungsextraktion

// Android — Hook Cipher.getInstance um Schlüssel+Algorithmus zu erhalten
Java.perform(function() {
    var Cipher = Java.use("javax.crypto.Cipher");
    Cipher.getInstance.overload('java.lang.String').implementation = function(algo) {
        console.log("[Cipher] Algorithm: " + algo);
        return this.getInstance(algo);
    };
    Cipher.init.overload('int', 'java.security.Key').implementation = function(mode, key) {
        console.log("[Cipher] Key: " + bytesToHex(key.getEncoded()));
        return this.init(mode, key);
    };
});

// iOS — Hook CCCrypt
Interceptor.attach(Module.findExportByName("libcommonCrypto.dylib", "CCCrypt"), {
    onEnter: function(args) {
        console.log("CCCrypt op: " + args[0] + " alg: " + args[1]);
        console.log("Key: " + hexdump(args[3], { length: args[4].toInt32() }));
    }
});

Tool-Kette

ToolPlattformVerwendung
JADX-GUIAJava-Dekompilierung
apktoolAAPK Entpacken/Wiederaufbau
GhidraA+IMulti-Architektur-Dekompilierung
HopperIiOS-spezifische Disassemblierung
FridaA+IDynamische Instrumentierung
ObjectionA+IFrida REPL-Erweiterung
MobSFA+IAutomatisierte SAST+DAST
class-dumpIObjC-Klassenexport
frida-ios-dumpIIPA-Entschlüsselung
jtool2IMach-O-Analyse
Burp SuiteA+IHTTP-Abfangen
mitmproxyA+ISkriptbasierter Proxy

A=Android, I=iOS

Referenzen

  • references/frida-objection-deep.md — Frida + Objection Tiefenwissen
  • references/ios-reverse-guide.md — iOS Reverse Engineering Spezial
  • references/anti-detection-bypass.md — Root/Jailbreak/Anti-Debugging/SSL Pinning Umgehung

Aufgabenabschluss-Checkliste (MUSS vor der Behauptung der Fertigstellung durchgeführt sein)

  • Habe ich jeden Schritt des Workflows ausgeführt (nicht nur gelesen)?
  • Habe ich basierend auf tool-index die tatsächlichen Tool-Pfade verwendet?
  • Habe ich reproduzierbare Beweise erzeugt (Befehle/Skripte/Screenshots/Berichte)?
  • Habe ich die von den RULES geforderten Checklisten-Punkte abgeschlossen und zurückgeschrieben?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

Verwandte Skills