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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
redexer — El marco de instrumentación binaria Redexer para bytecode Dalvik | Kitploit
Herramientas/GitHubGitHub/plum-umd/redexer
Seguridad AndroidAnálisis EstáticoAnálisis Dinámico (Sandboxing)Ingeniería InversaAnálisis de BinariosPapers e InvestigaciónAprendizaje y Educación
GitHubplum-umd/redexer

redexer

El marco de instrumentación binaria Redexer para bytecode Dalvik

Ver Repositorio
1743133hace 5 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
Sitio web

Build Status

redexer

Redexer es una herramienta de reingeniería que manipula binarios de aplicaciones Android. Esta herramienta es capaz de analizar un archivo DEX en una estructura de datos en memoria; inferir con qué parámetros la aplicación usa ciertos permisos (nombramos esta característica RefineDroid); modificar y volcar esa estructura de datos para producir un archivo DEX de salida (nombramos estas características Dr. Android, que significa Dalvik Rewriting for Android).

Publicaciones

  • Dr. Android and Mr. Hide: Fine-grained Permissions in Android Applications. Jinseong Jeon, Kristopher K. Micinski, Jeffrey A. Vaughan, Ari Fogel, Nikhilesh Reddy, Jeffrey S. Foster, and Todd Millstein. En ACM CCS Workshop on Security and Privacy in Smartphones and Mobile Devices (SPSM '12), Oct 2012.

Requisitos

  • OCaml y Ruby

Esta herramienta está probada bajo OCaml 4.09.0 y Ruby 1.8.6(7), así que necesitas instalarlos (o versiones superiores de ellos).

  • Gestor de paquetes/bibliotecas de OCaml y biblioteca SHA

Para manipular una firma SHA-1 (hash) en el formato DEX, utilizamos la biblioteca OCaml SHA a través de ocamlfind/findlib, un gestor de bibliotecas de OCaml. La forma más fácil de instalar ambos es usando OPAM, un gestor de paquetes de OCaml, que tiene ambos paquetes: OPAM ocamlfind y OPAM sha.

También puedes compilar y/o instalar ambos paquetes directamente. Si usas una máquina Linux, puedes encontrar fácilmente distribuciones.

Si no, por ejemplo, usando una Mac, necesitas compilarlo por ti mismo. Puedes encontrar los códigos fuente originales aquí. Compílalo ejecutando make, y enlaza el directorio resultante en el directorio root site-lib de ocamlfind; o sudo make install.

Si usas un PC, necesitas instalar ocamlfind/findlib y FlexDLL primero. Asegúrate de que tus variables de entorno estén configuradas correctamente de la siguiente manera:

OCAMLLIB=C:\OCaml\lib
CAML_LD_LIBRARY_PATH=%OCAMLLIB%\stublibs
FLEXLINKFLAGS=-L%MinGW%\lib -L%MinGW%\lib\gcc\mingw32\N.N.N
  • Paquetes OPAM:

    • sha
    • str
    • ppx_deriving
    • ppx_deriving_yojson
    • yojson
  • Android SDK (o fuentes)

Para desempaquetar y reempaquetar archivos apk, usamos apktool, una herramienta de reingeniería de APK de código abierto. Como usa aapt, Android Asset Packaging Tool, necesitas instalar Android SDK o fuentes. Además, usamos zipalign, que también viene de Android SDK, para optimizar aplicaciones reescritas.

Puedes establecer las rutas a las herramientas base de Android agregando lo siguiente a tu perfil:

ANDROID_HOME=$HOME/android-sdk    # tu propia ruta aquí!
export ANDROID_HOME

PATH=$PATH:$ANDROID_HOME/tools
PATH=$PATH:$ANDROID_HOME/platform-tools
PATH=$PATH:$ANDROID_HOME/build-tools/19.0.0    # número de versión instalada
export PATH
  • RubyGems y Nokogiri

Los scripts principales están escritos en Ruby y requieren RubyGems, un gestor de paquetes de Ruby, y Nokogiri, una biblioteca XML para manipular archivos de manifiesto.

  • (opcional) graphviz dot

Si quieres ver gráficos (por ejemplo, grafo de llamadas, grafo de flujo de control, árbol de dominadores, etc.), necesitas instalar graphviz dot.

Compilación

Para compilar redexer, ¡simplemente make! Puedes ver el binario redexer en el nivel superior.

$ make (clean)

Antes de usar la herramienta, la instalación del archivo de plataforma más reciente para apktool depende del usuario. Por ejemplo, necesitas hacer algo como

$ java -jar tools/apktool.jar if [archivo de plataforma adecuado]

También puedes generar documentos de la API en formato html.

$ make api

Uso

  • ayuda

Puedes ver todas las opciones que proporciona la herramienta:

$ ruby scripts/cmd.rb -h
$ ruby scripts/cmd.rb --help
  • volcado (unparse)

Al igual que dexdump en Android SDK, redexer te permite ver el interior del archivo dex dado en formato YAML.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd unparse [--to blah.yml]
  • volcar método (dump method)

Esta opción vuelca instrucciones para un método especificado.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd dump_method --mtd cls.mtd
  • identidad (identity)

Esta característica sirve para probar los módulos de análisis y volcado de redexer. Probablemente genera un archivo dex idéntico.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd id [--to blah.dex]
  • información (info)

También puedes ver estadísticas básicas sobre el archivo dex, por ejemplo, # instr.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd info
  • clases (classes)

Esta opción imprime todos los nombres de clases definidos en el archivo dex.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd classes

Puede ser útil para buscar bibliotecas de terceros específicas, por ejemplo,

$ ruby scripts/cmd.rb target.(apk|dex) --cmd classes | egrep 'apache'
  • api

Esta opción imprime el uso de API en el archivo dex.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd api [--sdk android.]
$ ruby scripts/cmd.rb target.(apk|dex) --cmd api --sdk com.facebook.
  • estadísticas de opcodes

¿No tienes curiosidad de cuán raramente se usan algunos opcodes en los bytecodes de Dalvik? Te mostrará el histograma de todos los opcodes, o puedes buscar con qué frecuencia se usa el opcode exacto en la aplicación dada.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd opstat [--op opcode1,opcode2,...]

Por ejemplo,

$ ruby scripts/cmd.rb ~/apps/top24/com.whatsapp.apk --cmd opstat
$ ruby scripts/cmd.rb ~/apps/top24/com.whatsapp.apk --cmd opstat --op div-int/lit16,nop
  • análisis de resolución de intenciones (Intent resolution analysis)

Esta opción realiza un análisis de resolución de intenciones basado en propagación, e imprime las transiciones entre clases Activity.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd intent
  • grafo de llamadas (call graph)

Esta opción genera un archivo pdf que representa un grafo de llamadas del archivo dado. Si no especificas el nombre del pdf, se usará cg.pdf.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd cg [--to blah.pdf] [--no-pdf]
  • grafo de flujo de control (control-flow graph)

Esta opción genera un archivo pdf que muestra un grafo de flujo de control del método dado. Agrega un nombre de método a un nombre de clase con punto: nombre_clase.nombre_método

$ ruby scripts/cmd.rb target.(apk|dex) --cmd cfg --mtd cls.mtd [--to blah.pdf] [--no-pdf]
  • árbol de dominadores (post) (post) dominator tree

Esta opción es similar a la característica anterior, excepto que representa el árbol de dominadores (post).

$ ruby scripts/cmd.rb target.(apk|dex) --cmd (p)dom --mtd cls.mtd [--to blah.pdf] [--no-pdf]
  • análisis de vivacidad (liveness analysis)

Esta opción realiza un análisis clásico de flujo de datos hacia atrás.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd live --mtd cls.mtd
  • análisis de propagación de constantes (constant-propagation analysis)

Esta opción realiza un análisis clásico de flujo de datos hacia adelante.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd const --mtd cls.mtd
  • análisis de definiciones alcanzadas (reaching definition analysis)
Descargar herramienta