Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
android-reverse-engineering-skill — Decompila file APK/XAPK/JAR/AAR Android ed estrae API HTTP, pattern di autenticazione e flussi di chiamata utilizzando jadx, con recupero dei nomi Kotlin resistenti a R8 per ricerca sulla sicurezza e penetration testing. | Kitploit
Strumenti/GitHubGitHub/simoneavogadro/android-reverse-engineering-skill
Sicurezza AndroidAnalisi StaticaAnalisi delle VulnerabilitàPentesting di App MobiliReverse EngineeringTest di Sicurezza delle APIRaccolta InformazioniPenetration TestingSicurezza Mobile

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Analisi di Binari
Apprendimento e Formazione
GitHubsimoneavogadro/android-reverse-engineering-skill

android-reverse-engineering-skill

Decompila file APK/XAPK/JAR/AAR Android ed estrae API HTTP, pattern di autenticazione e flussi di chiamata utilizzando jadx, con recupero dei nomi Kotlin resistenti a R8 per ricerca sulla sicurezza e penetration testing.

Vedi Repository
6.7k7372 mesi faRevisionato da Kitploit

Reverse Engineering Android & Estrazione API — Skill per Claude Code

License: Apache-2.0 GitHub stars GitHub last commit

Una skill per Claude Code che decompila file APK/XAPK/JAR/AAR di Android e estrae le API HTTP utilizzate dall'app — endpoint Retrofit, chiamate OkHttp, URL hardcoded, pattern di autenticazione — in modo da poterli documentare e riprodurre senza il codice sorgente originale.

Supporto di prima classe per Kotlin: le moderne app Android sono Kotlin/KMP, pesantemente offuscate con R8. Questa skill recupera i nomi originali delle classi Kotlin dai metadati che R8 non può rimuovere ed estrae le API da Ktor, Apollo (GraphQL) e Koin — non solo dal classico stack Retrofit/OkHttp. Vedi Recupero nomi Kotlin più avanti.

Supporto Windows / PowerShell (sperimentale): gli script *.ps1 insieme a quelli bash sono un recente contributo della community, ancora in fase di stabilizzazione. Per qualsiasi problema, apri un issue su questo repository (non sui fork upstream dei contributori): gli script PowerShell sono mantenuti qui da @SimoneAvogadro.

Indice

  • Cosa fa
  • Requisiti
  • Installazione
  • Utilizzo
  • Struttura del repository
  • Riferimenti
  • Ringraziamenti
  • Disclaimer
  • Licenza

Cosa fa

Requisiti

Obbligatorio:

  • Java JDK 17+
  • jadx (CLI)

Opzionale (consigliato):

  • Vineflower o Fernflower — output migliore su codice Java complesso
  • dex2jar — necessario per usare Fernflower su file APK/DEX

Vedi plugins/android-reverse-engineering/skills/android-reverse-engineering/references/setup-guide.md per istruzioni di installazione dettagliate.

Installazione

Da GitHub (consigliato)

All'interno di Claude Code, esegui:

root@kitploit:~
/plugin marketplace add SimoneAvogadro/android-reverse-engineering-skill
/plugin install android-reverse-engineering@android-reverse-engineering-skill

La skill sarà permanentemente disponibile in tutte le sessioni future.

Da un clone locale

root@kitploit:~
git clone https://github.com/SimoneAvogadro/android-reverse-engineering-skill.git

Poi in Claude Code:

root@kitploit:~
/plugin marketplace add /path/to/android-reverse-engineering-skill
/plugin install android-reverse-engineering@android-reverse-engineering-skill

Utilizzo

Comando slash

root@kitploit:~
/decompile path/to/app.apk

Esegue il flusso di lavoro completo: controllo delle dipendenze, decompilazione e analisi iniziale della struttura.

Linguaggio naturale

La skill si attiva con frasi come:

  • "Decompila questo APK"
  • "Fai reverse engineering di questa app Android"
  • "Estrai gli endpoint API da questa app"
  • "Segui il flusso di chiamata da LoginActivity"
  • "Analizza questa libreria AAR"

Script manuali

Gli script possono essere usati anche in modo autonomo:

root@kitploit:~
# Controlla le dipendenze
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/check-deps.sh

# Installa una dipendenza mancante (rileva automaticamente OS e gestore pacchetti)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/install-dep.sh jadx
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/install-dep.sh vineflower

# Impronta digitale di un APK/XAPK PRIMA della decompilazione (triage Fase 0):
# framework, stack HTTP, livello di offuscamento, librerie native, SDK notevoli
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/fingerprint.sh app.apk

# Decompila APK con jadx (predefinito)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh app.apk

# Decompila XAPK (estrae automaticamente e decompila ogni APK all'interno)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh app-bundle.xapk

# Decompila con Fernflower
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh --engine fernflower library.jar

# Esegui entrambi i motori e confronta
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh --engine both --deobf app.apk

# Trova chiamate API — per impostazione predefinita esegue una scansione completa su ogni stack supportato
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --retrofit
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --urls

# Stack moderni Kotlin/KMP ed estrazione resistente all'offuscamento
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --ktor    # client Ktor
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --apollo  # Apollo / GraphQL
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --paths   # letterali di percorso quotati che sopravvivono all'inlining di R8

Recupero nomi Kotlin (deoffuscamento R8)

La maggior parte delle app Kotlin/KMP reali viene distribuita tramite R8, quindi le classi decompilate risultano come a.b.c. R8 rinomina i simboli JVM ma non può rimuovere le stringhe dei metadati Kotlin — il runtime Kotlin (riflessione, coroutine) necessita dei nomi completi originali a runtime. Questa skill estrae le annotazioni @DebugMetadata / @Metadata per ricostruire una mappa offuscato → reale dei nomi delle classi. Su un'app tipica recupera circa il 100% delle classi *Repository / *ViewModel / *UseCase / *Impl che desideri effettivamente leggere.

root@kitploit:~
# 1. Costruisci la mappa dai sorgenti decompilati
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/recover-kotlin-names.sh output/sources/ output/names/
#    → output/names/mapping.tsv, mapping.json, by_package/

# 2. Esegui query: risolvi un nome offuscato, cerca per nome reale, o cerca
#    nei sorgenti con ogni corrispondenza annotata con il nome di classe recuperato
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/lookup-name.sh output/names/ LoginRepository
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/lookup-name.sh output/names/ -o a.b.c
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/lookup-name.sh output/names/ --grep 'login' output/sources/

Struttura del repository

root@kitploit:~
android-reverse-engineering-skill/
├── .claude-plugin/
│   └── marketplace.json                    # Catalogo del marketplace
├── plugins/
│   └── android-reverse-engineering/
│       ├── .claude-plugin/
│       │   └── plugin.json                 # Manifest del plugin
│       ├── skills/
│       │   └── android-reverse-engineering/
│       │       ├── SKILL.md                # Flusso di lavoro principale (Fase 0–5)
│       │       ├── references/
│       │       │   ├── setup-guide.md
│       │       │   ├── jadx-usage.md
│       │       │   ├── fernflower-usage.md
│       │       │   ├── api-extraction-patterns.md
│       │       │   ├── kotlin-name-recovery.md
│       │       │   ├── third_party_hosts.txt   # lista di blocco per categorizzazione prima/terza parte
│       │       │   └── call-flow-analysis.md
│       │       └── scripts/
│       │           ├── check-deps.sh       # Bash
│       │           ├── check-deps.ps1      # PowerShell
│       │           ├── install-dep.sh
│       │           ├── install-dep.ps1
│       │           ├── decompile.sh
│       │           ├── decompile.ps1
│       │           ├── fingerprint.sh          # Fase 0 — triage pre-decompilazione
│       │           ├── recover-kotlin-names.sh # R8 → nomi reali delle classi Kotlin
│       │           ├── lookup-name.sh          # esegui query sulla mappa dei nomi recuperati
│       │           ├── find-api-calls.sh
│       │           └── find-api-calls.ps1
│       └── commands/
│           └── decompile.md                # /decompile comando slash
├── LICENSE
└── README.md

Riferimenti

  • jadx — Decompilatore da Dex a Java
  • Fernflower — Decompilatore analitico JetBrains
  • Vineflower — Fork community di Fernflower
  • dex2jar — Convertitore da DEX a JAR
  • apktool — Decodificatore di risorse Android

Ringraziamenti

Grazie ai contributori che hanno plasmato questa skill:

  • @tajchert — Impronta digitale Fase 0, recupero nomi Kotlin resistente a R8 (recover-kotlin-names.sh, lookup-name.sh) e pattern di estrazione Ktor / Apollo / Koin / HMAC (#16)
  • @philjn — Supporto nativo Windows / PowerShell (check-deps.ps1, install-dep.ps1, decompile.ps1, find-api-calls.ps1) e rilevamento APK divisi/raggruppati in decompile.sh (#8)
  • @txhno — Migrazione al fork mantenuto ThexXTURBOXx/dex2jar (#12)
  • @muqiao215 — Gestione decompilazione parzialmente riuscita, timeout di sicurezza Fernflower, directory degli artefatti intermedi (#10)
  • @kevinaimonster — Localizzazione cinese (parole chiave di scoperta in SKILL.md) (#4)

Disclaimer

Questo plugin è fornito strettamente per scopi leciti, inclusi ma non limitati a:

  • Ricerca sulla sicurezza e test di penetrazione autorizzati
  • Analisi di interoperabilità consentita dalle leggi applicabili (ad es. Direttiva UE 2009/24/CE, US DMCA §1201(f))
  • Analisi di malware e risposta agli incidenti
  • Uso educativo e competizioni CTF

Sei l'unico responsabile per garantire che il tuo utilizzo di questo strumento sia conforme a tutte le leggi, normative e termini di servizio applicabili. Il reverse engineering non autorizzato di software di cui non possiedi i diritti o per il quale non hai il permesso di analizzare potrebbe violare le leggi sulla proprietà intellettuale e le normative sul crimine informatico nella tua giurisdizione.

Gli autori declinano ogni responsabilità per l'uso improprio di questo strumento.

Licenza

Apache 2.0 — vedi LICENSE

Scarica lo strumento
CapacitàDescrizione
Impronta digitale iniziale (Fase 0)Analizza un APK/XAPK in secondi — rileva il framework (Flutter / React Native / Cordova / Xamarin / nativo-Kotlin), lo stack HTTP, il livello di offuscamento e le librerie native prima di dedicare tempo a una decompilazione completa
DecompilaFile APK, XAPK, JAR e AAR utilizzando jadx e Fernflower/Vineflower (motore singolo o confronto affiancato)
Recupera nomi KotlinRicostruisce i nomi originali delle classi *Repository / *ViewModel / *UseCase da binari offuscati con R8 utilizzando i metadati Kotlin che R8 non può rimuovere
Estrae APIRetrofit, OkHttp, Volley e stack moderni Kotlin/KMP: Ktor, Apollo (GraphQL), Koin DI — endpoint, URL hardcoded, header di autenticazione, token e schemi di firma delle richieste HMAC
Traccia i flussi di chiamataDalle Activity/Fragment attraverso ViewModel e repository fino alle chiamate HTTP
Analizza la strutturaManifest, pacchetti, pattern architetturali
Gestisce l'offuscamentoEstrazione di percorsi/URL resistente a R8 più strategie per navigare nell'output di ProGuard/R8