Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
NinjaDroid — Ninja Reverse Engineering su pacchetti APK Android | Kitploit
Strumenti/GitHubGitHub/rovellipaolo/ninjadroid
Sicurezza AndroidAnalisi StaticaReverse EngineeringSicurezza MobileAnalisi di Binari
GitHubrovellipaolo/ninjadroid

NinjaDroid

Ninja Reverse Engineering su pacchetti APK Android

Vedi Repository
28748234 mesi faRevisionato da Kitploit

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

NinjaDroid

NinjaDroid è un semplice strumento per il reverse engineering di pacchetti APK Android.

Pubblicato su: 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 "Screencast di NinjaDroid")

## Panoramica

NinjaDroid utilizza [AXMLParser](https://github.com/appknox/pyaxmlparser) insieme a una serie di script Python basati su `aapt`, `keytool`, `string` e simili per estrarre una serie di informazioni da un dato pacchetto APK, come ad esempio:

- Elenco dei file dell'APK: nome file, dimensione, MD5, SHA-1, SHA-256 e SHA-512
- Informazioni da `AndroidManifest.xml`: nome app, nome pacchetto, versione, SDK, permessi, attività, servizi, broadcast-receiver, ...
- Informazioni del certificato digitale `CERT.RSA/DSA`: numero di serie, validità, impronta digitale, emittente e proprietario
- Elenco di URL, comandi shell e altre stringhe generiche hard-coded nei file `classes.dex`

Inoltre, NinjaDroid utilizza [apktool](https://github.com/iBotPeaches/Apktool) e [dex2jar](https://github.com/pxb1988/dex2jar) per estrarre e conservare:

- File di report JSON, che contiene tutte le informazioni estratte dall'APK
- File `AndroidManifest.xml` (grazie a `apktool`)
- File del certificato digitale `CERT.RSA/DSA`
- File `classes.dex`
- File _.jar_ tradotto (grazie a `dex2jar`)
- File smali disassemblati (grazie a `apktool`)
- Cartelle `assets/` e `res/` insieme al loro contenuto (grazie a `apktool`)

## Build

Il primo passo è clonare il repository di NinjaDroid, o scaricare il suo codice sorgente.```shell
$ git clone https://github.com/rovellipaolo/NinjaDroid
$ cd NinjaDroid

NinjaDroid può essere eseguito in diversi modi: nativamente nel tuo ambiente locale, in Docker, come Flatpak (sperimentale) e come Snap (sperimentale).

Nativo

Per eseguire NinjaDroid sulla tua macchina locale, devi installare Python 3.5 o superiore, Java 8 o superiore e binutils.

Opzionalmente, se hai l'Android SDK installato localmente, puoi usare la versione SDK di aapt invece di quella inclusa. Per fare ciò, devi modificare il percorso di aapt in ninjadroid/aapt/Aapt.py (cioè __AAPT_EXEC_PATH = "ninjadroid/aapt/aapt").

Linux

Basta lanciare i seguenti comandi, che installeranno tutte le dipendenze Python (assicurandoti che aapt, apktool e dex2jar abbiano i permessi di esecuzione) e aggiungeranno un collegamento simbolico ninjadroid a /usr/local/bin/.```shell $ make build-linux $ make install $ ninjadroid --help

#### MacOS
Basta lanciare i seguenti comandi, che installeranno tutte le dipendenze Python necessarie (assicurandosi che `aapt`, `apktool` e `dex2jar` abbiano i permessi di esecuzione) e aggiungeranno un symlink `ninjadroid` in `/usr/local/bin/`.```shell
$ make build-macos
$ make install
$ ninjadroid --help

Docker

Per eseguire NinjaDroid in Docker, è necessario avere Docker installato. Per creare l'immagine Docker, esegui i seguenti comandi:```shell $ make build-docker $ docker run --name ninjadroid ninjadroid:latest ninjadroid --help

Nota che devi montare la directory contenente il pacchetto APK target all'immagine 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 lo stesso vale anche per la directory di output quando si utilizza l'opzione -e/--extract, alla quale è necessario concedere anche i permessi:```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 (sperimentale)
Per eseguire NinjaDroid come Flatpak, è necessario avere installati `Flatpak` e `flatpak-builder`.
Basta lanciare i seguenti comandi, che installeranno tutte le dipendenze Flatpak necessarie:```shell
$ make build-flatpak
$ flatpak-builder --run flatpak/build flatpak/com.github.rovellipaolo.NinjaDroid.yaml ninjadroid --help

NOTA: L'opzione -e/--extract non funziona correttamente al momento (vedi: https://github.com/rovellipaolo/NinjaDroid/issues/21).

Snap (sperimentale)

Per eseguire NinjaDroid come Snap, è necessario avere Snap e snapcraft installati. Basta lanciare i seguenti comandi, che installeranno tutte le dipendenze Snap necessarie:```shell $ make build-snap $ make install-snap $ ninjadroid --help

**NOTA:** L'opzione `-e`/`--extract` non funziona correttamente quando lo snap è installato senza usare l'opzione `--devmode` (vedi: https://github.com/rovellipaolo/NinjaDroid/issues/20).



## Test

Una volta configurato (vedi la sezione _"Installazione"_), puoi anche eseguire i test e il checkstyle come segue.

### Nativo
Per eseguirli sulla tua macchina locale, lancia i seguenti comandi:```shell
$ make test
$ make regression
$ make checkstyle

Puoi anche eseguire i test con copertura lanciando il seguente comando:```shell $ make test-coverage

E/o configurare il checkstyle per eseguire automaticamente a ogni commit git lanciando il seguente comando:```
$ make install-githooks

Docker

Per eseguirli in Docker, esegui i seguenti comandi:```shell $ make test-docker $ make regression-docker $ make checkstyle-docker

### Flatpak
Per eseguire i test di regressione su Flatpak, esegui il seguente comando:```shell
$ make regression-flatpak

Snap

Per eseguire i test di regressione in Snap, esegui il seguente comando:```shell $ make regression-snap

## Utilizzo

Di seguito sono riportati alcuni esempi di esecuzione di NinjaDroid sul pacchetto APK di esempio.
Scarica lo strumento