Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
dconstruct — Un disassemblatore e decompilatore sperimentale per script TLOU2 DC. | Kitploit
Strumenti/GitHubGitHub/deepquantum/dconstruct
Analisi StaticaReverse EngineeringDebuggerAnalisi di BinariAnalisi del Firmware
GitHubdeepquantum/dconstruct

dconstruct

Un disassemblatore e decompilatore sperimentale per script TLOU2 DC.

Vedi Repository
232291 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Versione Licenza: CC BY-NC-ND 4.0

dconstruct

Animazione di disassemblaggio e decompilazione completa

Apri il file MP4 sorgente

dconstruct è uno strumento di reverse engineering per i file DC-Script utilizzati in The Last of Us Parte II. Dispone di un disassemblatore e di un decompilatore.

Produce file .asm contenenti le strutture disassemblate e il bytecode, oltre a file .dcpl (DC Pseudo Language) contenenti pseudo-codice simile al C.

Puoi anche apportare modifiche ai file tramite la riga di comando, inclusa la sostituzione di intere strutture con poco sforzo. Ciò rende estremamente semplice la creazione di mod che modificano semplicemente un paio di valori all'interno dei file .bin.

Caratteristiche principali

  • Ottimizzato per la velocità. Disassemblare e decompilare i file è estremamente veloce.
  • Ricostruzione accurata del codice sorgente originale, specialmente il flusso di controllo
  • Interpretazione automatica accurata di tutte le strutture nel disassemblaggio
  • Disassemblare e decompilare più file contemporaneamente. Decompilare ogni singolo file .bin nel gioco richiede solo un paio di secondi
  • Apportare modifiche tramite il flag -e, creando nuovi file che puoi utilizzare per le mod
  • Caricare sidbase personalizzati da utilizzare per il disassemblaggio

Come usare

Prima di tutto, si consiglia di spostare la directory dconstruct decompressa in una posizione sicura, ad esempio C:\Program Files.

Per rendere dconstruct il più facile possibile da usare, si consiglia di aggiungere la directory .\bin all'interno della cartella dconstruct al tuo PATH. Puoi scoprire di più qui, oppure seguire questi rapidi passaggi:

  • Vai nella barra di ricerca di Windows e digita 'variabili d'ambiente', dovresti ottenere un'opzione che dice 'Modifica le variabili d'ambiente di sistema'
  • Dopo aver selezionato questa opzione, dovresti ottenere una finestra con il titolo 'Proprietà del sistema'. Sopra i pulsanti 'Ok', 'Annulla' e 'Applica', dovresti vedere un pulsante che dice 'Variabili d'ambiente...'
  • Dopo aver cliccato questo pulsante, dovrebbe apparire un'altra finestra. Qui, vai nella seconda tabella (intitolata 'Variabili di sistema') e trova la voce con il nome della variabile 'Path'. Fai doppio clic.
  • In questa finestra di dialogo, seleziona l'opzione 'Nuovo' a destra. Ora incolla il percorso della directory .\bin. Dovrebbe apparire qualcosa del genere:

a

  • Assicurati che il percorso termini con '\bin' e NON con '\dconstruct'.

  • Fai clic su 'OK' su tutte le finestre di dialogo aperte.

  • Per verificare che abbia funzionato, apri un nuovo prompt dei comandi e digita dconstruct --about. Dovresti vedere un output dal programma e nessun messaggio di errore.

Esegui un comando come questo nella riga di comando per generare il tuo primo file disassemblato:```shell dconstruct my_bin_file.bin

Questo produrrà un file chiamato `my_bin_file.bin.asm` nella stessa directory del file di input. Puoi quindi aprire quel file con un editor di testo/codice. Raccomando di usare qualcosa come VSCode, che offre funzionalità avanzate di ricerca ed è adatto a gestire file di grandi dimensioni. Il Blocco note standard di Windows non è consigliato.

Per decompilare un file, aggiungi il flag `--decompile` quando esegui il comando.

# Argomenti della riga di comando

- `-i` - file o cartella di input. Può essere omesso se si passa il percorso di input come primo argomento.

- `-o` - percorso di output. Se il percorso di input è una cartella, questo non può essere un file. Se non viene specificato alcun output, il file .txt verrà posizionato accanto al file di input. Se l'input è una cartella e nessun output è specificato, il programma creerà una directory "output" nella directory di lavoro corrente e metterà tutti i file lì.

- Il sidbase viene caricato da `sidbase.bin` situato accanto all'eseguibile.

- `--no_decompile` - non emettere pseudo codice decompilato in un file .dcpl. Il file verrà posizionato accanto al file .asm. Questo è falso per impostazione predefinita.

- `--no_optimize` - non ottimizzare e pulire il codice dcpl. Implica l'inlining delle chiamate di funzione, la rimozione di variabili inutilizzate, la trasformazione di cicli for compatibili in cicli foreach e la conversione di alcune catene if-else in espressioni match.

- `--pascal_case` - convertire i nomi delle funzioni dei giochi in pascal case nell'output dcpl, ad esempio get-boolean -> GetBoolean.

- `--graphs` - emettere file .svg contenenti i grafi di flusso di controllo per tutte le funzioni decompilate. Ogni file .bin ottiene la propria cartella contenente tutti i suoi grafi. Questo **rallenta significativamente** la velocità di decompilazione, quindi non è consigliato quando si decompila un gran numero di file contemporaneamente.

- `--emit_once` - impedisce che la stessa struttura venga emessa due volte nel disassemblaggio. Se una struttura appare più volte, solo la prima istanza verrà completamente emessa, e tutte le altre occorrenze saranno sostituite da un tag `ALREADY_EMITTED`. Questo può ridurre significativamente la dimensione del file.

- `-e` - effettuare una modifica. Maggiori informazioni nella sezione seguente.

- `--edit_file` - fornire un file di modifica. Un file di modifica contiene una modifica per riga. Utilizza la stessa sintassi del flag -e.

# Cos'è un disassemblatore?

Un [disassemblatore](https://en.wikipedia.org/wiki/Disassembler) è uno strumento che legge istruzioni binarie (note anche come [bytecode](https://en.wikipedia.org/wiki/Bytecode) o [codice macchina](https://en.wikipedia.org/wiki/Machine_code)) e traduce ciascuna in una versione leggibile dall'uomo chiamata [mnemonico](https://en.wikipedia.org/wiki/Assembly_language#Mnemonics). I disassemblatori generalmente non cercano di interpretare molto il significato di queste istruzioni e le trasformano semplicemente 1-1 nelle loro versioni leggibili. Ad esempio, le istruzioni:```arm
15 00 00 00
4A 01 01 00
43 31 01 00
1C 00 00 01

vengono disassemblate nelle seguenti versioni leggibili dall'uomo:```arm LookupPointer r0, 0 LoadStaticU64Imm r1, 1 Move r49, r1 CallFf r0, r0, 1

Tutti i numeri nel bytecode sono scritti in [esadecimale](https://en.wikipedia.org/wiki/hexadecimal). La prima colonna in ogni riga rappresenta l'`opcode`, ovvero il tipo di istruzione da eseguire. La colonna successiva è il registro di destinazione, dove verrà memorizzato il risultato dell'operazione. Le ultime due colonne sono gli operandi 1 e 2, che sono registri o numeri letterali su cui verrà eseguita l'operazione. Non tutte le istruzioni utilizzano tutti e 4 i byte; ad esempio, la prima istruzione `LookupPointer` richiede un solo operando.
Scarica lo strumento