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
dconstruct — Un desensamblador y decompilador experimental para scripts de TLOU2 DC. | Kitploit
Herramientas/GitHubGitHub/deepquantum/dconstruct
Análisis EstáticoIngeniería InversaDepuradoresAnálisis de BinariosAnálisis de Firmware
GitHubdeepquantum/dconstruct

dconstruct

Un desensamblador y decompilador experimental para scripts de TLOU2 DC.

Ver Repositorio
23217hace 19 díasRevisado 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

Version License: CC BY-NC-ND 4.0

dconstruct

Animación completa de desensamblado y descompilación

Abrir el MP4 fuente

dconstruct es una herramienta de ingeniería inversa para los archivos DC-Script utilizados en The Last of Us Part II. Incluye un desensamblador y un descompilador.

Genera archivos .asm que contienen las estructuras desensambladas y bytecode, así como archivos .dcpl (DC Pseudo Language) que contienen código pseudo similar a C.

También puede realizar ediciones en archivos mediante la línea de comandos, incluyendo reemplazar estructuras completas con poco esfuerzo. Esto hace que crear mods que simplemente cambien un par de valores dentro de los archivos .bin sea extremadamente fácil.

Características principales

  • Optimizado para velocidad. Desensamblar y descompilar archivos es extremadamente rápido.
  • Reconstrucción precisa del código fuente original, especialmente el flujo de control
  • Interpretación automática precisa de todas las estructuras en el desensamblado
  • Desensamblar y descompilar múltiples archivos al mismo tiempo. Descompilar cada archivo .bin del juego solo toma unos segundos
  • Realizar ediciones mediante la bandera -e, creando nuevos archivos que puede usar para mods
  • Cargar sidbases personalizados para usar en el desensamblado

Cómo usar

Primero, se recomienda que mueva el directorio dconstruct descomprimido a una ubicación segura, como C:\Program Files.

Para que dconstruct sea lo más fácil de usar posible, se recomienda que agregue el directorio .\bin dentro de la carpeta dconstruct a su PATH. Puede obtener más información aquí, o seguir estos pasos rápidos:

  • Vaya a la barra de búsqueda de Windows y escriba "variables de entorno", debería aparecer una opción que dice "Editar las variables de entorno del sistema"
  • Después de seleccionar esa opción, debería aparecer una ventana con el título "Propiedades del sistema". Sobre los botones "Aceptar", "Cancelar" y "Aplicar", debería ver un botón que dice "Variables de entorno..."
  • Después de hacer clic en este botón, debería aparecer otra ventana. Aquí, vaya a la segunda tabla (titulada "Variables del sistema") y busque la entrada con el nombre de variable "Path". Haga doble clic en ella.
  • En este cuadro de diálogo, seleccione la opción "Nuevo" a la derecha. Ahora pegue la ruta al directorio .\bin. Debería verse algo así:

a

  • Asegúrese de que su ruta termine en "\bin" y NO en "\dconstruct".

  • Haga clic en 'Aceptar' en todos los cuadros de diálogo abiertos.

  • Para verificar que funcionó, abra un nuevo símbolo del sistema y escriba dconstruct --about. Debería ver alguna salida del programa y ningún mensaje de error.

Ejecute un comando como este en la línea de comandos para generar su primer archivo desensamblado:```shell dconstruct my_bin_file.bin

Esto generará un archivo llamado `my_bin_file.bin.asm` en el mismo directorio que su archivo de entrada. Luego puede abrir ese archivo usando un editor de texto/código. Recomendaría usar algo como VSCode que ofrece funciones de búsqueda avanzada y es bueno para manejar archivos grandes. No se recomienda el Bloc de notas estándar de Windows.

Para descompilar un archivo, agregue la bandera `--decompile` al ejecutar el comando.

# Argumentos de línea de comandos

- `-i` - archivo o carpeta de entrada. Se puede omitir si se pasa la ruta de entrada como primer argumento.

- `-o` - ruta de salida. Si su ruta de entrada es una carpeta, esto no puede ser un archivo. Si no se especifica salida, el archivo .txt se colocará junto al archivo de entrada. Si la entrada es una carpeta y no se especifica salida, el programa creará un directorio "output" en el directorio de trabajo actual y colocará todos los archivos allí.

- La sidbase se carga desde `sidbase.bin` ubicado junto al ejecutable.

- `--no_decompile` - no emite código pseudo descompilado en un archivo .dcpl. El archivo se colocará junto al archivo .asm. Esto es falso por defecto.

- `--no_optimize` - no optimizar y limpiar el código dcpl. Implica la inserción en línea de llamadas a funciones, la eliminación de variables no utilizadas, la transformación de bucles for compatibles en bucles foreach, y la conversión de algunas cadenas if-else en expresiones match.

- `--pascal_case` - convierte los nombres de las funciones del juego a PascalCase en la salida dcpl, por ejemplo get-boolean -> GetBoolean.

- `--graphs` - genera archivos .svg que contienen gráficos de flujo de control para todas las funciones descompiladas. Cada archivo .bin obtiene su propia carpeta que contiene todos sus gráficos. Esto **ralentiza significativamente** la velocidad de descompilación, por lo que no se recomienda al descompilar un gran número de archivos al mismo tiempo.

- `--emit_once` - prohíbe que la misma estructura sea emitida dos veces en el desensamblado. Si una estructura aparece varias veces, solo la primera instancia se emitirá completamente, y todas las demás ocasiones serán reemplazadas por una etiqueta `ALREADY_EMITTED`. Esto puede reducir significativamente el tamaño del archivo.

- `-e` - realizar una edición. Más información en la sección siguiente.

- `--edit_file` - proporcionar un archivo de edición. Un archivo de edición contiene una edición por línea. Utiliza la misma sintaxis que la bandera -e.

# ¿Qué es un desensamblador?

Un [desensamblador](https://en.wikipedia.org/wiki/Disassembler) es una herramienta que lee instrucciones binarias (también conocido como [bytecode](https://en.wikipedia.org/wiki/Bytecode) o [código máquina](https://en.wikipedia.org/wiki/Machine_code)) y traduce cada una a una versión legible por humanos llamada [mnemónico](https://en.wikipedia.org/wiki/Assembly_language#Mnemonics). Los desensambladores generalmente no intentan interpretar mucho sobre el significado de estas instrucciones y simplemente las transforman 1-1 en sus versiones legibles. Por ejemplo, las instrucciones:```arm
15 00 00 00
4A 01 01 00
43 31 01 00
1C 00 00 01

se desmontan en las siguientes versiones legibles por humanos:```arm LookupPointer r0, 0 LoadStaticU64Imm r1, 1 Move r49, r1 CallFf r0, r0, 1

Todos los números en el bytecode están escritos en [hexadecimal](https://en.wikipedia.org/wiki/hexadecimal). La primera columna de cada fila representa el `opcode`, o el tipo de instrucción a ejecutar. La siguiente columna es el registro de destino, donde se almacenará el resultado de la operación. Las últimas dos columnas son los operandos 1 y 2, que son registros o números literales sobre los cuales se realizará la operación. No todas las instrucciones utilizan los 4 bytes, por ejemplo, la primera instrucción `LookupPointer` solo necesita un operando.
Descargar herramienta