Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Obfuscapk — 一款针对Android应用的自动混淆工具,以黑盒方式运行,支持高级混淆特性,并采用模块化架构,易于扩展以集成新技术。 | Kitploit
工具/GitHubGitHub/claudiugeorgiu/obfuscapk
Android安全静态分析动态分析 (沙盒)逆向工程移动安全论文与研究学习与教育Archived
GitHubclaudiugeorgiu/obfuscapk

Obfuscapk

一款针对Android应用的自动混淆工具,以黑盒方式运行,支持高级混淆特性,并采用模块化架构,易于扩展以集成新技术。

查看仓库
1.3k323362年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

[!IMPORTANT] 该项目已归档,不再维护。

常见问题的答案可在 FAQ 和 故障排除 中找到。

Logo

一款针对 Android 应用的黑盒混淆工具。

Codacy Code Coverage Python Version License

Obfuscapk 是一款模块化的 Python 工具,用于在不需源码的情况下混淆 Android 应用,它使用 apktool 反编译原始 apk 文件,并在对反编译后的 smali 代码、资源和清单文件应用某些混淆技术后,构建一个新的应用。混淆后的应用保留与原始应用相同的功能,但底层差异有时会使新应用与原始应用大相径庭(例如,对基于签名的防病毒软件而言)。

🆕 Android App Bundle 支持 🆕

Obfuscapk 正在通过使用 BundleDecompiler 添加对 Android App Bundles(aab 文件)的支持(参见 #121)。要使用这项新功能,请从 此处 下载最新版本的 BundleDecompiler,将其保存为 BundleDecompiler.jar 并放置在 PATH 包含的目录中(例如,在 Ubuntu 中,/usr/local/bin 或 /usr/bin),并确保它具有可执行权限。

[!IMPORTANT] BundleDecompiler 尚不能在 Windows 上运行,因此 Obfuscapk 在 Windows 平台不支持 App Bundle 混淆。此外,App Bundle 支持仍处于早期开发阶段,如果您遇到任何问题或希望帮助我们改进,请参阅 贡献指南。

❱ 出版物

关于 Obfuscapk 的更多详细信息可在论文 "Obfuscapk: An open-source black-box obfuscation tool for Android apps" 中找到。您可以按如下方式引用该论文:```BibTeX @article{aonzo2020obfuscapk, title = "Obfuscapk: An open-source black-box obfuscation tool for Android apps", journal = "SoftwareX", volume = "11", pages = "100403", year = "2020", issn = "2352-7110", doi = "https://doi.org/10.1016/j.softx.2020.100403", url = "https://www.sciencedirect.com/science/article/pii/S2352711019302791", author = "Simone Aonzo and Gabriel Claudiu Georgiu and Luca Verderame and Alessio Merlo", keywords = "Android, Obfuscation, Program analysis" }

## ❱ 演示

![演示](https://assets.kitploit.com/production/public/readmes/3132/632e285a29e53c28a5549c70012673a2761ca3ca4fd7eac3ad89be3d6a9a2a21.gif)



## ❱ 架构

![架构图](https://assets.kitploit.com/production/public/readmes/3132/da41bec35f1c09df38ad201aa1e74f0b1426dba0201162a70b4d5376b3da654e.png)

Obfuscapk 被设计为模块化且易于扩展,因此它基于一个
[插件系统](https://github.com/tibonihoo/yapsy) 构建。因此,每个混淆器都是一个
继承自抽象
[基类](https://github.com/ClaudiuGeorgiu/Obfuscapk/blob/master/src/obfuscapk/obfuscator_category.py) 的插件,
并且需要实现 `obfuscate` 方法。当工具开始处理一个新的
Android 应用程序文件时,它会创建一个
[混淆对象](https://github.com/ClaudiuGeorgiu/Obfuscapk/blob/master/src/obfuscapk/obfuscation.py)
来存储所有需要的信息(例如,反编译后的 `smali` 代码的位置),
以及操作的内部状态(例如,已使用的混淆器列表)。
然后,该混淆对象作为参数传递给 `obfuscate` 方法,被所有
激活的插件/混淆器(按顺序)处理和修改。激活插件的列表和
顺序通过[命令行选项](#-使用方式)指定。

该工具可以轻松地通过新混淆器进行扩展:只需在
[`src/obfuscapk/obfuscators`](https://github.com/ClaudiuGeorgiu/Obfuscapk/tree/master/src/obfuscapk/obfuscators)
目录中添加实现混淆技术的源代码和插件元数据(一个
`<混淆器名称>.obfuscator` 文件)即可(以一个简单的现有混淆器如
[`Nop`](https://github.com/ClaudiuGeorgiu/Obfuscapk/blob/master/src/obfuscapk/obfuscators/nop/nop.py)
作为起始示例)。该工具会自动检测新插件,因此无需
进一步配置(新插件将与该工具捆绑的所有其他插件一样被对待)。



## ❱ 安装

有两种方式可以在你自己的计算机上获得 Obfuscapk 的工作副本:要么
[使用 Docker](#docker-镜像),要么在 `Python 3` 环境中
[直接使用源码](#从源码安装)。无论哪种方式,首先要做的是获取此仓库的本地副本,
因此,在你想要保存项目的目录中打开终端并克隆仓库:```Shell
$ git clone https://github.com/ClaudiuGeorgiu/Obfuscapk.git

Docker 镜像


先决条件

这是安装 Obfuscapk 的推荐方式,因为唯一的先决条件是 安装一个较新版本的 Docker:```Shell $ docker --version Docker version 20.10.21, build baeda1f

#### 官方 Docker Hub 镜像

[Obfuscapk 官方 Docker 镜像](https://hub.docker.com/r/claudiugeorgiu/obfuscapk) 可在 Docker Hub 上获取(从此仓库自动构建):```Shell
$ # Download the Docker image.
$ docker pull claudiugeorgiu/obfuscapk
$ # Give it a shorter name.
$ docker tag claudiugeorgiu/obfuscapk obfuscapk

安装

如果你已经从 Docker Hub 下载了官方镜像,那么你就可以直接使用该工具了,请查看使用说明,否则请在之前创建的 Obfuscapk/src/ 目录(即包含 Dockerfile 的文件夹)中执行以下命令来构建 Docker 镜像:```Shell $ # Make sure to run the command in Obfuscapk/src/ directory. $ # It will take some time to download and install all the dependencies. $ docker build -t obfuscapk .

当 Docker 镜像准备好后,快速测试一下以确保所有内容都已正确安装:```Shell
$ docker run --rm -it obfuscapk --help
usage: python3 -m obfuscapk.cli [-h] -o OBFUSCATOR [-w DIR] [-d OUT_APK_OR_AAB]
...

Obfuscapk 现在已准备好使用,请参阅 使用说明 获取更多信息。

从源码构建


先决条件

确保已安装最新版本的 apktool、 apksigner 和 zipalign,并可从命令行调用:```Shell $ apktool Apktool v2.9.0 - a tool for reengineering Android apk files ...

```Shell
$ apksigner
Usage:  apksigner <command> [options]
        apksigner --version
        apksigner --help
...
$ zipalign
Zip alignment utility
Copyright (C) 2009 The Android Open Source Project
...

为了支持应用束混淆,你还需要BundleDecompiler,所以从这里下载最新可用版本,将其保存为BundleDecompiler.jar到PATH所包含的目录中(例如,在Ubuntu中,/usr/local/bin或/usr/bin),并确保设置了可执行标志。

要使用BundleDecompiler和apktool,你还需要一个较新版本的Java。zipalign和apksigner包含在Android SDK中。可执行文件的位置也可以通过以下环境变量指定:APKTOOL_PATH、BUNDLE_DECOMPILER_PATH、APKSIGNER_PATH和ZIPALIGN_PATH(例如,在Ubuntu中,在同一个终端运行Obfuscapk之前,运行export APKTOOL_PATH=/custom/location/apktool)。

除了上述工具外,此项目的唯一要求是安装可用的Python 3(至少3.7)(连同其包管理器pip)。

安装

在项目的主目录(Obfuscapk/)中运行以下命令以安装所需的依赖项:```Shell $ # Make sure to run the commands in Obfuscapk/ directory.

$ # The usage of a virtual environment is highly recommended. $ python3 -m venv venv $ source venv/bin/activate

$ # Install Obfuscapk's requirements. $ python3 -m pip install -r src/requirements.txt

在安装完依赖项后,快速测试以确保一切正常工作:```Shell
$ cd src/
$ # The following command has to be executed always from Obfuscapk/src/ directory
$ # or by adding Obfuscapk/src/ directory to PYTHONPATH environment variable.
$ python3 -m obfuscapk.cli --help
usage: python3 -m obfuscapk.cli [-h] -o OBFUSCATOR [-w DIR] [-d OUT_APK_OR_AAB]
...

Obfuscapk 现已准备就绪,可以使用了,有关更多信息,请参阅 使用说明。

❱ 使用方法

从现在开始,Obfuscapk 将被视为一个可执行文件 obfuscapk,因此您需要根据工具的安装方式来调整命令:

  • Docker 镜像:需要将包含待混淆应用程序的本地目录挂载到容器中的 /workdir (例如,当前目录 "${PWD}"),因此命令:

    $ obfuscapk [params...]
    

    变为:

    $ docker run --rm -it -u $(id -u):$(id -g) -v "${PWD}":"/workdir" obfuscapk [params...]
    
  • 从源码运行:每条指令都必须在 Obfuscapk/src/ 目录下执行(或者将 Obfuscapk/src/ 目录添加到 PYTHONPATH 环境变量中),因此命令:

    $ obfuscapk [params...]
    

    变为:

    $ python3 -m obfuscapk.cli [params...]
    

我们先来看一下帮助信息:```Shell $ obfuscapk --help obfuscapk [-h] -o OBFUSCATOR [-w DIR] [-d OUT_APK_OR_AAB] [-i] [-p] [-k VT_API_KEY] [--keystore-file KEYSTORE_FILE] [--keystore-password KEYSTORE_PASSWORD] [--key-alias KEY_ALIAS] [--key-password KEY_PASSWORD] [--use-aapt2] <APK_OR_BUNDLE_FILE>

有两个必需参数:`<APK_OR_BUNDLE_FILE>`(APK 或 App Bundle 文件的路径,可以是相对路径或绝对路径)以及要应用的混淆技术名称列表(通过 `-o` 选项指定,可多次使用,例如 `-o Rebuild -o NewAlignment -o NewSignature`)。其他可选参数如下:
下载工具