
Android-Anwendungsidentifikator für Packer, Schutzprogramme, Verschleierer und Besonderheiten - PEiD für Android
APKiD liefert Ihnen Informationen darüber, wie eine APK erstellt wurde. Es identifiziert viele Compiler, Packer, Obfuscatoren und andere seltsame Dinge. Es ist PEiD für Android.

Weitere Informationen darüber, wofür dieses Tool verwendet werden kann, finden Sie hier:
pip install apkid
Sie können APKiD auch mit Docker ausführen! Natürlich setzt dies voraus, dass Sie git und Docker installiert haben.
So verwenden Sie 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)
Wenn Sie auf eine APK oder DEX stoßen, die APKiD nicht erkennt, öffnen Sie bitte ein GitHub-Issue und teilen Sie uns mit:
Wir sind offen für jede Art von Konzept, das Sie für "etwas Interessantes" zur Erkennung haben könnten, also beschränken Sie sich nicht nur auf Packer, Compiler oder Obfuscatoren. Wenn es einen interessanten Anti-Disassembler-, Anti-VM-, Anti-*-Trick gibt, erstellen Sie bitte ein Issue.
Pull Requests sind willkommen. Wenn Sie eine neue Regel einreichen, geben Sie unbedingt einen Datei-Hash der APK / DEX an, damit wir die Regel überprüfen können.
Dieses Tool ist unter einer dualen Lizenz verfügbar: einer kommerziellen Lizenz, die für Closed-Source-Projekte geeignet ist, und einer GPL-Lizenz, die in Open-Source-Software verwendet werden kann.
Je nach Ihren Anforderungen müssen Sie eine davon auswählen und deren Richtlinien befolgen. Einzelheiten zu den Richtlinien und Vereinbarungen für jeden Lizenztyp finden Sie in den Dateien LICENSE.COMMERCIAL und LICENSE.GPL.
Wenn Sie die neueste Version installieren möchten, um Änderungen vorzunehmen, eigene Regeln zu entwickeln und so weiter, klonen Sie einfach dieses Repository, kompilieren Sie die Regeln und installieren Sie das Paket im editierbaren Modus:
git clone https://github.com/rednaga/APKiD
cd APKiD
python prep-release.py
pip install -e .[dev,test]
Der obige Befehl python prep-release.py erfordert, dass die Pakete yara-python und yara-python-dex bereits installiert sind.
Wenn das oben Genannte aufgrund von Berechtigungsfehlern, die von Ihrem lokalen Rechner und dem Installationsort von Python abhängen, nicht funktioniert, versuchen Sie, das Flag --user anzugeben. Dies ist wahrscheinlich erforderlich, wenn Sie keine virtuelle Umgebung verwenden:
pip install -e .[dev,test] --user
Wenn Sie eine der Regeln aktualisieren, führen Sie unbedingt prep-release.py aus, um sie neu zu kompilieren.
Wenn Sie Windows verwenden, deinstallieren Sie alle vorherigen Versionen von Yara und installieren Sie Yara 3.11.0 und yara-python-dex vor dem Kompilieren
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
Stellen Sie bei der Veröffentlichung einer neuen Version sicher, dass die Version in apkid/init.py aktualisiert wurde.
Was das Ausführen von Tests betrifft, sehen Sie sich .travis.yml an, um zu erfahren, wie die Entwicklungs- und Testumgebungen eingerichtet und Tests ausgeführt werden.
Aktualisieren Sie die kompilierten Regeln und die Readme, erstellen Sie das Paket und laden Sie es auf PyPI hoch:
./prep-release.py readme
rm -f dist/*
python setup.py sdist bdist_wheel
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
Weitere Informationen finden Sie unter Packaging Projects.