Aprovechando la cuarentena, he gastado un poco de tiempo para generar una pequeña herramienta (siempre mejorable), ApkVuln, destinada a analizar APKs gracias a expresiones regulares (las que he agregado son un ejemplo rápido, que arrojará muchos falsos positivos. Lo importante es tener la idea e ir agregando reglas más especificas y potentes).
Para ApkVuln, es necesario instalar apkx, que se encargará de decompilar el APK que le pasemos. El uso del script es muy básico, se recibe como argumento el archivo a analizar, luego internamente se va a decompilar el código en una carpeta (proceso que puede tardar varios minutos, según el peso de la aplicación), y posteriormente se analiza cada pieza de código con las expresiones regulares. Ejemplo de lanzamiento para la APK de Telegram en la figura 1:
No voy a explicar el código, que está en el GitHub. Lo único que comentar es cómo subir expresiones regulares propias:
Para ApkVuln, es necesario instalar apkx, que se encargará de decompilar el APK que le pasemos. El uso del script es muy básico, se recibe como argumento el archivo a analizar, luego internamente se va a decompilar el código en una carpeta (proceso que puede tardar varios minutos, según el peso de la aplicación), y posteriormente se analiza cada pieza de código con las expresiones regulares. Ejemplo de lanzamiento para la APK de Telegram en la figura 1:
![]() |
Figura 1 - Ejemplo de ApkVuln |
No voy a explicar el código, que está en el GitHub. Lo único que comentar es cómo subir expresiones regulares propias:
- Crear un fichero Python con un nombre descriptivo.
- Importar la clase Template (se encuentra en regex/_template).
- Crear una clase Regex que heredé de Template.
- En la función __init__:
- Crear una lista de expresiones regulares.
- Llamar a super, con la lista y el nombre de vulnerabilidad que queramos.
Todo este proceso se puede ver en la figura 2.
![]() |
Figura 2 - Módulo de ejemplo |
Pues ya estaría rápido y fácil. Vuelvo a dejar el enlace al ApkVuln en GitHub. La idea también se puede aplicar a repositorios de códigos de GitHub, repositorios de Linux, etc. Solo es adaptar el código a nuestras necesidades. Hasta pronto.
No hay comentarios:
Publicar un comentario