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

[![构建状态:GitHub Actions](https://github.com/rovellipaolo/NinjaDroid/actions/workflows/ci.yml/badge.svg)](https://github.com/rovellipaolo/NinjaDroid/actions)
[![测试覆盖率:Coveralls](https://coveralls.io/repos/github/rovellipaolo/NinjaDroid/badge.svg)](https://coveralls.io/github/rovellipaolo/NinjaDroid)
[![许可证: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) 以及一系列基于 `aapt`、`keytool`、`string` 等的 Python 脚本,从给定的 APK 包中提取一系列信息,例如:

- APK 文件列表:文件名、大小、MD5、SHA-1、SHA-256 和 SHA-512
- `AndroidManifest.xml` 信息:应用名称、包名、版本、SDK、权限、活动、服务、广播接收器等
- `CERT.RSA/DSA` 数字证书信息:序列号、有效期、指纹、颁发者和所有者
- 硬编码在 `classes.dex` 文件中的 URL、shell 命令和其他通用字符串列表

此外,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(实验性)运行。

Native

要在本地机器上执行 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

要在Docker中执行NinjaDroid,你需要安装Docker。 要构建Docker镜像,请运行以下命令:

$ 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(实验性)
要作为 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(实验性功能)
要将 NinjaDroid 作为 Snap 运行,你需要安装 `Snap` 和 `snapcraft`。
只需运行以下命令,这些命令将安装所有所需的 Snap 依赖项:```shell
$ make build-snap
$ make install-snap
$ ninjadroid --help
```
**注意:** 如果 snap 安装时未使用 `--devmode` 选项,`-e`/`--extract` 选项将无法正常工作(参见: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
```
## 用法
下载工具