android apps: un dia sin dex2jar y sin apktool
TRANSCRIPT
Android Apps:Un dia sin dex2jar y
sin apktool
Salvador Mendoza Twitter: @Netxing Blog: salmg.net
Agenda● Introducción
● Terminologia
● Enjarify
● ClassyShark
● JEB
● JADX
● JD-GUI
● Qark
● dare
● lint
Introducción
● dex2jar simplemente no funciona o su “traduccion” no es la óptima
● La aplicación cuenta con seguridad extra
● El dispositivo no se puede “rootear”
● No se puede “troyanizar” el código
● El firmar las aplicaciones está fuera de alcance
Terminologia● Ingeniería Inversa: Es el arte de desmembrar un dispositivo o programa
para entender su funcionamiento interno o externo del mismo.
● DMV: Maquina Virtual Dalvik
● Bytecode: Transformación de las clases para usarse en MVD
● Dex code: Bytecode -> Dex = Codigo compilado de la aplicacion
● Smali code: Codigo en ensamblador de la aplicación = Dex -> Smali
Enjarify● Google es el dueño.
● No trata de “traducir” Dalvik a Bytecode
● Puede ser optimizado con PyPy en vez de CPython
● Diseñado para trabajar en la mayoría de las ocasiones
● Si hay errores te los muestra, no adivina ocultamente como dex2jar
● Es capaz de manejar clases con nombres en Unicode sin problemas
● Entre otras muchas cosas
https://github.com/google/enjarify
ClassyShark
● Una herramienta independiente
● Extrae información de las clases, miembros y dependencias
● Soporta librerías(.dex, .aar y .so) y ejecutables (.apk, .jar y class)
● Maneja todos los archivos .xml
https://github.com/google/android-classyshark
JEB● Potente aplicacion empresarial para hacer ingenieria
inversa(Android, PDF y otros módulos)
● Para todo tipo de apk incluso aquellas que otros decompiladores
no soportan
● Altamente configurable
● Usado para hacer reverse a las funciones decrypt y encrypt en
Samsung Payhttps://www.pnfsoftware.com/
JEB
JADX
● Aplicación que muestra en forma de mapeo las clases y dependencias del apk
● Ambiente grafico, de facil uso
● De Dex a Java(decompilador)
● Soporta .dex .class .apk .jar
https://github.com/skylot/jadx
JD-GUI
● Decompilador de apk > Java 5
● Una aplicación que no tiene dependencias
● Sencilla y practica
● Maneja diferentes plug-ins: Intillij IDE y otro para Eclipse
http://jd.benow.ca/
Qark● Quick Android Review Kit● Es un framework completo● Busca vulnerabilidades y es capaz de crear PoC apks● Inclusive puede crear comandos adb para explotar alguna
vulnerabilidad● Implementa dex2jar underground y apktool● Recomendable para un análisis completo de las clases y de los
paquetes
https://github.com/linkedin/qark
dare● Analizador de aplicaciones Android
● Específicamente trabaja en archivos .dex y .apk
● Muy potente solo usando 9 reglas de las 257 Dalvik opcodes
para el reverse
● Tiene la habilidad de “reescribir” entradas del bytecode que
no ha sido verificado y lo convierte en bytecode verificadohttp://siis.cse.psu.edu/dare/
lint
● Revisar seguridad en la apk
● Corre desde la terminal
● Muestra en tiempo real algún tipo de falla en la apk o a archivo
● Genera reporte rápido y específico
SDK tool
Preguntas?
Salvador Mendoza Twitter: @Netxing Blog: salmg.net
Gracias!
Salvador Mendoza Twitter: @Netxing Blog: salmg.net