
Identifiant d'application Android pour Packers, Protectors, Obfuscators et Oddities - PEiD for Android
APKiD vous donne des informations sur la façon dont un APK a été créé. Il identifie de nombreux compilateurs, packers, obfuscateurs et autres choses étranges. C'est PEiD pour Android.

Pour plus d'informations sur ce à quoi cet outil peut servir, consultez :
pip install apkid
Vous pouvez également exécuter APKiD avec Docker ! Bien sûr, cela nécessite que git et Docker soient installés.
Voici comment utiliser 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)
Si vous rencontrez un APK ou un DEX qu'APKiD ne reconnaît pas, veuillez ouvrir un ticket GitHub et nous indiquer :
Nous sommes ouverts à tout type de concept que vous pourriez avoir pour « quelque chose d'intéressant » à détecter, alors ne vous limitez pas uniquement aux packers, compilateurs ou obfuscateurs. S'il existe une astuce intéressante d'anti-désassembleur, anti-vm, anti-*, veuillez créer un ticket.
Les pull requests sont les bienvenues. Si vous soumettez une nouvelle règle, assurez-vous d'inclure un hash de fichier de l'APK / DEX afin que nous puissions vérifier la règle.
Cet outil est disponible sous une double licence : une licence commerciale adaptée aux projets à code source fermé et une licence GPL qui peut être utilisée dans les logiciels open source.
Selon vos besoins, vous devez choisir l'une d'elles et suivre ses politiques. Le détail des politiques et accords pour chaque type de licence est disponible dans les fichiers LICENSE.COMMERCIAL et LICENSE.GPL.
Si vous souhaitez installer la dernière version afin d'apporter des modifications, de développer vos propres règles, etc., clonez simplement ce dépôt, compilez les règles et installez le paquet en mode éditable :
git clone https://github.com/rednaga/APKiD
cd APKiD
python prep-release.py
pip install -e .[dev,test]
La commande python prep-release.py ci-dessus nécessite que les paquets yara-python et yara-python-dex soient déjà installés.
Si ce qui précède ne fonctionne pas, en raison d'erreurs de permission dépendant de votre machine locale et de l'endroit où Python a été installé, essayez de spécifier l'option --user. Cela est probablement nécessaire si vous n'utilisez pas d'environnement virtuel :
pip install -e .[dev,test] --user
Si vous mettez à jour l'une des règles, assurez-vous d'exécuter prep-release.py pour les recompiler.
Si vous utilisez Windows, désinstallez toutes les versions précédentes de Yara et installez Yara 3.11.0 et yara-python-dex avant de compiler
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
Lors de la publication d'une nouvelle version, assurez-vous que la version a été mise à jour dans apkid/init.py.
En ce qui concerne l'exécution des tests, consultez .travis.yml pour voir comment les environnements de développement et de test sont configurés et comment les tests sont exécutés.
Mettez à jour les règles compilées, le readme, construisez le paquet et téléchargez-le sur PyPI :
./prep-release.py readme
rm -f dist/*
python setup.py sdist bdist_wheel
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
Pour plus d'informations, voir Packaging Projects.