Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
kavanoz — 静态脱壳常见的安卓银行木马。 | Kitploit
工具/GitHubGitHub/eybisi/kavanoz
Android安全静态分析加密/解密工具逆向工程恶意软件分析移动安全Archived
GitHubeybisi/kavanoz

kavanoz

静态脱壳常见的安卓银行木马。

查看仓库
159201年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

🫙 kavanoz 🫙

Kavanoz(土耳其语中意为“罐子”)是一款用于静态解包常见 Android 银行木马的工具。你是否曾想过在不运行 Android 模拟器的情况下从加壳恶意软件中获取 payload?我也没想过 :) 但这里还是有一个工具。

👀 安装

root@kitploit:~
pip install kavanoz

要从源码安装,请克隆仓库并使用 -e 进行可编辑安装。这意味着如果你编辑或向项目添加新插件,无需重新安装即可生效。

root@kitploit:~
git clone https://github.com/eybisi/kavanoz.git
cd kavanoz
pip install -e .

⚡ 使用方法

通过命令行

root@kitploit:~
kavanoz /tmp/filepath

你可以使用 -vvv 参数输出详细日志。(对调试插件很有用)

作为 Python 库使用

root@kitploit:~
from kavanoz.core import Kavanoz
from kavanoz import utils

utils.set_log("DEBUG")
k = Kavanoz(apk_path="tests/test_apk/coper.apk")
for plugin_result in k.get_plugin_results():
    if plugin_result["status"] == "success":
        print("Unpacked")
        print(plugin_result)
        break

🐍 脚本:

  • rc4.py 通用的 rc4 加密 asset 文件。该脚本涵盖多个版本。
  • old_rc4.py 另一种通用的 rc4 加密 asset 文件。
  • subapp.py 使用从 Manifest 文件 ProtectKey 变量派生的密钥解密文件。
  • multidex.py 类似 Multidex 的加载器,带有解压后的加壳文件。(zlib 压缩)
  • coper.py 通过模拟(AndroidNativeEmu)从原生库中提取 rc4 密钥。
  • moqhao.py 用于 moqhau 解包的模拟。
  • sesdex.py
  • simple_aes.py
  • simple_xor.py
  • simple_xor2.py
  • simple_xor_zlib.py
  • subapp.py 使用包名解密 asset。

⚙️ 开发

请确保以可编辑模式(使用 -e)安装 kavanoz。要添加新插件,只需在 loader 文件夹中创建新文件。继承 unpack_plugin.py 文件中的 Unpacker 类。使用你的实现定义 start_decrypt 函数。

root@kitploit:~
def start_decrypt(self, apk_object: APK, dexes: "list[DEX]"):

添加以下函数以从插件中提前退出。

root@kitploit:~
def lazy_check(self,apk_object:APK, dexes: "list[DEX]"):

如果提取成功,请将 self.decrypted_payload_path 设置为提取出的文件路径。 你可以使用 unpacker 类中的辅助函数:

  • get_array_data
  • get_smali
  • find_method(class_name,method_name,descriptor="")
  • check_and_write_file(file_data) :检查文件是否具有 dex、zip 和 zlib 头,并以 "external-{m[:8]}.dex" 名称写入解包后的 dex。

在提交 PR 之前,请务必运行 python -m unittest。要获取测试 apk 文件,请使用 git lfs pull 命令。

📖 提示

  • self.dexes 保存 dex 对象。你可以使用 dex.get_class(smali_annotation_of_class) 获取类。
  • 你可以使用 get_smali 函数并传入目标方法对象,以获取目标方法的 smali 表示。然后应用一些正则表达式从 smali 中提取数据。smali_regexes.py 文件中定义了许多正则表达式可供查阅。
  • 大多数情况下,加壳器会使用 asset 文件夹中的文件。你可以通过 self.apk_object.get_files() 获取文件。
  • 大多数情况下,加壳器使用 Application 类来启动解包流程。使用 application = self.apk_object.get_attribute_value("application", "name") 获取 manifest 文件中定义的 Application 类。

致谢:

感谢 apkdetect.com 提供独特的样本供研究使用。

下载工具