
Decompiling Android
Godfrey Nolan
- Editorial
- Apress
- Año
- 2012
- Páginas
- ~304
- Nivel
- Intermedio
De qué trata
Obra técnica especializada escrita por Godfrey Nolan que se enfoca en el análisis de bajo nivel, la ingeniería inversa y los mecanismos de descompilación de aplicaciones dentro del ecosistema clásico de Android (versiones 2.x a 4.x basadas en la máquina virtual Dalvik). Está dirigida a desarrolladores Android de nivel intermedio a avanzado, analistas de seguridad móvil y programadores con experiencia sólida en Java que deseen comprender qué sucede con su código una vez empaquetado y cómo auditar o proteger la propiedad intelectual de sus proyectos.
El texto desglosa la arquitectura de la JVM frente a la máquina virtual Dalvik, analizando la estructura de los archivos `.class` y la anatomía interna de los binarios ejecutables `.dex` junto con sus tablas de opcodes. Enseña a utilizar herramientas de extracción, desmontaje y descompilación esenciales como Apktool, dex2jar, JD-GUI y baksmali/smali para reconstruir recursos y código Java legible desde un APK. Asimismo, aborda la teoría y construcción de herramientas de descompilación propias en Java (DexToXML y DexToSource) para interpretar opcodes y reconstruir sentencias de control de flujo como condicionales `if` o conversiones de tipos, culminando con el endurecimiento y ofuscación de código mediante herramientas como ProGuard y DashO.
El lector experimenta de forma práctica la descompilación de paquetes reales, la construcción de un analizador/descompilador básico en Java y la evaluación de casos de estudio sobre qué tan resistentes resultan distintos niveles de ofuscación frente a atacantes. Su principal mérito radica en explicar a fondo los entresijos del compilador y el bytecode de Android, un área crítica de seguridad que la mayoría de manuales pasa por alto. Conviene tener en cuenta que está centrado en Dalvik y la era previa a ART (Android Runtime), y no abarca ingeniería inversa de binarios nativos C/C++ del NDK.
- Ingeniería inversa
- Bytecode Dalvik
- Archivos DEX
- Decompilación de APK
- Apktool
- dex2jar
- JD-GUI
- ProGuard
- DashO
- Seguridad en Android
- Ofuscación de código
- Máquina virtual Dalvik
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Descompilador personalizado DexToSource y DexToXML
Herramienta desarrollada en Java que analiza las estructuras de archivos DEX binarios, traduce el flujo de opcodes a un formato XML intermedio y reconstruye código fuente Java equivalente con sentencias de control.

