Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
NinjaDroid — Engenharia Reversa Ninja em pacotes APK do Android | Kitploit
Ferramentas/GitHubGitHub/rovellipaolo/ninjadroid
Segurança AndroidAnálise EstáticaEngenharia ReversaSegurança MóvelAnálise de Binários
GitHubrovellipaolo/ninjadroid

NinjaDroid

Engenharia Reversa Ninja em pacotes APK do Android

Ver Repositório
2874823há 4 mesesRevisado pelo Kitploit

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

NinjaDroid

NinjaDroid é uma ferramenta simples para engenharia reversa de pacotes Android APK.

Publicado em: https://snapcraft.io/ninjadroid```shell $ snap install ninjadroid --channel=beta

[![Build Status: GitHub Actions](https://github.com/rovellipaolo/NinjaDroid/actions/workflows/ci.yml/badge.svg)](https://github.com/rovellipaolo/NinjaDroid/actions)
[![Cobertura de Testes: Coveralls](https://coveralls.io/repos/github/rovellipaolo/NinjaDroid/badge.svg)](https://coveralls.io/github/rovellipaolo/NinjaDroid)
[![Licença: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)

[![Obtenha na Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/ninjadroid)

![NinjaDroid](https://assets.kitploit.com/production/public/readmes/4568/71f6e3768aa2e887064c58d1d0355577f24435dfe238892a763269d312e5057d.gif "Vídeo de demonstração do NinjaDroid")



## Visão Geral

O NinjaDroid utiliza o [AXMLParser](https://github.com/appknox/pyaxmlparser) juntamente com uma série de scripts Python baseados em `aapt`, `keytool`, `string` e outros para extrair diversas informações de um pacote APK, tais como:

- Lista de arquivos do APK: nome do arquivo, tamanho, MD5, SHA-1, SHA-256 e SHA-512
- Informações do `AndroidManifest.xml`: nome do aplicativo, nome do pacote, versão, sdks, permissões, atividades, serviços, broadcast-receivers, ...
- Informações do certificado digital `CERT.RSA/DSA`: número de série, validade, impressão digital, emissor e proprietário
- Lista de URLs, comandos de shell e outras strings genéricas codificadas nos arquivos `classes.dex`

Além disso, o NinjaDroid usa [apktool](https://github.com/iBotPeaches/Apktool) e [dex2jar](https://github.com/pxb1988/dex2jar) para extrair e armazenar:

- arquivo de relatório JSON, que contém todas as informações extraídas do APK
- arquivo `AndroidManifest.xml` (graças ao `apktool`)
- arquivo de certificado digital `CERT.RSA/DSA`
- arquivos `classes.dex`
- arquivo _.jar_ traduzido (graças ao `dex2jar`)
- arquivos smali desmontados (graças ao `apktool`)
- pastas `assets/` e `res/` juntamente com seu conteúdo (graças ao `apktool`)



## Compilação

O primeiro passo é clonar o repositório do NinjaDroid ou baixar seu código-fonte.```shell
$ git clone https://github.com/rovellipaolo/NinjaDroid
$ cd NinjaDroid

NinjaDroid tem várias formas de ser executado: nativamente no seu ambiente local, em Docker, como Flatpak (experimental) e como Snap (experimental).

Nativo

Para executar o NinjaDroid na sua máquina local, precisa de instalar Python 3.5 ou superior, Java 8 ou superior e binutils.

Opcionalmente, se tiver o Android SDK instalado localmente, pode usar a versão do SDK do aapt em vez da incluída. Para tal, precisa de alterar a localização do aapt em ninjadroid/aapt/Aapt.py (i.e. __AAPT_EXEC_PATH = "ninjadroid/aapt/aapt").

Linux

Basta executar os seguintes comandos, que instalarão todas as dependências Python (garantindo que aapt, apktool e dex2jar têm permissões executáveis) e adicionarão um link simbólico ninjadroid para /usr/local/bin/.```shell $ make build-linux $ make install $ ninjadroid --help

#### MacOS
Apenas execute os seguintes comandos, que instalarão todas as dependências Python necessárias (certificando-se de que `aapt`, `apktool` e `dex2jar` tenham permissões de execução) e adicionarão um link simbólico `ninjadroid` para `/usr/local/bin/`.```shell
$ make build-macos
$ make install
$ ninjadroid --help

Docker

Para executar o NinjaDroid no Docker, você precisa ter o Docker instalado. Para construir a imagem Docker, execute os seguintes comandos:```shell $ make build-docker $ docker run --name ninjadroid ninjadroid:latest ninjadroid --help

Note que você precisa vincular o diretório que contém o pacote APK de destino à imagem Docker:```shell
$ mkdir apks
$ cp /path/to/your/package.apk apks/package.apk
$ docker run --name ninjadroid -it --rm -v $(pwd)/apks:/apks ninjadroid:latest ninjadroid /apks/package.apk -aj

E o mesmo se aplica também ao diretório de saída ao usar a opção -e/--extract, ao qual você também precisa conceder permissões:```shell $ mkdir output $ chmod 777 $ docker run --name ninjadroid --rm -v $(pwd)/apks:/apks -v $(pwd)/output:/output ninjadroid:latest ninjadroid /apks/package.apk -ae /output

### Flatpak (experimental)
Para executar o NinjaDroid como um Flatpak, você precisa do `Flatpak` e do `flatpak-builder` instalados.
Basta executar os seguintes comandos, que instalarão todas as dependências do Flatpak necessárias:```shell
$ make build-flatpak
$ flatpak-builder --run flatpak/build flatpak/com.github.rovellipaolo.NinjaDroid.yaml ninjadroid --help

NOTA: A opção -e/--extract não funciona corretamente no momento (veja: https://github.com/rovellipaolo/NinjaDroid/issues/21).

Snap (experimental)

Para executar o NinjaDroid como um Snap, você precisa ter Snap e snapcraft instalados. Basta executar os seguintes comandos, que instalarão todas as dependências Snap necessárias:```shell $ make build-snap $ make install-snap $ ninjadroid --help

**NOTE:** A opção `-e`/`--extract` não funciona corretamente quando o snap é instalado sem usar a opção `--devmode` (veja: https://github.com/rovellipaolo/NinjaDroid/issues/20).

## Teste

Depois de configurado (veja a seção _"Instalação"_), você também pode executar os testes e o checkstyle da seguinte forma.

### Nativo
Para executá-los em sua máquina local, execute os seguintes comandos:```shell
$ make test
$ make regression
$ make checkstyle

Você também pode executar os testes com cobertura utilizando o seguinte comando:```shell $ make test-coverage

E/ou configure o checkstyle para ser executado automaticamente a cada git commit ao executar o seguinte comando:```
$ make install-githooks

Docker

Para executá-los no Docker, execute os seguintes comandos:```shell $ make test-docker $ make regression-docker $ make checkstyle-docker

### Flatpak
Para executar os testes de regressão no Flatpak, execute o seguinte comando:```shell
$ make regression-flatpak

Snap

Para executar os testes de regressão no Snap, execute o seguinte comando:```shell $ make regression-snap

## Uso

Os seguintes são exemplos de execução do NinjaDroid contra o pacote APK de exemplo.
Baixar ferramenta