
Identificatore di applicazioni Android per packer, protettori, offuscatori e stranezze - PEiD for Android
APKiD ti dà informazioni su come è stato creato un APK. Identifica molti compilatori, packer, offuscatori e altre cose strane. È il PEiD per Android.

Per maggiori informazioni su ciò per cui questo strumento può essere utilizzato, consulta:
pip install apkid
Puoi anche eseguire APKiD con Docker! Ovviamente, 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 ti imbatti in un APK o DEX che APKiD non riconosce, ti preghiamo di aprire un issue su GitHub e dirci:
Siamo aperti a qualsiasi tipo di concetto tu possa avere per "qualcosa di interessante" da rilevare, quindi non limitarti solo a packer, compilatori o offuscatori. Se c'è un interessante trucco anti-disassemblatore, anti-vm, anti-*, per favore apri un 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 una doppia licenza: una commerciale adatta per progetti closed source e una licenza GPL che può essere utilizzata in software open source.
A seconda delle tue esigenze, devi sceglierne una e seguirne le politiche. Un dettaglio delle politiche e degli accordi per ogni tipo di licenza è disponibile 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à editabile:
git clone https://github.com/rednaga/APKiD
cd APKiD
python prep-release.py
pip install -e .[dev,test]
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 delle regole, assicurati di eseguire prep-release.py per ricompilarle.
Se utilizzi Windows, installa Yara 3.11.0 e yara-python-dex prima di compilare
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
Quando rilasci una nuova versione, assicurati che la versione sia stata aggiornata in apkid/init.py.
Per quanto riguarda l'esecuzione dei test, consulta .travis.yml per vedere come sono impostati gli ambienti di sviluppo e test e come vengono eseguiti i test.
Aggiorna le regole compilate, il readme, costruisci il pacchetto e carica 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 consulta Packaging Projects.