
Identificador de Aplicativos Android para Packers, Protetores, Ofuscadores e Peculiaridades - PEiD para Android
APKiD fornece informações sobre como um APK foi feito. Ele identifica muitos compiladores, empacotadores, ofuscadores e outras coisas estranhas. É o PEiD para Android.

Para mais informações sobre para que esta ferramenta pode ser usada, confira:
pip install apkid
Você também pode executar o APKiD com Docker! Claro, isso requer que você tenha git e Docker instalados.
Aqui está como usar o 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)
Se você encontrar um APK ou DEX que o APKiD não reconhece, por favor abra uma issue no GitHub e nos informe:
Estamos abertos a qualquer tipo de conceito que você possa ter para "algo interessante" a detectar, então não se limite apenas a empacotadores, compiladores ou ofuscadores. Se houver um truque interessante de anti-desassemblador, anti-vm, anti-*, por favor crie uma issue.
Pull requests são bem-vindos. Se você estiver enviando uma nova regra, certifique-se de incluir um hash do arquivo APK / DEX para que possamos verificar a regra.
Esta ferramenta está disponível sob uma licença dupla: uma comercial adequada para projetos de código fechado e uma licença GPL que pode ser usada em software de código aberto.
Dependendo das suas necessidades, você deve escolher uma delas e seguir suas políticas. Um detalhe das políticas e acordos para cada tipo de licença está disponível nos arquivos LICENSE.COMMERCIAL e LICENSE.GPL.
Se você quiser instalar a versão mais recente para fazer alterações, desenvolver suas próprias regras, e assim por diante, basta clonar este repositório, compilar as regras e instalar o pacote em modo editável:
git clone https://github.com/rednaga/APKiD
cd APKiD
python prep-release.py
pip install -e .[dev,test]
Se o acima não funcionar, devido a erros de permissão dependentes da sua máquina local e de onde o Python foi instalado, tente especificar a flag --user. Isso provavelmente é necessário se você não estiver usando um ambiente virtual:
pip install -e .[dev,test] --user
Se você atualizar alguma das regras, certifique-se de executar prep-release.py para recompilá-las.
Se você estiver usando Windows, instale o Yara 3.11.0 e o yara-python-dex antes de compilar
pip install yara-python==3.11.0
pip install 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
Ao lançar uma nova versão, certifique-se de que a versão foi atualizada em apkid/init.py.
Quanto à execução de testes, consulte .travis.yml para ver como os ambientes de desenvolvimento e teste são configurados e os testes são executados.
Atualize as regras compiladas, o readme, construa o pacote e envie para o PyPI:
./prep-release.py readme
rm -f dist/*
python setup.py sdist bdist_wheel
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
Para mais informações, veja Packaging Projects.