dex2jar

Descripción del contenido de dex2jar.

dex2jar contiene los siguientes componentes:

  • dex-reader está diseñado para leer el ejecutable Dalvik en formato (.dex/.odex). Tiene una API liviana similar a ASM.
  • dex-translator está diseñado para realizar tareas de conversión. Lee la instrucción (.dex) al formato (.dex-ir), tras algunas optimizaciones, convierte al formato ASM.
  • dex-ir es utilizado por dex-translator, diseñado para representar la instrucción (.dex).
  • La herramienta dex-tools trabaja con archivos (.class) algunos ejemplos: Modificar una apk, deofuscar un (.jar).
  • d2j-smali [a ser publicado] desarma los archivos (.dex) a archivos smali y ensambla (.dex) desde archivos smali. Una diferente implementación a smali/baksmali, misma sintaxis, soporta escapes en tipos desc “Lcom/dex2jar\t\u1234;”.
  • dex-writer [a ser publicado] escribe (.dex) del mismo modo que dex-reader.
  • Fuente: dex2jar
  • Autor: Panxiaobo
  • Licencia: Apache 2.0

Herramientas incluidas en el paquete de dex2jar.

  • d2j-jar2dex: Convierte (.jar) a (.dex) invocando dx.
  • d2j-jar-remap: Renombra nombres de paquetes/clases/métodos/campos en un (.jar).
  • d2j-dex2jar: Convierte (.dex) a (.jar).
  • dex2jar: El comando está desactualizado, utilizar d2j-dex2jar en lo posible.
  • d2j-jasmin2jar: Ensambla archivos (.j) a archivos (.class).
  • d2j-jar-access: Añade o quita accesos a clases/métodos/campos en un archivos (.jar).
  • d2j-asm-verify: Verifica (.class) en un (.jar).
  • d2j-dex-dump: Vuelca en un (.jar)
  • d2j-init-deofb: Genera un archivo init de configuración para deofuscar un (.jar).
  • d2j-apk-sign: Firma un archivo android (.apk) utilizando un certificado de testeo.
  • d2j-jar2jasmin: Desarma (.class) en un archivo (.jar) a un archivo jasmin.

Modo de uso y comandos auxiliares.

  • d2j-jar2dex [options] <dir>

-f, –force  Forzar la sobre escritura
 -h, –help  Muestra éste mensaje de ayuda
 -o, –output <out-dex-file>  Salida del archivo (.dex), por defecto es $current_dir/[jar-name]-jar2dex.dex
  • d2j-jar-remap [options] jar

-c, –config <config>  Archivo de configuración para remap, es requerido.
 -f, –force  Forzar la sobre escritura.
 -h, –help  Muestra ésta ayuda.
 -o, –output <out-jar>  Salida del archivo (.jar) por defecto es $current_directory/[jar-name]-remap.jar
  • d2j-dex2jar [options] <file0> [file-1………file-n]

-d, –debug-info Traduce la información de la depuración.
 -e, –exception-file <file> Detalla el archivo de excepción, por defecto es $current_dir/[file-name]-error.zip
 -f, –force  Forzar la sobre escritura.
 -h, –help  Muestra ésta ayuda.
 -n, –not-handle-exception No maneja ninguna excepción lanzada por dex2jar.
-o, –output <out-jar-file>  Archivos de salida (.jar), por defecto es $current_dir/[file-name]-dex2jar-jar
 -os, –optimize-synchronized  Optimizar/Sincronizar
 -p, –print-ir  Imprime ir en syste.out
 -r, –reuse-reg  Reutiliza register mientras genera el archivo .class de java
 -s  Lo mismo que –topological-sort/-ts
 -ts, –topological-sort  Ordena  los bloques topologimante, generará código mas legible.
 -v, –verbose  Muestra el progreso.
  • dex2jar

  • d2j-jasmin2jar [options] <dir>

-e, –encoding <enc>  Codifica archivos (.j) – por defecto está en UTF-8.
 -f, –force  Forza la sobre escritura.
 -g, –autogenerate-linenumbers  Autogenera – Números de línea
 -h, –help  Muestra ésta ayuda
 -o, –output <out-jar-file>  Archivo de salida (.jar), por defecto está en $current_dir/[jar-name]-jasmin2jar.jar
  • d2j-jar-access [options] <jar>

-ac, –add-class-access <ACC> Añade acceso desde la clase.
 -af, –add-field-access <ACC>  Añade acceso desde el campo.
 -am, –add-method-access <ACC>  Añade acceso desde el método.
 -f, –force  Forza la sobre escritura.
 -h, –help  Muestra ésta ayuda.
 -o, –output <out-dir>  Directorio de salida para el arhivo (.j), por defecto es $current_dir/[jar-name]-access.jar
 -rc, –remove-class-access <ACC>  Quita  accesso desde la clase.
 -rd, –remove-debug Quita la información de depuración.
 -rf, –remove-field-access <ACC>  Quita acceso desde el campo.
 -rm, –remove-method-access <ACC>  Quita acceso desde el método.
  • d2j-asm-verify [options] <jar0> [jar-1 …….. jar-n]

-d, –detail Muestra el detalle del mensaje de error.
 -h, –help  Muestra ésta ayuda.
  • d2j-inid-deobf [options] <jar>

-f, –force Forza la sobre escritura.
 -h, –help Muestra ésta ayuda.
 -max, –max-length <MAX> Renombra si la longitud es mayor al mínimo, por defecto es 40.
 -min, –min,length <MIN>  Renombra si la longitud es menor al mínimos, por defecto es 2.
 -o, –output <out-file>  Archivo de salida (.jar), por defecto es $current_dir/[file-name]-deobf-init.txt
  • d2j-apk-sign [options] <apk>

-f, –force Forza la sobre escritura.
 -h, –help  Muestra ésta ayuda.
 -o, –output <out-apk-file>  Archivo de salida (.apk), por defecto es $current_dir/[apk-name]-signed.apk
 -w, –sign-whole  Firma la aplicación completa.
  • d2j-jar2jasmin [options] <jar>

-d, –debug Desensambla información de depuración.
 -e, –encoding <ENC>  Codificación de archivos (.j), por defecto esta en UTF-8
 -f, –force  Forza la sobre escritura.
 -h, –help  Muestra ésta ayuda.
 -o, –output <out-dir>  Directorio de salida para archivos (.j), por defecto es $current_dir/[jar-name]-jar2jasmin/