Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
dex-oracle — Un desofuscador de Dalvik basado en patrones que utiliza ejecución limitada para mejorar el análisis semántico | Kitploit
Herramientas/GitHubGitHub/calebfenton/dex-oracle
Seguridad AndroidIngeniería InversaAnálisis de MalwareAnálisis de Binarios
GitHubcalebfenton/dex-oracle

dex-oracle

Un desofuscador de Dalvik basado en patrones que utiliza ejecución limitada para mejorar el análisis semántico

Ver Repositorio
5041105hace 7 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Oracle

Un desofuscador Dalvik basado en patrones que utiliza ejecución limitada para mejorar el análisis semántico. También, la inspiración para otro desofuscador Android: Simplify.

Gem Version Code Climate Test Coverage

Antes Antes

Después Después

sha1: a68d5d2da7550d35f7dbefc21b7deebe3f4005f3

md5: 2dd2eeeda08ac8c15be8a9f2d01adbe8

Instalación

Paso 1. Instalar Smali / Baksmali

Como eres un reverser Android de élite, estoy seguro de que ya tienes Smali y Baksmali en tu PATH. Si por alguna extraña razón no están instalados, esto debería ayudarte a empezar, pero por favor examínalo cuidadosamente antes de ejecutarlo:

root@kitploit:~
mkdir ~/bin || cd ~/bin
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/smali-2.2.5.jar && mv smali-*.jar smali.jar
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.2.5.jar && mv baksmali-*.jar baksmali.jar
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/smali
curl --location -O https://bitbucket.org/JesusFreke/smali/downloads/baksmali
chmod +x ./smali ./baksmali
export PATH=$PATH:$PWD

Paso 2. Instalar Android SDK / ADB

Asegúrate de que adb esté en tu PATH.

Paso 3. Instalar la gema

root@kitploit:~
gem install dex-oracle

O, si prefieres compilar desde el código fuente:

root@kitploit:~
git clone https://github.com/CalebFenton/dex-oracle.git
cd dex-oracle
gem install bundler
bundle install

Paso 4. Conectar un dispositivo o emulador

Debes tener un emulador ejecutándose o un dispositivo conectado para que Oracle funcione. ¡La versión mínima requerida de Android es 5.0!

Oracle necesita ejecutar métodos en un sistema Android en vivo. Esto puede ser en un dispositivo o en un emulador (preferido). Si es un dispositivo, asegúrate de que no te importa ejecutar código potencialmente hostil en él.

Si deseas usar un emulador y ya tienes instalado el Android SDK, puedes crear e iniciar imágenes de emulador con:

root@kitploit:~
android avd

Uso

root@kitploit:~
Usage: dex-oracle [opts] <APK / DEX / Smali Directory>
    -h, --help                       Display this screen
    -s ANDROID_SERIAL,               Device ID for driver execution, default=""
        --specific-device
    -t, --timeout N                  ADB command execution timeout in seconds, default="120"
    -i, --include PATTERN            Only optimize methods and classes matching the pattern, e.g. Ldune;->melange\(\)V
    -e, --exclude PATTERN            Exclude these types from optimization; including overrides
        --disable-plugins STRING[,STRING]*
                                     Disable plugins, e.g. stringdecryptor,unreflector
        --list-plugins               List available plugins
    -v, --verbose                    Be verbose
    -V, --vverbose                   Be very verbose

Por ejemplo, para solo desofuscar métodos en una clase llamada Lcom/android/system/admin/CCOIoll; dentro de un APK llamado obad.apk:

root@kitploit:~
dex-oracle -i com/android/system/admin/CCOIoll obad.apk

Cómo funciona

Oracle toma como entrada aplicaciones Android (APK), ejecutables Dalvik (DEX) y archivos Smali. Primero, si la entrada es un APK o DEX, se desensambla en archivos Smali. Luego, los archivos Smali se pasan a varios plugins que realizan análisis y modificaciones. Los plugins buscan patrones que se puedan transformar en algo más fácil de leer. Para entender lo que el código está haciendo, algunos métodos Dalvik son realmente ejecutados y se recoge su salida. De esta manera, algunas llamadas a métodos pueden ser reemplazadas con constantes. Después de eso, se actualizan todos los archivos Smali. Finalmente, si la entrada era un archivo APK o DEX, los archivos Smali modificados se recompilan y se crea un APK o DEX actualizado.

La ejecución de métodos es realizada por el Driver. El APK, DEX o Smali de entrada se combina con el Driver en un único DEX usando dexmerge y se envía a un dispositivo o emulador. Los plugins pueden entonces usar Driver, que utiliza reflexión de Java para ejecutar métodos del DEX de entrada. Los valores de retorno se pueden usar para mejorar el análisis semántico más allá del mero reconocimiento de patrones. Esto es especialmente útil para muchos métodos de descifrado de cadenas, que normalmente toman una cadena encriptada o algún arreglo de bytes. Una limitación es que la ejecución se limita a métodos estáticos.

Hacking

Crear tu propio plugin

Hay tres plugins que vienen con Oracle:

  1. Undexguard - elimina ciertos tipos de ofuscaciones de Dexguard
  2. Unreflector - elimina algo de reflexión de Java
  3. String Decryptor - plugin simple que elimina un tipo común de encriptación de cadenas

Si te encuentras con un nuevo tipo de ofuscación, puede ser posible desofuscarlo con Oracle. Observa el Smali y determina si el código puede ser:

  1. reordenado
  2. entendido ejecutando algunos métodos estáticos

Si se cumple alguna de estas dos condiciones, deberías intentar escribir tu propio plugin. Hay cuatro pasos para construir tu propio plugin:

  1. identificar patrones Smali
  2. descubrir cómo simplificar los patrones
  3. descubrir cómo interactuar con el driver e invocar métodos
  4. descubrir cómo aplicar modificaciones directamente

Los plugins incluidos deberían ser una buena guía para entender los pasos #3 y #4. Driver está diseñado para ayudar con el paso #2.

Por supuesto, siempre eres bienvenido a compartir cualquier ofuscación que encuentres y alguien podría eventualmente ocuparse de ella.

Actualizar el Driver

Primero, asegúrate de que dx esté en tu PATH. Esto es parte del Android SDK, pero probablemente no esté en tu PATH a menos que seas hardcore.

La carpeta driver es un proyecto Java gestionado por Gradle. Impórtalo en Eclipse, IntelliJ, etc. y haz los cambios que desees. Para finalizar la actualización del driver, ejecuta ./update_driver. Esto reconstruirá el driver y convertirá el JAR de salida en un DEX.

Solución de problemas

Si hay un problema al ejecutar el código del driver en tu emulador o dispositivo, asegúrate de abrir monitor (parte del Android SDK) y revisa si hay alguna pista allí. Incluso si el error no tiene sentido para ti, te ayudará si lo publicas junto con el issue que crearás.

No todas las plataformas Android funcionan bien con dex-oracle. Algunas fallan al intentar ejecutar archivos DEX arbitrarios. Si tienes problemas con fallos de segmentación o cierres del driver, prueba usando Android 4.4.2 API level 19 con ARM.

Es posible que un plugin vea un patrón que cree que es ofuscación pero que en realidad sea código que no debería ejecutar. Esto parece poco probable porque los patrones de ofuscación son realmente inusuales, pero es posible. Si encuentras que un plugin en particular está causando problemas y estás seguro de que la aplicación no está protegida por ese ofuscador en particular, es decir, la aplicación no tiene DexGuard pero el plugin de DexGuard está intentando ejecutar cosas, simplemente desactívalo.

Más información

  1. TetCon 2016 - Android Deobfuscation
  2. Hacking with dex-oracle for Android Malware Deobfuscation
Descargar herramienta