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

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

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

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

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

Категории

Все категории
Loading categories
kavanoz — Статическая распаковка распространённых Android-банкеров. | Kitploit
Инструменты/GitHubGitHub/eybisi/kavanoz
Безопасность AndroidСтатический анализИнструменты шифрования/дешифрованияОбратная инженерияАнализ вредоносных программМобильная безопасностьArchived
GitHubeybisi/kavanoz

kavanoz

Статическая распаковка распространённых Android-банкеров.

Репозиторий
159201 год назадПроверено Kitploit

Популярное

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

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

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

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

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

🫙 kavanoz 🫙

Kavanoz (по-турецки «банка») — это инструмент для статической распаковки распространённых банковских вредоносов для Android. Вы когда-нибудь хотели получить полезную нагрузку из упакованного вредоноса без запуска эмулятора Android? Я тоже нет :) Но вот инструмент, в любом случае.

👀 Установка

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 файл из assets. Скрипт покрывает несколько версий.
  • old_rc4.py Ещё один универсальный зашифрованный rc4 файл из assets.
  • subapp.py Расшифровка файла ключом, полученным из переменной ProtectKey в файле Manifest.
  • multidex.py Загрузчик типа multidex с распакованным упакованным файлом (сжатие zlib).
  • coper.py Извлечение rc4-ключа из нативной библиотеки с помощью эмуляции (AndroidNativeEmu).
  • moqhao.py Эмуляция для распаковки moqhau.
  • sesdex.py
  • simple_aes.py
  • simple_xor.py
  • simple_xor2.py
  • simple_xor_zlib.py
  • subapp.py Расшифровка asset с помощью имени пакета.

⚙️ Разработка

Убедитесь, что kavanoz установлен в режиме редактирования (с -e). Чтобы добавить новые плагины, просто создайте новый файл в папке loader. Расширьте класс Unpacker из файла unpack_plugin.py. Определите функцию 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, и записывает распакованный dex с именем : "external-{m[:8]}.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 есть множество готовых регулярных выражений.
  • Большую часть времени паковщики используют файл из папки assets. Вы можете получить файлы с помощью self.apk_object.get_files().
  • Большую часть времени паковщики используют класс Application для запуска последовательности распаковки. Используйте application = self.apk_object.get_attribute_value("application", "name"), чтобы получить класс приложения, определённый в файле манифеста.

Благодарности:

apkdetect.com за уникальные образцы для работы.

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