PE Explorer Disassemblatore
Il disassemblatore integrato in PE Explorer è progettato per essere facile da usare rispetto ad altri disassemblatori. A tal fine, alcune delle funzionalità presenti in altri prodotti sono state omesse al fine di mantenere il processo semplice, veloce e facile da utilizzare.
Il disassemblatore (accessibile con Ctrl+M o dal menu 'Tools' → 'Disassembler') si apre in una finestra separata, che si sovrappone all'interfaccia principale e può essere richiamata in qualsiasi momento.
Il disassemblatore presume che potrebbe essere necessaria qualche modifica manuale del codice riprodotto. Per agevolare l'aggiunta di codice a mano, il disassemblatore utilizza un algoritmo qualitativo progettato per ricostruire il codice sorgente in linguaggio assembly dei file di destinazione con il massimo livello di precisione possibile. Pur essendo potente come i disassemblatori dedicati più costosi, PE Explorer si concentra sull'usabilità, chiarezza e navigazione. Abbiamo creato un buon disassemblatore a un prezzo ragionevole. Ti permetterà di risparmiare ore di tempo ed è facile da utilizzare!
Prima dell'avvio del processo di disassemblaggio, viene mostrata una finestra delle Opzioni ('View' → 'Disassembler Options') dove è possibile selezionare il set di istruzioni da usare.

L'opzione Auto Rescan selezionata e il valore di Auto Rescan Count sono impostati di default e sono adeguati, ma per binari complicati, potrebbe essere necessario aumentare il numero di passaggi. Anche il numero di opcode mostrati per linea può essere personalizzato.
Una volta premuto 'Start Now', il disassemblatore cerca di identificare il compilatore utilizzato per creare il file. Questa informazione è utile per riconoscere schemi ricorrenti nel codice e identificare procedure, variabili e tipi con maggiore precisione.
Attualmente, PE Explorer è in grado di riconoscere solo compilatori Borland/Embarcadero, anche se il disassemblatore funziona anche con file generati da altri compilatori. In quei casi, tuttavia, l'identificazione di elementi specifici sarà limitata.
Durante l'elaborazione, la finestra Processing Info mostra lo stato e i dettagli del processo:

Per file di grandi dimensioni (oltre 1 MB), il disassemblaggio può richiedere alcuni minuti, a seconda della potenza del sistema. Ogni byte del file può richiedere fino a 40 byte di memoria durante l'elaborazione.
Completato il processo, si apre la finestra del Disassemblatore. L'output assembly è visibile in alto a sinistra. Puoi regolare la spaziatura tra le righe (tasti 'Ins' e 'Del') e il numero di opcode per riga ('Shift + Ins' e 'Shift + Del').

Il codice risultante può essere modificato a mano oppure salvato per usi futuri. La navigazione all'interno del codice è semplice: usa 'Invio' per seguire i salti, 'Ctrl + Invio' per i salti condizionati, 'Esc' per tornare indietro. Per visitare un indirizzo specifico, premi 'Ctrl + G' e inserisci l'indirizzo nel formato esadecimale.
Per elencare le subroutine che potrebbero avere riferimenti, seleziona l'indirizzo di inizio della procedura e premi 'R' o accedi a 'Search' → 'References'. Una finestra popup mostrerà l'elenco degli indirizzi referenziati, che puoi esaminare facendo doppio clic su ciascun indirizzo nella lista. Questa funzione aiuta a esplorare ed analizzare efficientemente i riferimenti alle subroutine nel codice disassemblato.
La colonna a destra elenca indirizzi etichettati (compresi i punti di destinazione per salti condizionali e incondizionali, prologhi di funzioni, dati denominati e riferimenti a stringhe) fatti dal disassemblatore, con il punto di ingresso chiaramente indicato. Le etichette possono essere rinominate con il tasto 'N' ('Edit' → 'Rename Label').
Le schede "View 1" – "View 4" (accessibili con F6–F9, rispettivamente) nell'angolo in basso a sinistra permettono di aprire più viste del disassemblaggio in parallelo, indipendenti dalla vista principale.
Nella scheda "Strings" trovi le stringhe individuate nel file. Hai la possibilità di manipolare il rilevamento delle stringhe utilizzando la barra degli strumenti o le voci di menu. Ad esempio, puoi contrassegnare le stringhe come "String", "Pascal String", "Long Pascal String" o "Unicode" facendo clic sulle opzioni corrispondenti nella barra degli strumenti o premendo rispettivamente 'S', 'A', 'L' o 'U'. Queste funzioni offrono potenti strumenti per gestire ed analizzare efficacemente le stringhe all'interno del codice disassemblato.
Analizzare le stringhe può offrire indizi utili sulle funzionalità di un programma. PE Explorer consente di estrarre stringhe contenenti messaggi, URL o altri dati che possono rivelare informazioni sulle funzioni chiamate dal binario.
Puoi contrassegnare manualmente sezioni di codice con 'C', doppie parole (Dword) con 'D', offset con 'O' e inserire commenti con ';'. Ciò ti consente di includere note esplicative o annotazioni all'interno del codice disassemblato per riferimenti futuri o per la collaborazione con altre persone.
La scheda "Unprocessed Data" mostra blocchi di dati che non hanno collegamenti a procedure.
Il disassemblatore privilegia la precisione, anche a costo di tempi di elaborazione più lunghi. Questo riduce il bisogno di correzioni manuali, risparmiando tempo nel complesso.
Limitazioni conosciute
Il disassemblatore non genera codice ricompilabile così com'è. Alcune sezioni, come quelle con dimensione fisica zero o dati esterni alla sezione stessa, non possono essere interpretate con precisione. Queste parti vengono contrassegnate come `[DB Count DUP (??)]` e non ricevono etichette.
Tali sezioni derivano spesso da allocazioni dinamiche gestite male o lasciate al compilatore/OS, come nel caso di ad esempio (in Pascal):
Var MyData: Array [WORD] of Byte;
In questo scenario, la memoria non viene fisicamente riservata nel file ma solo definita come spazio virtuale, causando un aumento della dimensione virtuale della sezione.
Per evitare che l'uso di memoria cresca in modo eccessivo, PE Explorer esclude queste sezioni dal disassemblaggio. Altrimenti, ogni byte di dati potrebbe richiedere fino a 40 byte di memoria per l'elaborazione.
Inizia la prova gratuita di 30 giorni
Scarica PE Explorer e inizia subito a esplorare le tue applicazioni.
PE Explorer funziona su tutte le versioni di Windows, da Windows 95 all'ultima versione di Windows 11.