Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
NinjaDroid — Android APKパッケージの忍者リバースエンジニアリング | Kitploit
ツール/GitHubGitHub/rovellipaolo/ninjadroid
Androidセキュリティ静的分析リバースエンジニアリングモバイルセキュリティバイナリ解析
GitHubrovellipaolo/ninjadroid

NinjaDroid

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)

[![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 of NinjaDroid")



## 概要

NinjaDroidは [AXMLParser](https://github.com/appknox/pyaxmlparser) と、`aapt`、`keytool`、`string` などに基づく一連のPythonスクリプトを組み合わせて、与えられたAPKパッケージから以下のようなさまざまな情報を抽出します。

- APKのファイル一覧:ファイル名、サイズ、MD5、SHA-1、SHA-256、SHA-512
- `AndroidManifest.xml` 情報:アプリ名、パッケージ名、バージョン、SDK、パーミッション、アクティビティ、サービス、ブロードキャストレシーバーなど
- `CERT.RSA/DSA` デジタル証明書情報:シリアル番号、有効期限、フィンガープリント、発行者、所有者
- `classes.dex` ファイルにハードコードされたURL、シェルコマンド、その他の汎用文字列のリスト

さらに、NinjaDroidは [apktool](https://github.com/iBotPeaches/Apktool) と [dex2jar](https://github.com/pxb1988/dex2jar) を使用して、以下を抽出・保存します。

- 抽出されたすべてのAPK情報を含むJSONレポートファイル
- `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 を使用できます。そのためには、ninjadroid/aapt/Aapt.py 内の aapt の場所を変更します (例: __AAPT_EXEC_PATH = "ninjadroid/aapt/aapt")。

Linux

以下のコマンドを実行するだけで、すべての Python 依存関係がインストールされ (aapt、apktool、dex2jar に実行権限が付与される)、ninjadroid のシンボリックリンクが /usr/local/bin/ に追加されます。```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

Note that you need to bind the directory containing the target APK package to the Docker image:```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 (実験的)
FlatpakとしてNinjaDroidを実行するには、`Flatpak`と`flatpak-builder`がインストールされている必要があります。
以下のコマンドを実行すれば、必要なすべてのFlatpak依存関係がインストールされます。```shell
$ make build-flatpak
$ flatpak-builder --run flatpak/build flatpak/com.github.rovellipaolo.NinjaDroid.yaml ninjadroid --help

注記: 現時点では -e/--extract オプションは正しく動作しません (参照: https://github.com/rovellipaolo/NinjaDroid/issues/21)。

Snap (experimental)

NinjaDroid を Snap として実行するには、Snap と snapcraft がインストールされている必要があります。 以下のコマンドを実行することで、必要なすべての Snap 依存関係がインストールされます:```shell $ make build-snap $ make install-snap $ ninjadroid --help

**注記:** `-e`/`--extract` オプションは、`--devmode` オプションを使用せずに snap をインストールした場合、正しく機能しません (参照: https://github.com/rovellipaolo/NinjaDroid/issues/20)。



## テスト

設定後 (「インストール」セクション参照)、以下の手順でテストとチェックスタイルを実行することもできます。

### ネイティブ

ローカルマシンで実行するには、以下のコマンドを実行します:```shell
$ make test
$ make regression
$ make checkstyle

次のコマンドを実行して、カバレッジ付きでテストを実行することもできます。```shell $ make test-coverage

かつ/または、checkstyle が各 git commit 時に自動的に実行されるように、以下のコマンドを実行して設定してください:```
$ 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

## 使用方法

以下は、サンプルAPKパッケージに対してNinjaDroidを実行する例です。
ツールをダウンロード