
Идентификатор Android-приложений для упаковщиков, защитников, обфускаторов и странностей - PEiD for Android
APKiD предоставляет информацию о том, как был создан APK-файл. Он определяет множество компиляторов, упаковщиков, обфускаторов и других необычных вещей. Это PEiD для Android.

Для получения дополнительной информации о том, для чего можно использовать этот инструмент, ознакомьтесь:
pip install apkid
Вы также можете запустить APKiD с помощью Docker! Конечно, для этого требуется, чтобы у вас были установлены git и Docker.
Вот как использовать Docker:
git clone https://github.com/rednaga/APKiD
cd APKiD/
docker build . -t rednaga:apkid
docker/apkid.sh ~/reverse/targets/android/example/example.apk
[+] APKiD 2.1.0 :: from RedNaga :: rednaga.io
[*] example.apk!classes.dex
|-> compiler : dx
usage: apkid [-h] [-v] [-t TIMEOUT] [-r] [--scan-depth SCAN_DEPTH]
[--entry-max-scan-size ENTRY_MAX_SCAN_SIZE] [--typing {magic,filename,none}] [-j]
[-o DIR]
[FILE [FILE ...]]
APKiD - Android Application Identifier v2.1.2
positional arguments:
FILE apk, dex, or directory
optional arguments:
-h, --help show this help message and exit
-v, --verbose log debug messages
scanning:
-t TIMEOUT, --timeout TIMEOUT Yara scan timeout (in seconds)
-r, --recursive recurse into subdirectories
--scan-depth SCAN_DEPTH how deep to go when scanning nested zips
--entry-max-scan-size ENTRY_MAX_SCAN_SIZE max zip entry size to scan in bytes, 0 = no limit
--typing {magic,filename,none} method to decide which files to scan
output:
-j, --json output scan results in JSON format
-o DIR, --output-dir DIR write individual results here (implies --json)
Если вы встретите APK или DEX, который APKiD не распознаёт, пожалуйста, создайте issue на GitHub и сообщите нам:
Мы открыты для любых идей о том, что «интересного» можно обнаружить, поэтому не ограничивайтесь только упаковщиками, компиляторами или обфускаторами. Если есть интересный приём anti-disassembler, anti-vm, anti-* — пожалуйста, создайте issue.
Pull requests приветствуются. Если вы отправляете новое правило, обязательно укажите хеш файла APK / DEX, чтобы мы могли проверить правило.
Этот инструмент доступен по двойной лицензии: коммерческой, подходящей для проектов с закрытым исходным кодом, и лицензии GPL, которую можно использовать в программном обеспечении с открытым исходным кодом.
В зависимости от ваших потребностей вы должны выбрать одну из них и следовать её условиям. Подробности политик и соглашений для каждого типа лицензии доступны в файлах LICENSE.COMMERCIAL и LICENSE.GPL.
Если вы хотите установить последнюю версию, чтобы вносить изменения, разрабатывать собственные правила и т. д., просто клонируйте этот репозиторий, скомпилируйте правила и установите пакет в режиме редактирования:
git clone https://github.com/rednaga/APKiD
cd APKiD
python prep-release.py
pip install -e .[dev,test]
Приведённая выше команда python prep-release.py требует, чтобы пакеты yara-python и yara-python-dex уже были установлены.
Если вышеописанное не работает из-за ошибок прав доступа, зависящих от вашей локальной машины и места установки Python, попробуйте указать флаг --user. Скорее всего, это потребуется, если вы не используете виртуальное окружение:
pip install -e .[dev,test] --user
Если вы обновляете какие-либо правила, обязательно запустите prep-release.py, чтобы перекомпилировать их.
Если вы используете Windows, удалите все предыдущие версии Yara и установите Yara 3.11.0 и yara-python-dex перед компиляцией
pip uninstall -y yara-python yara-python-dex
pip install yara-python==3.11.0 wheel
pip wheel --wheel-dir=yara-python-dex git+https://github.com/MobSF/yara-python-dex.git
pip install --no-index --find-links=yara-python-dex yara-python-dex
При выпуске новой версии убедитесь, что версия обновлена в apkid/init.py.
Что касается запуска тестов, ознакомьтесь с .travis.yml, чтобы увидеть, как настроены среды разработки и тестирования и как запускаются тесты.
Обновите скомпилированные правила, readme, соберите пакет и загрузите его на PyPI:
./prep-release.py readme
rm -f dist/*
python setup.py sdist bdist_wheel
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
Для получения дополнительной информации см. Packaging Projects.