Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
android-reverse-engineering-skill — Descompila arquivos Android APK/XAPK/JAR/AAR e extrai APIs HTTP, padrões de autenticação e fluxos de chamada usando jadx, com recuperação de nomes Kotlin resistente a R8 para pesquisa de segurança e testes de penetração. | Kitploit
Ferramentas/GitHubGitHub/simoneavogadro/android-reverse-engineering-skill
Segurança AndroidAnálise EstáticaAnálise de VulnerabilidadesPentesting de Apps MóveisEngenharia ReversaTestes de Segurança de APIsColeta de InformaçõesTestes de PenetraçãoSegurança Móvel

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Análise de Binários
Aprendizado e Educação
GitHubsimoneavogadro/android-reverse-engineering-skill

android-reverse-engineering-skill

Descompila arquivos Android APK/XAPK/JAR/AAR e extrai APIs HTTP, padrões de autenticação e fluxos de chamada usando jadx, com recuperação de nomes Kotlin resistente a R8 para pesquisa de segurança e testes de penetração.

Ver Repositório
6.7k73714há 1 diaRevisado pelo Kitploit

Android Reverse Engineering & API Extraction — Habilidade do Claude Code

License: Apache-2.0 GitHub stars GitHub last commit

Uma habilidade do Claude Code que descompila arquivos APK/XAPK/JAR/AAR do Android e extrai as APIs HTTP usadas pelo aplicativo — endpoints Retrofit, chamadas OkHttp, URLs codificadas, padrões de autenticação — para que você possa documentá-las e reproduzi-las sem o código-fonte original.

Suporte de primeira classe para Kotlin: aplicativos Android modernos são Kotlin/KMP, fortemente ofuscados com R8. Esta habilidade recupera os nomes originais de classes Kotlin a partir de metadados que o R8 não pode remover, e extrai APIs de Ktor, Apollo (GraphQL) e Koin — não apenas da pilha clássica Retrofit/OkHttp. Veja Recuperação de nomes Kotlin abaixo.

Suporte para Windows / PowerShell (experimental): Os scripts *.ps1 que acompanham os bash são uma contribuição recente da comunidade, ainda em estabilização. Para quaisquer problemas, por favor abra uma issue neste repositório (não nos forks upstream dos contribuidores): os scripts PowerShell são mantidos aqui por @SimoneAvogadro.

Índice

  • O que faz
  • Requisitos
  • Instalação
  • Uso
  • Estrutura do Repositório
  • Referências
  • Agradecimentos
  • Aviso Legal
  • Licença

O que faz

Requisitos

Obrigatório:

  • Java JDK 17+
  • jadx (CLI)

Opcional (recomendado):

  • Vineflower ou Fernflower — melhor saída em código Java complexo
  • dex2jar — necessário para usar Fernflower em arquivos APK/DEX

Consulte plugins/android-reverse-engineering/skills/android-reverse-engineering/references/setup-guide.md para instruções detalhadas de instalação.

Instalação

Do GitHub (recomendado)

Dentro do Claude Code, execute:

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

A habilidade estará permanentemente disponível em todas as sessões futuras.

De um clone local

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

Em seguida, no Claude Code:

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

Uso

Comando de barra

root@kitploit:~
/decompile caminho/para/app.apk

Isso executa o fluxo de trabalho completo: verificação de dependências, descompilação e análise de estrutura inicial.

Linguagem natural

A habilidade ativa com frases como:

  • "Descompile este APK"
  • "Faça engenharia reversa deste aplicativo Android"
  • "Extraia endpoints de API deste aplicativo"
  • "Siga o fluxo de chamada do LoginActivity"
  • "Analise esta biblioteca AAR"

Scripts manuais

Os scripts também podem ser usados de forma independente:

root@kitploit:~
# Verificar dependências
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/check-deps.sh

# Instalar uma dependência ausente (detecta automaticamente o SO e gerenciador de pacotes)
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

# Impressão digital de um APK/XAPK ANTES de descompilar (triagem Fase 0):
# framework, pilha HTTP, nível de ofuscação, bibliotecas nativas, SDKs notáveis
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/fingerprint.sh app.apk

# Descompilar APK com jadx (padrão)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh app.apk

# Descompilar XAPK (extrai e descompila automaticamente cada APK interno)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh app-bundle.xapk

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

# Executar ambos os motores e comparar
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh --engine both --deobf app.apk

# Encontrar chamadas de API — padrão para uma varredura completa em todas as pilhas suportadas
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

# Pilhas modernas Kotlin/KMP e extração resistente a ofuscação
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --ktor    # Cliente 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   # literais de caminho entre aspas que sobrevivem à inlining do R8

Recuperação de nomes Kotlin (desofuscação R8)

A maioria dos aplicativos Kotlin/KMP do mundo real é distribuída através do R8, então as classes descompiladas aparecem como a.b.c. O R8 renomeia os símbolos JVM, mas não pode remover as strings de metadados Kotlin — o runtime Kotlin (reflexão, corrotinas) precisa dos nomes totalmente qualificados originais em tempo de execução. Esta habilidade extrai essas anotações @DebugMetadata / @Metadata para reconstruir um mapa de nomes de classe ofuscado → real. Em um aplicativo típico, recupera ~100% das classes *Repository / *ViewModel / *UseCase / *Impl que você realmente deseja ler.

root@kitploit:~
# 1. Construir o mapeamento a partir das fontes descompiladas
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. Consultá-lo: resolver um nome ofuscado, pesquisar por nome real, ou usar grep
#    nas fontes com cada ocorrência anotada com seu nome de classe recuperado
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/

Estrutura do Repositório

root@kitploit:~
android-reverse-engineering-skill/
├── .claude-plugin/
│   └── marketplace.json                    # Catálogo do Marketplace
├── plugins/
│   └── android-reverse-engineering/
│       ├── .claude-plugin/
│       │   └── plugin.json                 # Manifesto do plugin
│       ├── skills/
│       │   └── android-reverse-engineering/
│       │       ├── SKILL.md                # Fluxo de trabalho principal (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 de exclusão para categorização primeiro/terceiro
│       │       │   └── 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 — triagem pré-descompilação
│       │           ├── recover-kotlin-names.sh # R8 → nomes reais de classes Kotlin
│       │           ├── lookup-name.sh          # consultar o mapa de nomes recuperados
│       │           ├── find-api-calls.sh
│       │           └── find-api-calls.ps1
│       └── commands/
│           └── decompile.md                # Comando de barra /decompile
├── LICENSE
└── README.md

Referências

  • jadx — Descompilador Dex para Java
  • Fernflower — Descompilador analítico JetBrains
  • Vineflower — Fork comunitário do Fernflower
  • dex2jar — Conversor DEX para JAR
  • apktool — Decodificador de recursos Android

Agradecimentos

Agradecimentos aos contribuidores que moldaram esta habilidade:

  • @tajchert — Impressão digital Fase 0, recuperação de nomes Kotlin resistente ao R8 (recover-kotlin-names.sh, lookup-name.sh), e padrões de extração Ktor / Apollo / Koin / HMAC (#16)
  • @philjn — Suporte nativo Windows / PowerShell (check-deps.ps1, install-dep.ps1, decompile.ps1, find-api-calls.ps1) e detecção de APK dividido/empacotado em decompile.sh (#8)
  • @txhno — Migração para o fork mantido ThexXTURBOXx/dex2jar (#12)
  • @muqiao215 — Tratamento de sucesso parcial na descompilação, proteção de timeout do Fernflower, diretório de artefatos intermediários (#10)
  • @kevinaimonster — Localização para chinês (palavras-chave de descoberta do SKILL.md) (#4)

Aviso Legal

Este plugin é fornecido estritamente para fins legais, incluindo, mas não se limitando a:

  • Pesquisa de segurança e testes de penetração autorizados
  • Análise de interoperabilidade permitida pela legislação aplicável (ex.: Diretiva da UE 2009/24/EC, DMCA dos EUA §1201(f))
  • Análise de malware e resposta a incidentes
  • Uso educacional e competições CTF

Você é o único responsável por garantir que seu uso desta ferramenta esteja em conformidade com todas as leis, regulamentos e termos de serviço aplicáveis. A engenharia reversa não autorizada de software que você não possui ou não tem permissão para analisar pode violar leis de propriedade intelectual e leis de fraude computacional em sua jurisdição.

Os autores se isentam de qualquer responsabilidade pelo uso indevido desta ferramenta.

Licença

Apache 2.0 — veja LICENSE

Baixar ferramenta
CapacidadeDescrição
Impressão digital primeiro (Fase 0)Triagem de um APK/XAPK em segundos — detecta o framework (Flutter / React Native / Cordova / Xamarin / Kotlin nativo), pilha HTTP, nível de ofuscação e bibliotecas nativas antes de gastar tempo numa descompilação completa
DescompilarArquivos APK, XAPK, JAR e AAR usando jadx e Fernflower/Vineflower (motor único ou comparação lado a lado)
Recuperar nomes KotlinReconstruir nomes de classes originais *Repository / *ViewModel / *UseCase a partir de binários ofuscados por R8 usando metadados Kotlin que o R8 não pode remover
Extrair APIsRetrofit, OkHttp, Volley e pilhas modernas Kotlin/KMP: Ktor, Apollo (GraphQL), Koin DI — endpoints, URLs codificadas, cabeçalhos de autenticação, tokens e esquemas de assinatura de requisição HMAC
Rastrear fluxos de chamadaDe Activities/Fragments através de ViewModels e repositórios até chamadas HTTP
Analisar estruturaManifesto, pacotes, padrões de arquitetura
Lidar com ofuscaçãoExtração de caminhos/URLs resistente ao R8, além de estratégias para navegar na saída do ProGuard/R8