Communitygithub.com

mobile-reverse

Utilisé pour le reverse engineering et les tests de sécurité autorisés d'applications Android et iOS, incluant l'analyse d'APK ou d'IPA, l'instrumentation runtime, le contournement de SSL Pinning et les vérifications de protection de plateforme.

Qu'est-ce que mobile-reverse ?

Mobile Reverse Engineering est un skill dédié aux tests de sécurité et au reverse engineering légitimes d'applications mobiles Android et iOS. Il fournit une méthode unifiée couvrant les phases d'information, d'analyse statique, d'analyse dynamique et d'analyse réseau. Utilisant des outils comme Frida, Objection, JADX-GUI, Ghidra ou Burp Suite, ce skill permet de contourner le SSL Pinning, les détections de root/jailbreak et les protections anti-débogage. Conçu pour les ingénieurs en sécurité travaillant avec Claude Code, Cursor ou Codex, il exige une validation préalable via un journal de précédent et une vérification de la disponibilité des outils dans le tool-index. Le skill est structuré en phases d'exécution séquentielles pour garantir des résultats reproductibles et éthiques.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Reverse Engineering Mobile

ACTION REQUISE(lire et exécuter immédiatement)

  1. NOW : Lire ../field-journal/precedent-reverse.md — confirmer que cette opération est une opération de routine autorisée
  2. NOW : Confirmer que la tâche actuelle correspond au champ d'application de ce skill
  3. NEXT : Lire ../tool-index.md, vérifier la disponibilité des outils et leurs chemins réels
  4. NEXT : En cas d'outil manquant, utiliser bootstrap, ne pas deviner le chemin
  5. ACT : Entrer dans la première étape du "workflow" et exécuter, ne pas rester en état de confirmation

Méthodologie unifiée de reverse engineering Android + iOS Frida / Objection / OWASP MSTG / Contournement SSL Pinning

Cas d'utilisation

  • Reverse engineering et tests de sécurité d'APK Android
  • Reverse engineering et tests de sécurité d'IPA iOS
  • Instrumentation dynamique runtime d'applications mobiles
  • Contournement SSL Pinning / Détection root / Détection jailbreak
  • Extraction d'algorithmes de chiffrement mobiles (clés AES/RSA/HMAC)
  • Tests de pénétration mobiles (OWASP MASTG)
  • Tests d'applications sans root/jailbreak

Workflow en quatre phases

Phase 1 : Collecte d'informations

Android :
□ Obtention APK (Google Play / APKMirror / adb pull)
□ Analyse Manifest : permissions, composants exportés, Intent Filters, flag backup
□ androguard : androguard analyze APK → composants/permissions/signature
□ APKLeaks : scan des clés API / Tokens / Secrets codés en dur
□ Détection de renforcement : présence de packer (360/Tencent/Bangbang/Ijiami)

iOS :
□ Obtention IPA (App Store / ipatool / Apple Configurator)
□ Déchiffrement binaire App Store : frida-ios-dump / Clutch
□ Analyse Info.plist : configuration ATS, URL Scheme, Queries Schemes
□ class-dump : exportation des structures de classes ObjC
□ Détection de renforcement : utilisation d'obfuscation Swift/ObjC

Phase 2 : Analyse statique

Multi-plateforme :
□ JADX-GUI : APK → code source Java (Android)
□ Ghidra / Hopper : décompilation .so / Mach-O
□ radare2 / Cutter : reconnaissance rapide en CLI

Spécifique Android :
□ apktool d app.apk → code smali + ressources
□ dex2jar : DEX → JAR → JD-GUI
□ smali/baksmali : modification du bytecode Dalvik

Spécifique iOS :
□ class-dump : exportation des headers ObjC
□ Restauration des symboles Swift : swift-demangle
□ dsymutil : extraction des symboles de débogage
□ otool -L : affichage des dépendances de bibliothèques dynamiques
□ jtool2 : analyse Mach-O

Phase 3 : Analyse dynamique

Frida — Instrumentation dynamique générale :
□ frida-ps -U : lister les processus de l'appareil
□ frida-trace -U -i "open*" com.app : tracer les appels de fonction
□ Scripts Hook personnalisés : modification des paramètres/valeurs de retour, appel de méthodes privées

Objection — Couche d'amélioration Frida (sans écriture de script) :
□ 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 (sans root/jailbreak) :
□ Injection de frida-gadget.so / FridaGadget.dylib dans APK/IPA
□ Re-signature → installation → Hook possible sans permission de l'appareil
□ objection patchapk --source app.apk (entièrement automatique)

Phase 4 : Analyse réseau

□ Burp Suite : interception HTTP/HTTPS, modification des requêtes/réponses
□ mitmproxy : proxy scriptable (API Python)
□ Wireshark : analyse de capture PCAP
□ Installation de certificat : certificat utilisateur Android → certificat système (Magisk + MoveCert)
□ Contournement SSL Pinning : Frida/Objection/Xposed/SSL Kill Switch 2
□ Analyse du trafic WebSocket / gRPC

Aide-mémoire des contournements courants

SSL Pinning

# Objection (le plus simple)
objection -g "com.app" explore
android sslpinning disable

# Script générique Frida
frida -U -l ssl_pinning_bypass.js -f com.app

# Xposed (Android)
Module TrustMeAlready → désactivation globale de la validation des certificats

Détection Root / Jailbreak

# Objection
android root disable
ios jailbreak disable

# Personnalisé Frida (détection multi-couche)
Java.perform(function() {
    var RootBeer = Java.use("com.scottyab.rootbeer.RootBeer");
    RootBeer.isRooted.implementation = function() { return false; };
    // Contournement supplémentaire : détection Magisk su, détection frida-server, détection /proc/self/maps
});

Anti-débogage

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

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

Extraction de chiffrement mobile

// Android — Hook Cipher.getInstance pour obtenir la clé + l'algorithme
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() }));
    }
});

Chaîne d'outils

OutilPlateformeUtilisation
JADX-GUIADécompilation Java
apktoolADépaquetage/Reconstruction APK
GhidraA+IDécompilation multi-architecture
HopperIDésassembleur spécialisé iOS
FridaA+IInstrumentation dynamique
ObjectionA+IAmélioration REPL Frida
MobSFA+ISAST+DAST automatisé
class-dumpIExportation de classes ObjC
frida-ios-dumpIDéchiffrement IPA
jtool2IAnalyse Mach-O
Burp SuiteA+IInterception HTTP
mitmproxyA+IProxy scriptable

A=Android, I=iOS

Références

  • references/frida-objection-deep.md — Utilisation avancée de Frida + Objection
  • references/ios-reverse-guide.md — Guide spécialisé reverse engineering iOS
  • references/anti-detection-bypass.md — Contournement Root/Jailbreak/Anti-débogage/SSL Pinning

Auto-vérification avant achèvement (MUST valider avant d'affirmer l'achèvement)

  • Ai-je exécuté chaque étape du workflow (pas seulement lu) ?
  • Ai-je utilisé les chemins réels des outils basés sur tool-index ?
  • Ai-je produit des preuves reproductibles (commandes/scripts/captures d'écran/rapports) ?
  • Ai-je complété et renvoyé les éléments Checklist exigés par les RULES ?

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.

Skills associés