Riferimenti alle stringhe
Nel codice di qualsiasi programma, si incontrano spesso dati a stringa (chiavi di registro, nomi file, messaggi di errore, ecc.). Può essere molto utile visualizzare l'elenco delle stringhe utilizzate da procedure e funzioni in applicazioni decompilate. È esattamente a questo scopo che è progettata la nostra funzione Riferimenti stringa (String references), accessibile tramite il menu Strumenti (Tools). Per utilizzarla, basta navigare su Strumenti -> Riferimenti stringa e, se il programma contiene dati a stringa, questi verranno visualizzati come mostrato di seguito:
Trova la riga desiderata nell'elenco e fai doppio clic su di essa. Verrà localizzato il segmento di codice contenente quella riga e la procedura corrispondente verrà aperta nella finestra del codice. Fare doppio clic nuovamente sulla riga continua la ricerca di questa riga all'interno del codice del programma. Cliccando su 'OK', viene trovata la riga evidenziata nel codice e viene chiusa la finestra di selezione della riga. Annullare chiude semplicemente la finestra di dialogo.
La funzione per visualizzare Riferimenti stringa è disponibile solo nella versione licenziata del software e non è accessibile per la versione Lite.
Nota importante: le stringhe vengono rivelate non solo per il modulo attivo come nelle versioni 1.x del programma, ma per l'intero programma. Questa modifica è stata apportata per facilitare l'analisi di programmi con un gran numero di moduli e form.
VB Decompiler supporta anche la modifica delle stringhe. Per chiamare la finestra di dialogo per la modifica della stringa, fai clic con il pulsante destro del mouse sulla stringa che desideri modificare e seleziona Edita stringa (Edit string) dal menu contestuale che appare. Apparirà una finestra di dialogo per inserire una nuova stringa. Dopo aver modificato la stringa, clicca su Ok e la stringa verrà modificata direttamente nel file editato. Si consiglia di creare un backup del file in esame prima, poiché non viene effettuato alcun backup durante questa azione e l'annullamento di questa operazione non è possibile.
Nota importante: quando si modificano le stringhe, ricorda che la lunghezza della nuova stringa non deve superare quella della vecchia. Questo è legato al formato dei file binari delle applicazioni in cui non viene riservato spazio per inserire una stringa più lunga.
È possibile anche visualizzare e modificare parzialmente la stringa nell'editor HEX. Per fare questo, fai clic con il pulsante destro del mouse sulla stringa e seleziona Editor HEX dal menu che appare. Nell'editor HEX, ci sono funzioni per annullare e ripristinare le modifiche, il che semplifica la sperimentazione quando si modificano i dati a stringa delle applicazioni.
La finestra con l'elenco delle stringhe ha anche un campo di testo chiamato Cerca (Search) e un pulsante Trova successivo (Find next). Questa funzionalità sarà utile per trovare le stringhe all'interno dell'elenco, specialmente quando si trattano progetti grandi in cui la ricerca visiva manuale attraverso l'elenco è estremamente difficile.
Decompilazione rapida e elenchi di stringhe grandi
I riferimenti alle stringhe possono essere raccolti tramite una disassemblaggio preliminare, incluso il modo Decompilazione rapida (Fast decompilation). Questo differisce dalla ricerca di tutto il testo completamente decompilato. La versione 26.2 espande la finestra oltre 32,000 riferimenti e migliora la gestione della memoria per elenchi grandi.
Per gli assembly .NET, le stringhe utente dall’heap #US possono essere ispezionate con le loro posizioni file. L'elenco rappresenta le stringhe disponibili per l'analisi statica; le stringhe crittografate o generate dinamicamente potrebbero richiedere un'indagine separata.
