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

pip install kavanoz
Для установки из исходников склонируйте репозиторий и выполните редактируемую установку с -e. Это означает, что если вы отредактируете или добавите новые плагины в проект, они будут использоваться без переустановки.
git clone https://github.com/eybisi/kavanoz.git
cd kavanoz
pip install -e .
из командной строки
kavanoz /tmp/filepath
Вы можете использовать параметр -vvv для вывода подробных журналов (полезно для отладки плагинов).
как библиотека Python
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
Убедитесь, что kavanoz установлен в режиме редактирования (с -e). Чтобы добавить новые плагины, просто создайте новый файл в папке loader. Расширьте класс Unpacker из файла unpack_plugin.py. Определите функцию start_decrypt с вашей реализацией.
def start_decrypt(self, apk_object: APK, dexes: "list[DEX]"):
Добавьте следующую функцию для раннего выхода из плагина.
def lazy_check(self,apk_object:APK, dexes: "list[DEX]"):
Если извлечение прошло успешно, присвойте self.decrypted_payload_path путь к извлечённому файлу. Вы можете использовать вспомогательные функции из класса unpacker:
Перед открытием PR обязательно запустите python -m unittest. Чтобы получить тестовые apk-файлы, выполните команду git lfs pull.
dex.get_class(smali_annotation_of_class).self.apk_object.get_files().application = self.apk_object.get_attribute_value("application", "name"), чтобы получить класс приложения, определённый в файле манифеста.apkdetect.com за уникальные образцы для работы.