Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
dexcalibur — [Oficial] Herramienta de ingeniería inversa para Android enfocada en la automatización de instrumentación dinámica mediante Frida. Desensambla dex, lo analiza estáticamente, genera hooks, descubre métodos reflejados, almacena datos interceptados y hace cosas nuevas a partir de ellos. Su objetivo es ser una plataforma integral de ingeniería inversa para Android. | Kitploit
Herramientas/GitHubGitHub/reversenseorg/dexcalibur
Seguridad AndroidAnálisis EstáticoAnálisis Dinámico (Sandboxing)Ingeniería InversaDepuradoresFuzzingSeguridad MóvilAnálisis de Binarios

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 →

Acerca de

GitHub
reversenseorg/dexcalibur

dexcalibur

Ver Repositorio
1.2k13024hace 23 díasRevisado por Kitploit

[Oficial] Herramienta de ingeniería inversa para Android enfocada en la automatización de instrumentación dinámica mediante Frida. Desensambla dex, lo analiza estáticamente, genera hooks, descubre métodos reflejados, almacena datos interceptados y hace cosas nuevas a partir de ellos. Su objetivo es ser una plataforma integral de ingeniería inversa para Android.

Compartir

WiP : Moviendo a dexcalibur 2.0 | nombre en clave : Reversense

npm dependencies npm npm Docker Automated build Build Status Twitter Follow PRs Welcome Maintainability

Dexcalibur banner

Dexcalibur

Dexcalibur es una plataforma de ingeniería inversa de Android centrada en la automatización de instrumentación. Su particularidad es usar análisis dinámico para mejorar las heurísticas de análisis estático. Su objetivo es automatizar tareas aburridas relacionadas con la instrumentación dinámica, como :

  • Descompilar/desensamblar bytecode interceptado en tiempo de ejecución
  • Escribir código de hook y gestionar muchos mensajes de hook
  • Buscar patrones/cosas interesantes para hookear
  • Procesar datos recopilados por hook (archivo dex, método invocado, cargador de clases, ...)
  • y así ... Pero no solo eso, porque Dexcalibur tiene su propio motor de análisis estático y es capaz de ejecutar fragmentos parciales de smali.

¿Quieres compartir algo o necesitas ayuda? Únete a nuestros chats oficiales :

Telegram - la forma más rápida de obtener una respuesta

https://discord.gg/Pfw7Kc3dS

La documentación oficial está disponible aquí (sitio web - trabajo en progreso).

Ve las últimas noticias aquí : http://docs.dexcalibur.org/News.html

Mira los videos de demostración de Dexcalibur : Demo: ¿Menos de 1 minuto para hookear 61 métodos? No hay problema. (youtube)

¿Cómo apoyar a Dexcalibur?

¡Contribuye!

¡No dudes! Hay varias formas de contribuir :

  • Hacer un pull request relacionado con una corrección o una nueva característica
  • Crear un issue para ayudarme a parchear/mejorar herramientas
  • Ayudarme a desarrollar la interfaz de usuario
  • Enviarme un correo con tus comentarios
  • etc ...

A. Instalación

A.1 Nueva instalación

Ve a Documento de instalación

Alternativa: usar Docker

  • en tu host, instala adb (y un emulador de Android si es apropiado)
  • docker-compose build android-dexcalibur
  • docker run --rm -it --net=host -v /tmp/dexcalibur:/shared -p 8000:8000 dexcalibur:2023.01 /bin/bash

A.2 Iniciar dexcalibur

Para Linux y MacOS

Instalación con NPM : Si Dexcalibur se ha instalado globalmente usando NPM (opción -g), entonces Dexcalibur se puede iniciar desde la terminal ejecutando $ dexcalibur, de lo contrario se puede iniciar con $ node $(node root -g dexcalibur)/dexcalibur/dexcalibur.js.

Instalación desde código fuente : desde la carpeta dexcalibur, ejecuta $ dexcalibur o $ node dexcalibur.js.

Para Windows

Instalación con NPM : Incluso si Dexcalibur está instalado globalmente usando NPM (opción -g), Dexcalibur debe iniciarse desde la terminal ejecutando el siguiente comando desde una terminal node <NPM_ROOT>/dexcalibur/dexcalibur.js.

Instalación desde código fuente : desde la carpeta dexcalibur, en la terminal, ejecuta el comando node dexcalibur.js.

A.3 Actualizar

Desde versiones <= 0.6.x

¿Estás usando una versión anterior de Dexcalibur?

Sigue los mismos pasos que una instalación nueva, y cuando debas ingresar la ruta del espacio de trabajo, ingresa la ubicación de tu espacio de trabajo actual.

Desde versiones >= 0.7

Simplemente ejecutando:

$  npm install -g dexcalibur

La configuración y el espacio de trabajo existentes se detectarán automáticamente.

C. Capturas de pantalla

Las siguientes capturas de pantalla ilustran la actualización automática de xrefs en tiempo de ejecución.

Xref auto update

Features

D. Características y limitaciones

Actualmente, la mayor limitación es que Dexcalibur no puede generar código fuente de hooks dirigidos a funciones nativas (en bibliotecas JNI). Sin embargo, puedes declarar manualmente un Interceptor de Frida editando un hook.

Considerando que Dexcalibur no proporciona (por el momento) características para analizar la parte nativa como bibliotecas JNI o JNA, solo se han detallado las características y limitaciones relacionadas con la parte Java.

La precisión del análisis depende de la integridad de la imagen de la API de Android utilizada durante los pasos iniciales del análisis. Esto significa que si usas un archivo DEX generado a partir del archivo Android.jar del SDK de Android, algunas referencias a métodos, campos o clases internas de la API de Java de Android podrían faltar. Se obtienen mejores resultados cuando el análisis comienza desde un archivo "boot.oat" extraído directamente de un dispositivo real que ejecuta la versión esperada de Android.

D.1 Características

D.1.A Analizador estático

TODO : escribir texto

D.1.B Gestor de hooks

TODO : escribir texto

D.1.C Máquina virtual smali de Dexcalibur

Comportamientos rastreados

El analizador estático involucrado en la acción "Ejecutar smali (VM)" es capaz de descubrir y aceptar pero rastrea los siguientes comportamientos :

  • Registro de destino fuera de límites (registro fuera de v0 - v255)
  • Registro de origen fuera de límites (registro fuera de v0 - v65535)
  • Detectar instrucción inválida que lanza implícitamente una excepción interna
  • Detectar algún fragmento de bytecode válido no conforme con la especificación de Android
  • Calcular longitud de array indefinido
  • Llenar array indefinido
  • y más ...

Actualmente, los manejadores/escuchas para tales instrucciones inválidas no son compatibles, pero los eventos se rastrean y se muestran.

IR de Dexcalibur

La VM produce una Representación Intermedia (IR) personalizada y simplificada que se muestra solo para ayudar al analista a realizar su análisis.

Dependiendo del valor de la profundidad de la pila de llamadas y la configuración, el IR puede incluir o no instrucciones ejecutadas dentro de la función llamada. Si la ejecución entra en un bloque try y continúa hasta retornar, pero nunca ejecuta el catch, entonces el bloque catch no se mostrará. De hecho, el propósito del IR de Dexcalibur es mostrar solo "lo que se ejecuta" o "lo que podría ejecutarse dependiendo del valor de algún símbolo" en el contexto de la VM.

El IR de Dexcalibur ayuda a leer una versión limpia del bytecode eliminando goto inútiles y predicados opacos. El IR de Dexcalibur puede ser generado por la VM con 2 niveles de simplificación :

IR de primer nivel, podría usarse si no confías en el IR de segundo nivel :

  • sin simplificación de CFG : se muestran las condiciones y saltos incondicionales.
  • se muestra cada movimiento a un registro

Segundo nivel :

Descargar herramienta