
Identificatore di applicazioni Android per packer, protettori, offuscatori e stranezze - PEiD for Android
APKiD fornisce informazioni su come è stato creato un APK. Identifica numerosi compilatori, packer, offuscatori e altre stranezze. È il PEiD per Android.

Per maggiori informazioni su cosa può essere utilizzato questo strumento, consulta:
pip install apkid
Puoi anche eseguire APKiD con Docker! Naturalmente, questo richiede che tu abbia git e Docker installati.
Ecco come usare 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 incontri un APK o DEX che APKiD non riconosce, apri una issue su GitHub e dicci:
Siamo aperti a qualsiasi tipo di idea tu possa avere per "qualcosa di interessante" da rilevare, quindi non limitarti esclusivamente a packer, compilatori o offuscatori. Se c'è un'interessante tecnica anti-disassembler, anti-vm, anti-*, apri una issue.
Le pull request sono benvenute. Se stai inviando una nuova regola, assicurati di includere un hash del file dell'APK / DEX in modo che possiamo verificare la regola.
Questo strumento è disponibile con doppia licenza: una commerciale adatta a progetti closed source e una licenza GPL utilizzabile in software open source.
A seconda delle tue esigenze, devi sceglierne una e seguirne le politiche. I dettagli delle politiche e degli accordi per ciascun tipo di licenza sono disponibili nei file LICENSE.COMMERCIAL e LICENSE.GPL.
Se vuoi installare l'ultima versione per apportare modifiche, sviluppare le tue regole e così via, clona semplicemente questo repository, compila le regole e installa il pacchetto in modalità editable:
git clone https://github.com/rednaga/APKiD
cd APKiD
python prep-release.py
pip install -e .[dev,test]
Il comando python prep-release.py sopra richiede che i pacchetti yara-python e yara-python-dex siano già installati.
Se quanto sopra non funziona, a causa di errori di permessi dipendenti dalla tua macchina locale e da dove è stato installato Python, prova a specificare il flag --user. Questo è probabilmente necessario se non stai usando un ambiente virtuale:
pip install -e .[dev,test] --user
Se aggiorni una qualsiasi delle regole, assicurati di eseguire prep-release.py per ricompilarle.
Se stai usando Windows, disinstalla qualsiasi versione precedente di Yara e installa Yara 3.11.0 e yara-python-dex prima di compilare
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
Quando rilasci una nuova versione, assicurati che la versione sia stata aggiornata in apkid/init.py.
Per quanto riguarda l'esecuzione dei test, dai un'occhiata a .travis.yml per vedere come sono configurati gli ambienti di sviluppo e test e come vengono eseguiti i test.
Aggiorna le regole compilate, il readme, compila il pacchetto e caricalo su PyPI:
./prep-release.py readme
rm -f dist/*
python setup.py sdist bdist_wheel
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
Per maggiori informazioni vedi Packaging Projects.