
Identificador de aplicaciones Android para Packers, Protectors, Obfuscators y Oddities - PEiD para Android
APKiD te proporciona información sobre cómo se hizo un APK. Identifica muchos compiladores, empaquetadores, ofuscadores y otras cosas extrañas. Es el PEiD para Android.

Para obtener más información sobre para qué se puede utilizar esta herramienta, consulte:
pip install apkid
También puedes ejecutar APKiD con Docker! Por supuesto, esto requiere que tengas git y Docker instalados.
Aquí te mostramos cómo usar 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 :: de RedNaga :: rednaga.io
[*] example.apk!classes.dex
|-> compilador : 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 - Identificador de aplicaciones Android v2.1.2
positional arguments:
FILE apk, dex o directorio
optional arguments:
-h, --help muestra este mensaje de ayuda y sale
-v, --verbose registra mensajes de depuración
scanning:
-t TIMEOUT, --timeout TIMEOUT tiempo de espera de escaneo de Yara (en segundos)
-r, --recursive recursivo en subdirectorios
--scan-depth SCAN_DEPTH profundidad al escanear zips anidados
--entry-max-scan-size ENTRY_MAX_SCAN_SIZE tamaño máximo de entrada zip a escanear en bytes, 0 = sin límite
--typing {magic,filename,none} método para decidir qué archivos escanear
output:
-j, --json resultados del escaneo en formato JSON
-o DIR, --output-dir DIR escribe resultados individuales aquí (implica --json)
Si encuentras un APK o DEX que APKiD no reconoce, abre un issue en GitHub y cuéntanos:
Estamos abiertos a cualquier tipo de concepto que puedas tener para detectar "algo interesante", así que no te limites solo a empaquetadores, compiladores u ofuscadores. Si hay un truco interesante anti-desensamblador, anti-máquina virtual, anti-*, por favor abre un issue.
Las solicitudes de extracción (pull requests) son bienvenidas. Si envías una nueva regla, asegúrate de incluir un hash del archivo APK/DEX para que podamos verificar la regla.
Esta herramienta está disponible bajo una licencia dual: una comercial adecuada para proyectos de código cerrado y una licencia GPL que se puede utilizar en software de código abierto.
Dependiendo de tus necesidades, debes elegir una de ellas y seguir sus políticas. Un detalle de las políticas y acuerdos para cada tipo de licencia está disponible en los archivos LICENSE.COMMERCIAL y LICENSE.GPL.
Si deseas instalar la última versión para hacer cambios, desarrollar tus propias reglas, etc., simplemente clona este repositorio, compila las reglas e instala el paquete en modo editable:
git clone https://github.com/rednaga/APKiD
cd APKiD
python prep-release.py
pip install -e .[dev,test]
Si lo anterior no funciona debido a errores de permisos que dependen de tu máquina local y de dónde se ha instalado Python, prueba especificar la bandera --user. Esto probablemente sea necesario si no estás usando un entorno virtual:
pip install -e .[dev,test] --user
Si actualizas alguna de las reglas, asegúrate de ejecutar prep-release.py para recompilarlas.
Si usas Windows, instala Yara 3.11.0 y 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
Al lanzar una nueva versión, asegúrate de que la versión se haya actualizado en apkid/init.py.
En cuanto a ejecutar las pruebas, revisa .travis.yml para ver cómo están configurados los entornos de desarrollo y prueba y cómo se ejecutan las pruebas.
Actualiza las reglas compiladas, el readme, construye el paquete y súbelo a 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 más información, consulta Packaging Projects.