Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
NinjaDroid — Ninja: обратный инжиниринг Android APK-пакетов | Kitploit
Инструменты/GitHubGitHub/rovellipaolo/ninjadroid
Безопасность AndroidСтатический анализОбратная инженерияМобильная безопасностьАнализ Бинарных Файлов
GitHubrovellipaolo/ninjadroid

NinjaDroid

Ninja: обратный инжиниринг Android APK-пакетов

Репозиторий
28748234 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

NinjaDroid

NinjaDroid — это простой инструмент для реверс-инжиниринга Android APK-пакетов.

Опубликован по адресу: 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)

[![Получить из 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 "Скринкаст NinjaDroid")



## Обзор

NinjaDroid использует [AXMLParser](https://github.com/appknox/pyaxmlparser) вместе с набором Python-скриптов на основе `aapt`, `keytool`, `string` и других для извлечения из заданного APK-пакета следующей информации:

- Список файлов APK: имя файла, размер, MD5, SHA-1, SHA-256 и SHA-512
- Информация из `AndroidManifest.xml`: имя приложения, имя пакета, версия, SDK, разрешения, Activity, службы, Broadcast-приёмники, ...
- Информация о цифровом сертификате `CERT.RSA/DSA`: серийный номер, срок действия, отпечаток, эмитент и владелец
- Список URL, команд оболочки и других строковых данных, жёстко заданных в файлах `classes.dex`

Кроме того, NinjaDroid использует [apktool](https://github.com/iBotPeaches/Apktool) и [dex2jar](https://github.com/pxb1988/dex2jar) для извлечения и сохранения:

- JSON-файла отчёта, содержащего всю извлечённую информацию об APK
- Файла `AndroidManifest.xml` (благодаря `apktool`)
- Файла цифрового сертификата `CERT.RSA/DSA`
- Файлов `classes.dex`
- Переведённого _.jar_ файла (благодаря `dex2jar`)
- Дизассемблированных smali-файлов (благодаря `apktool`)
- Папок `assets/` и `res/` вместе с их содержимым (благодаря `apktool`)



## Сборка

Первый шаг — клонирование репозитория NinjaDroid или загрузка его исходного кода.```shell
$ git clone https://github.com/rovellipaolo/NinjaDroid
$ cd NinjaDroid

NinjaDroid имеет несколько способов запуска: в локальной среде, в Docker, в виде Flatpak (экспериментально) и в виде Snap (экспериментально).

Локальный запуск

Для запуска NinjaDroid на локальной машине необходимо установить Python 3.5 или выше, Java 8 или выше и binutils.

При желании, если Android SDK установлен локально, можно использовать SDK-версию aapt вместо встроенной. Для этого нужно изменить расположение aapt в ninjadroid/aapt/Aapt.py (т.е. __AAPT_EXEC_PATH = "ninjadroid/aapt/aapt").

Linux

Просто выполните следующие команды, которые установят все зависимости Python (убедившись, что aapt, apktool и dex2jar имеют права на выполнение) и добавят символическую ссылку ninjadroid в /usr/local/bin/.

git clone https://github.com/kov4l3nko/NinjaDroid.git
cd NinjaDroid
pip install -r requirements.txt --user
chmod +x ninjadroid/aapt/aapt
chmod +x ninjadroid/apktool/apktool.jar
chmod +x ninjadroid/dex2jar/dex2jar.sh
chmod +x ninjadroid/jadx/jadx
sudo ln -s $(pwd)/ninjadroid.py /usr/local/bin/ninjadroid
``````shell
$ make build-linux
$ make install
$ ninjadroid --help

MacOS

Просто запустите следующие команды, которые установят все необходимые зависимости Python (убедившись, что aapt, apktool и dex2jar имеют права на выполнение) и добавят символическую ссылку ninjadroid в /usr/local/bin/.```shell $ make build-macos $ make install $ ninjadroid --help

### Docker
Для выполнения NinjaDroid в Docker необходим установленный `Docker`.
Для сборки образа Docker выполните следующие команды:```shell
$ make build-docker
$ docker run --name ninjadroid ninjadroid:latest ninjadroid --help

Обратите внимание, что необходимо привязать директорию, содержащую целевой APK-пакет, к образу 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`/`--extract`, для которой вам также необходимо предоставить разрешения:```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 (экспериментально)

Для запуска NinjaDroid в качестве Flatpak вам потребуются установленные Flatpak и flatpak-builder. Просто выполните следующие команды, которые установят все необходимые зависимости Flatpak:```shell $ make build-flatpak $ flatpak-builder --run flatpak/build flatpak/com.github.rovellipaolo.NinjaDroid.yaml ninjadroid --help

**ПРИМЕЧАНИЕ:** The `-e`/`--extract` option does not work correctly at present (see: https://github.com/rovellipaolo/NinjaDroid/issues/21).


### Snap (экспериментальный)
Чтобы запустить NinjaDroid в качестве Snap, вам потребуется установленные `Snap` и `snapcraft`.
Просто выполните следующие команды, которые установят все необходимые зависимости Snap:```shell
$ make build-snap
$ make install-snap
$ ninjadroid --help

ПРИМЕЧАНИЕ: Опция -e/--extract работает некорректно, если snap установлен без использования опции --devmode (см.: https://github.com/rovellipaolo/NinjaDroid/issues/20).

Тестирование

После настройки (см. раздел "Установка") вы также можете запустить тесты и проверку стиля следующим образом.

Локально

Чтобы запустить их на локальной машине, выполните следующие команды:```shell $ make test $ make regression $ make checkstyle

Вы также можете запустить тесты с покрытием, выполнив следующую команду:```shell
$ make test-coverage

И/или настройте checkstyle для автоматического запуска при каждом git-коммите, выполнив следующую команду:``` $ make install-githooks

### Docker
Чтобы запустить их в Docker, выполните следующие команды:```shell
$ make test-docker
$ make regression-docker
$ make checkstyle-docker

Flatpak

Чтобы запустить регрессионные тесты в Flatpak, выполните следующую команду:```shell $ make regression-flatpak

### Snap
Чтобы запустить регрессионные тесты в Snap, выполните следующую команду:```shell
$ make regression-snap

Использование

Ниже приведены примеры запуска NinjaDroid для образца пакета APK.

Скачать инструмент