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

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

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

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

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

Категории

Все категории
Loading categories
AndroPyTool — Фреймворк для автоматического извлечения статических и динамических признаков из Android-приложений | Kitploit
Инструменты/GitHubGitHub/alexmyg/andropytool
Безопасность AndroidСтатический анализДинамический анализ (песочница)Анализ вредоносных программМобильная безопасность
GitHubalexmyg/andropytool

AndroPyTool

Фреймворк для автоматического извлечения статических и динамических признаков из Android-приложений

Репозиторий
38168156 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

AndroPyTool

Обновление! Образы DroidBox были исправлены. Динамический анализ теперь работает.

Это инструмент для извлечения статических и динамических признаков из Android APK-файлов. Он объединяет различные известные инструменты анализа Android-приложений, такие как DroidBox, FlowDroid, Strace, AndroGuard или анализ VirusTotal. Если указать исходную директорию, содержащую APK-файлы, AndroPyTool применяет все эти инструменты для выполнения предварительного статического, статического и динамического анализа и генерирует файлы признаков в форматах JSON и CSV, а также позволяет сохранить все данные в базе данных MongoDB.

Для получения дополнительной информации вы можете прочитать следующие две статьи:

  • Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). Обнаружение вредоносного ПО для Android с помощью гибридного объединения признаков и ансамблевых классификаторов: фреймворк AndroPyTool и набор данных OmniDroid. Information Fusion. DOI: 10.1016/j.inffus.2018.12.006

  • Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). Новый инструмент для статического и динамического анализа вредоносных программ Android. In Data Science and Knowledge Engineering for Sensing Decision Support (pp. 509-516). World Scientific.

Пожалуйста, если вы используете этот инструмент, цитируйте вышеуказанные работы в своих статьях.

Изображение AndroPyTool

Как установить

Существует два возможных способа установки и использования AndroPyTool.

Режим A - DOCKER: Загрузка Docker-контейнера, содержащего все необходимые файлы. Это рекомендуемый вариант, вы можете запустить AndroPyTool всего за два шага.

Режим B - Исходный код: Установка и настройка всех необходимых библиотек и запуск исходного кода Python.

Режим A - ИСПОЛЬЗОВАНИЕ DOCKER-КОНТЕЙНЕРА

Docker-контейнер был создан для обеспечения быстрой и надежной версии AndroPyTool. Чтобы использовать AndroPyTool с помощью Docker, вам нужно:

  • Установить Docker (если вы еще этого не сделали). Следуйте инструкциям здесь. Если вы не используете Ubuntu, измените операционную систему на соответствующую.

  • Загрузить контейнер из Docker Hub:

    root@kitploit:~
    $ docker pull alexmyg/andropytool
    
  • Запустить AndroPyTool, запустив контейнер:

    root@kitploit:~
    $ docker run --volume=</PATH/TO/FOLDER/WITH/APKS/>:/apks alexmyg/andropytool -s /apks/ <АРГУМЕНТЫ>
    

    Вам нужно заменить </PATH/TO/FOLDER/WITH/APKS/> на путь на вашем хосте, содержащий APK-файлы для анализа. Аргумент "-s" должен быть указан, как показано в строке выше, указывая на /apks/

    ПРИМЕЧАНИЕ 2: AndroPyTool перемещает ваши APK-файлы в разные подпапки для создания организованной рабочей директории. Смотрите схему структуры папок.

Существуют различные аргументы, которые могут быть переданы AndroPyTool:

  • -h: Показать справочное сообщение и выйти.
  • -all, --allsteps: Выполнить все шаги AndroPyTool (рекомендуется). Для получения отчета VirusTotal необходимо также указать аргумент -vt, за которым следует ключ API VirusTotal. Если опция -all не указана, то выполняется только последний шаг вместе с указанными аргументами.
  • -s SOURCE_FOLDER, --source SOURCE_FOLDER: Папка, содержащая APK-файлы для анализа. Все образцы должны иметь расширение .apk. Если предыдущий запуск AndroPyTool был прерван, необходимо указать предыдущую рабочую директорию.
  • -S, --single: Сохранять отдельные анализы отдельно. По умолчанию: False.
  • -f, --filter: Фильтровать валидные и невалидные APK (рекомендуется).
  • -vt VIRUSTOTAL_API_KEY, --virustotal VIRUSTOTAL_API_KEY: Анализировать приложения с помощью сервиса VirusTotal. Должен следовать ключ API VirusTotal.
  • -cl, : Классифицировать приложения как вредоносные или безвредные на основе отчетов VirusTotal. Должен быть установлен аргумент --virustotal.

Режим B - ИСПОЛЬЗОВАНИЕ ИСХОДНОГО КОДА

ПРИМЕЧАНИЕ: Эта процедура протестирована только в Ubuntu

0. Требования

  • AndroPyTool имеет ряд зависимостей. Вы можете установить их все, выполнив:
    root@kitploit:~
    $ sudo apt-get update
    $ sudo apt-get install -y --no-install-recommends software-properties-common wget git lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6-i386 libgl1-mesa-dev python-pip python-dev gcc python-tk curl
    $ sudo add-apt-repository ppa:webupd8team/java -y
    $ sudo apt-get update
    $ sudo echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
    $ sudo apt-get install -y oracle-java8-installer
    $ sudo apt-get install -y python-setuptools
    $ sudo apt-get clean
    

1. Вам нужно установить Android SDK (перейдите к следующему шагу, если он уже установлен) Следующие шаги позволят вам установить Android SDK в не-GUI режиме:

  • Загрузите и распакуйте Android SDK:

    root@kitploit:~
    $ cd
    $ wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz
    $ tar -xvf android-sdk_r24.2-linux.tgz
    
  • Добавьте Android SDK в PATH (если вы не используете Bash, например, предпочитаете Zsh, не забудьте изменить правильный файл). Для этого добавьте следующие две строки в файл ~/.bashrc:

    root@kitploit:~
    export ANDROID_HOME=$HOME/android-sdk-linux/
    export PATH=$PATH:$ANDROID_HOME/tools
    export PATH=$PATH:$ANDROID_HOME/platform-tools
    
  • Загрузите библиотеки в текущую сессию с помощью:

    root@kitploit:~
    $ source ~/.bashrc
    

2. Нужно установить пакет Android 16

  • Установим Android 16, версию, поддерживаемую DroidBox (платформа и системный образ):

    root@kitploit:~
    $ echo y | android update sdk --filter platform-tools --no-ui --force -a
    $ echo y | android update sdk --filter tools --no-ui --force -a
    $ echo y | android update sdk --filter android-16 --no-ui --force -a
    $ echo y | android update sdk --filter sys-img-armeabi-v7a-android-16 --no-ui -a
    

3. Загрузим репозитории

  • Теперь мы можем загрузить репозиторий AndroPyTool с GitHub. Он имеет некоторые зависимости, которые также будут загружены. В случае DroidBox, последний выпуск оригинального репозитория DroidBox также загружается для копирования системного образа и образа RAM:
    root@kitploit:~
     $ git clone --recursive https://github.com/alexMyG/AndroPyTool.git
     $ wget https://github.com/alexMyG/AndroPyTool/releases/download/droidbox_images_patched/images_droidbox.zip
     $ unzip -o images_droidbox.zip -d AndroPyTool/DroidBox_AndroPyTool/images
     $ touch AndroPyTool/avclass/__init__.py
    

4. Подготовим DroidBox

  • Необходимо предоставить необходимые разрешения всем скриптам
    root@kitploit:~
    $ chmod 744 AndroPyTool/DroidBox_AndroPyTool/*.sh
    
  • Теперь нужно создать устройство Android:
    root@kitploit:~
    $ echo "no" | AndroPyTool/DroidBox_AndroPyTool/createDroidBoxDevice.sh
    

5. Установим требуемые библиотеки Python

  • Этот репозиторий требует несколько библиотек Python. Рекомендуем использовать виртуальное окружение. Если вы не хотите этого, перейдите к следующему шагу: Установите virtualenv:
    root@kitploit:~
    $ sudo pip install virtualenv
    
    Создайте виртуальное окружение и активируйте его:
    root@kitploit:~
    $ virtualenv droidbox_env
    $ source droidbox_env/bin/activate
    
  • Требуются следующие библиотеки Python:
    root@kitploit:~
    $ pip install -r AndroPyTool/requirements.txt
    

6. Теперь мы можем запустить AndroPyTool

  • Если всё прошло успешно, теперь мы можем запустить AndroPyTool:
    root@kitploit:~
    $ cd AndroPyTool/
    $ python androPyTool.py -s </PATH/TO/FOLDER/WITH/APKS/>
    
  • Список доступных аргументов смотрите в разделе Docker выше

Структура входной и выходной папок

ВХОД: Папка, содержащая файлы с расширением ".apk". ВЫХОД: Структура папок по следующей схеме:

root@kitploit:~
/                      --> корневая папка
/samples/              --> образцы, изначально находящиеся в корневой папке
/samples/BW/           --> образцы безвредного ПО
/samples/MW/           --> образцы вредоносного ПО
/invalid_apks/         --> найденные невалидные APK
/VT_analysis/          --> отчеты анализа VirusTotal
/FlowDroid_outputs/    --> результаты FlowDroid
/FlowDroid_processed/  --> обработанные результаты FlowDroid
/DroidBox_outputs/     --> необработанные выходные данные DroidBox
/Dynamic/Droidbox/     --> анализ DroidBox в JSON
/Dynamic/Strace/       --> анализ Strace в CSV
/Features_files/       --> файлы признаков, сгенерированные AndroPyTool

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

  • phamhduy исправил образы DroidBox.
Скачать инструмент
--classify
  • -fw, --flowdroid: Запустить FlowDroid.
  • -dr, --droidbox: Запустить DroidBox.
  • -c, --cleanup: Выполнить очистку, удалив временные рабочие файлы. По умолчанию: True
  • -P PACKAGEINDEX, --packgeIndex PACKAGEINDEX: TXT-файл со всеми пакетами Android API. По умолчанию: info/package_index.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX: TXT-файл со всеми классами Android API. По умолчанию: info/class_index.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX: TXT-файл со всеми классами Android API. По умолчанию: info/class_index.txt
  • -SC SYSTEMCOMMANDSINDEX, --systemCommandsIndex SYSTEMCOMMANDSINDEX: TXT-файл со всеми системными командами. По умолчанию: info/system_commands.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX: TXT-файл со всеми классами Android API. По умолчанию: info/class_index.txt
  • -mg MONGODBURI, --mongodbURI MONGODBURI: Экспортировать сгенерированный отчет в базу данных MongoDB. Требуется адрес подключения по схеме: localhost:27017
  • -csv EXPORTCSV, --cexportCSV EXPORTCSV: Экспортировать сгенерированный отчет в CSV-файл. Включаются только статические признаки.
  • --color: Разрешить цвета при выводе сообщений.
  • --no-color: Не использовать цвета для вывода сообщений.