Android apps: un dia sin dex2jar y sin apktool

15
Android Apps: Un dia sin dex2jar y sin apktool Salvador Mendoza Twitter: @Netxing Blog: salmg.net

Transcript of Android apps: un dia sin dex2jar y sin apktool

Page 1: Android apps: un dia sin dex2jar y sin apktool

Android Apps:Un dia sin dex2jar y

sin apktool

Salvador Mendoza Twitter: @Netxing Blog: salmg.net

Page 2: Android apps: un dia sin dex2jar y sin apktool

Agenda● Introducción

● Terminologia

● Enjarify

● ClassyShark

● JEB

● JADX

● JD-GUI

● Qark

● dare

● lint

Page 3: Android apps: un dia sin dex2jar y sin apktool

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

Page 4: Android apps: un dia sin dex2jar y sin apktool

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

Page 5: Android apps: un dia sin dex2jar y sin apktool

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

Page 6: Android apps: un dia sin dex2jar y sin apktool

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

Page 7: Android apps: un dia sin dex2jar y sin apktool

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/

Page 8: Android apps: un dia sin dex2jar y sin apktool

JEB

Page 9: Android apps: un dia sin dex2jar y sin apktool

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

Page 10: Android apps: un dia sin dex2jar y sin apktool

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/

Page 11: Android apps: un dia sin dex2jar y sin apktool

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

Page 12: Android apps: un dia sin dex2jar y sin apktool

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/

Page 13: Android apps: un dia sin dex2jar y sin apktool

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

Page 14: Android apps: un dia sin dex2jar y sin apktool

Preguntas?

Salvador Mendoza Twitter: @Netxing Blog: salmg.net

Page 15: Android apps: un dia sin dex2jar y sin apktool

Gracias!

Salvador Mendoza Twitter: @Netxing Blog: salmg.net