
Herramienta de comparación difusa para desofuscar APKs de Android mediante la identificación de funciones renombradas entre versiones, generando archivos de mapeo e informes HTML interactivos para el análisis de malware y vulnerabilidades.
🤖 Obfu[DE]scate: Una herramienta de desofuscación y comparación para APKs de Android. 📱
Obfu[DE]scate es una herramienta en Python diseñada para simplificar el proceso de desofuscación y comparación de dos versiones de un APK de Android, incluso si las funciones han sido renombradas como parte de la ofuscación. Con una lógica de comparación difusa, Obfu[DE]scate puede identificar similitudes entre funciones y ayudarte a descubrir cambios entre versiones de APK.
¡Empezar con Obfu[DE]scate es fácil! Sigue estos pasos:
pip install -r REQUIREMENTS.txt
Obfu[DE]scate ha sido probado en Windows 11, pero debería funcionar también en otros sistemas.
Obfu[DE]scate ofrece varias opciones de línea de comandos para personalizar su comportamiento:
Para comparar dos archivos APK, simplemente ejecuta Obfu[DE]scate con el siguiente comando:
python ObfuDeScate.py -a1 "old_example.apk" -a2 "new_example.apk" -cp "com.example.path"
En el ejemplo anterior, Obfu[DE]scate revisará todas las funciones en el APK old_example.apk en la ruta de clase com.example.path y las comparará con todas las funciones encontradas en la misma ruta de clase en new_example.apk.
Obfu[DE]scate genera dos archivos de salida: un archivo de mapeo en formato de lista separada por nuevas líneas y un archivo HTML interactivo. Estos archivos incluyen:
com.chess.play.ObserveGameHelperImpl.d -> com.chess.play.ObserveGameHelperImpl.a .
Obfu[DE]scate es un proyecto de código abierto y agradece las contribuciones de la comunidad. Si deseas contribuir a Obfu[DE]scate, sigue estas pautas:
Obfu[DE]scate sigue el Código de Conducta del Pacto del Colaborador. Asegúrate de revisarlo. y adherirte a este código de conducta al contribuir a Obfu[DE]scate.
Si encuentras un error o tienes una sugerencia para una nueva función, por favor abre un issue en el repositorio de GitHub. Proporciona tanto detalle como sea posible, incluyendo pasos para reproducir el error o una descripción clara de la función propuesta. Tus comentarios son valiosos y ayudarán a mejorar Obfu[DE]scate para todos.
¡Esta herramienta no funcionaría sin APKTool! En segundo lugar, muchos de los ejemplos en este README usan la aplicación de Chess.com como base, échale un vistazo aquí.
| Abreviatura | Parámetro | Descripción | Requerido |
|---|
| -a1 | apk_file_path_1 | Ruta al APK original. Este es el APK con el que se comparará el segundo APK (por ejemplo, una versión anterior del APK). | Verdadero |
| -a2 | apk_file_path_2 | Ruta al APK más nuevo. La salida mostrará los cambios entre el APK 1 y este APK. | Verdadero |
| -cp | class_path | Una ruta en notación de dominio inverso que se usará para filtrar las funciones revisadas (por ejemplo, proporcionar com.example.class para comparar solo funciones en esa ruta). | Falso |
| -o | output_dir | Un directorio para guardar el mapeo de salida, el HTML y los APKs desensamblados. | Falso |
| -apktool | apk_tool_path | Si APKTool no está en tu PATH, usa este parámetro para indicarle a ObfuDeScate dónde se encuentra APKTool. | Falso |