Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
NinjaDroid — Ingeniería inversa ninja en paquetes APK de Android | Kitploit
Herramientas/GitHubGitHub/rovellipaolo/ninjadroid
Seguridad AndroidAnálisis EstáticoIngeniería InversaSeguridad MóvilAnálisis de Binarios
GitHubrovellipaolo/ninjadroid

NinjaDroid

Ingeniería inversa ninja en paquetes APK de Android

Ver Repositorio
2874823hace 4 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

NinjaDroid

NinjaDroid es una herramienta simple para la ingeniería inversa de paquetes APK de Android.

Publicado en: 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)
[![Test Coverage: Coveralls](https://coveralls.io/repos/github/rovellipaolo/NinjaDroid/badge.svg)](https://coveralls.io/github/rovellipaolo/NinjaDroid)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)

[![Get it from the 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 "Captura de pantalla de NinjaDroid")



## Resumen

NinjaDroid utiliza [AXMLParser](https://github.com/appknox/pyaxmlparser) junto con una serie de scripts de Python basados en `aapt`, `keytool`, `string` y similares para extraer una serie de información de un paquete APK dado, como:

- Lista de archivos del APK: nombre del archivo, tamaño, MD5, SHA-1, SHA-256 y SHA-512
- Información de `AndroidManifest.xml`: nombre de la app, nombre del paquete, versión, sdks, permisos, actividades, servicios, broadcast-receivers, ...
- Información del certificado digital `CERT.RSA/DSA`: número de serie, validez, huella digital, emisor y propietario
- Lista de URLs, comandos de shell y otras cadenas genéricas codificadas en los archivos `classes.dex`

Además, NinjaDroid utiliza [apktool](https://github.com/iBotPeaches/Apktool) y [dex2jar](https://github.com/pxb1988/dex2jar) para extraer y almacenar:

- Archivo de informe JSON, que contiene toda la información extraída del APK
- Archivo `AndroidManifest.xml` (gracias a `apktool`)
- Archivo de certificado digital `CERT.RSA/DSA`
- Archivos `classes.dex`
- Archivo _.jar_ traducido (gracias a `dex2jar`)
- Archivos smali desensamblados (gracias a `apktool`)
- Carpetas `assets/` y `res/` junto con su contenido (gracias a `apktool`)



## Construcción

El primer paso es clonar el repositorio de NinjaDroid, o descargar su código fuente.```shell
$ git clone https://github.com/rovellipaolo/NinjaDroid
$ cd NinjaDroid

NinjaDroid tiene varias formas de ejecutarse: de forma nativa en su entorno local, en Docker, como Flatpak (experimental) y como Snap (experimental).

Nativa

Para ejecutar NinjaDroid en su máquina local, necesita instalar Python 3.5 o superior, Java 8 o superior y binutils.

Opcionalmente, si tiene el SDK de Android instalado localmente, puede usar la versión del SDK de aapt en lugar de la incluida. Para hacerlo, necesita cambiar la ubicación de aapt en ninjadroid/aapt/Aapt.py (es decir, __AAPT_EXEC_PATH = "ninjadroid/aapt/aapt").

Linux

Simplemente ejecute los siguientes comandos, que instalarán todas las dependencias de Python (asegurándose de que aapt, apktool y dex2jar tengan permisos de ejecución) y agregarán un enlace simbólico ninjadroid a /usr/local/bin/.```shell $ make build-linux $ make install $ ninjadroid --help

#### MacOS
Simplemente ejecute los siguientes comandos, que instalarán todas las dependencias de Python necesarias (asegurándose de que `aapt`, `apktool` y `dex2jar` tengan permisos de ejecución) y agregarán un enlace simbólico `ninjadroid` a `/usr/local/bin/`.```shell
$ make build-macos
$ make install
$ ninjadroid --help

Docker

Para ejecutar NinjaDroid en Docker, necesitas tener Docker instalado. Para construir la imagen Docker, ejecuta los siguientes comandos:```shell $ make build-docker $ docker run --name ninjadroid ninjadroid:latest ninjadroid --help

Ten en cuenta que debes vincular el directorio que contiene el paquete APK de destino a la imagen de 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

Y lo mismo se aplica también al directorio de salida cuando se utiliza la opción -e/--extract, al que también debe otorgar permisos:```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 ejecutar NinjaDroid como Flatpak, necesitas tener instalados `Flatpak` y `flatpak-builder`.
Simplemente ejecuta los siguientes comandos, que instalarán todas las dependencias Flatpak necesarias:```shell
$ make build-flatpak
$ flatpak-builder --run flatpak/build flatpak/com.github.rovellipaolo.NinjaDroid.yaml ninjadroid --help

NOTA: La opción -e/--extract no funciona correctamente actualmente (ver: https://github.com/rovellipaolo/NinjaDroid/issues/21).

Snap (experimental)

Para ejecutar NinjaDroid como un Snap, necesitas Snap y snapcraft instalados. Simplemente ejecuta los siguientes comandos, los cuales instalarán todas las dependencias Snap necesarias:```shell $ make build-snap $ make install-snap $ ninjadroid --help

**NOTA:** La opción `-e`/`--extract` no funciona correctamente cuando el snap está instalado sin usar la opción `--devmode` (consulte: https://github.com/rovellipaolo/NinjaDroid/issues/20).

## Prueba

Una vez que lo hayas configurado (consulta la sección _"Instalación"_), también puedes ejecutar las pruebas y la verificación de estilo de la siguiente manera.

### Nativo

Para ejecutarlas en tu máquina local, lanza los siguientes comandos:```shell
$ make test
$ make regression
$ make checkstyle

También puedes ejecutar las pruebas con cobertura lanzando el siguiente comando:```shell $ make test-coverage

Y/o configurar checkstyle para que se ejecute automáticamente en cada commit de git lanzando el siguiente comando:```
$ make install-githooks

Docker

Para ejecutarlos en Docker, ejecuta los siguientes comandos:```shell $ make test-docker $ make regression-docker $ make checkstyle-docker

### Flatpak
Para ejecutar las pruebas de regresión en Flatpak, lanza el siguiente comando:```shell
$ make regression-flatpak

Snap

Para ejecutar las pruebas de regresión en Snap, lanza el siguiente comando:```shell $ make regression-snap

## Uso

Los siguientes son ejemplos de ejecución de NinjaDroid contra el paquete APK de muestra.
Descargar herramienta