
Фреймворк для автоматического извлечения статических и динамических признаков из Android-приложений
Это инструмент для извлечения статических и динамических признаков из 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.
Режим A - DOCKER: Загрузка Docker-контейнера, содержащего все необходимые файлы. Это рекомендуемый вариант, вы можете запустить AndroPyTool всего за два шага.
Режим B - Исходный код: Установка и настройка всех необходимых библиотек и запуск исходного кода Python.
Docker-контейнер был создан для обеспечения быстрой и надежной версии AndroPyTool. Чтобы использовать AndroPyTool с помощью Docker, вам нужно:
Установить Docker (если вы еще этого не сделали). Следуйте инструкциям здесь. Если вы не используете Ubuntu, измените операционную систему на соответствующую.
Загрузить контейнер из Docker Hub:
$ docker pull alexmyg/andropytool
Запустить AndroPyTool, запустив контейнер:
$ 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, --classify: Классифицировать приложения как вредоносные или безвредные на основе отчетов VirusTotal. Должен быть установлен аргумент --virustotal.-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: Не использовать цвета для вывода сообщений.ПРИМЕЧАНИЕ: Эта процедура протестирована только в Ubuntu
0. Требования
$ 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:
$ 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:
export ANDROID_HOME=$HOME/android-sdk-linux/
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
Загрузите библиотеки в текущую сессию с помощью:
$ source ~/.bashrc
2. Нужно установить пакет Android 16