3. 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
4. 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
5. 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
6. 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
7. 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 Pay
https://www.pnfsoftware.com/
9. 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
10. 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/
11. 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
12. 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 verificado
http://siis.cse.psu.edu/dare/
13. 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