Manuale di VBReFormer Online
Manuale d'uso di VBReFormer Online: rilasciare un eseguibile VB6 nel browser, esplorare il suo codice ricostruito, scaricare un progetto ricaricabile nell'IDE.
Aggiornato il 20/09/202611 capitoli
Lo studio nel vostro browser. Rilasciate un eseguibile Visual Basic 5 o 6, esplorate il suo codice ricostruito e ve ne andate con un archivio che l'IDE VB6 riapre. Niente da installare, su qualsiasi sistema — compresi macOS, Linux e le versioni di Windows troppo vecchie per l'applicazione desktop.
1. Aprire lo studio
Non c'è nulla da installare, nulla da configurare e nessun account da creare per cominciare: aprite l'indirizzo dello studio in un browser recente, e ci siete.
- Qualsiasi sistema — lo studio dipende solo dal browser. È l'unico modo di usare VBReFormer da un Mac, da una macchina Linux o da un Windows precedente a 10.
- Undici lingue — lo studio web è servito in undici lingue, quasi quattro volte più dell'applicazione desktop. Il selettore è nell'intestazione.
- Tema chiaro o scuro — lo studio segue l'impostazione del vostro sistema, e potete forzarla (Chiaro / Scuro).
Français · English · Español · Deutsch · Italiano · Português · 日本語 · 简体中文 · Українська · हिन्दी · العربية
2. Rilasciare un binario
- Spuntate la dichiarazione. Lo studio vi chiede di dichiarare che siete proprietari del programma, o che avete il diritto di analizzarne il codice. È una condizione d'uso, non una formalità.
- Rilasciate il file. Trascinatelo nella zona prevista, oppure sfogliate i vostri file. Formati
accettati:
.exe,.dll,.ocx. Dimensione massima: 64 MB — il limite è mostrato sullo schermo invece di essere scoperto dopo un caricamento fallito. - Lasciate che l'analisi si svolga. Lo studio annuncia ogni tappa con il suo nome, con un contatore: Ricezione del file → Analisi del binario → Decompilazione → Inventario dei simboli → Grafo delle chiamate → Flusso di controllo.
La durata dipende dalla dimensione e dalla natura del binario. Come riferimento, un eseguibile di 9,35 MB passa dall'apertura al progetto scritto in una dozzina di secondi.
Terminata l'analisi, lo studio vi dice anche la natura di ciò che ha trovato: codice nativo, P-code, o natura indeterminata.
3. Che cosa succede al vostro file
Il file viene analizzato, poi cancellato con la vostra sessione. Nulla viene conservato.
È scritto sulla pagina di rilascio, ed è il funzionamento reale: il vostro binario è elaborato per la durata della vostra sessione di lavoro, e scompare con essa. Non viene archiviato, non indicizzato, non riutilizzato.
Ciò che questo implica anche. Il vostro lavoro non sopravvive alla sessione. Se chiudete la scheda o se la sessione scade, bisogna rilasciare di nuovo il binario. Scaricate il vostro archivio prima di andarvene. Anche un riavvio del servizio disconnette le sessioni in corso — senza rischio per il vostro file originale, che è sulla vostra macchina, ma perderete l'esplorazione in corso.
Se la riservatezza del vostro binario è una questione contrattuale, sappiate che l'edizione Desktop elabora localmente tutto ciò che riguarda la lettura del file — formato, byte, disassemblato, risorse — e invia al servizio solo ciò che riguarda la ricostruzione.
4. Quattro modi per entrare in un binario
Il pannello di sinistra offre quattro ingressi, e rispondono a quattro domande diverse.
| scheda | la domanda a cui risponde |
|---|---|
| Progetto | «Com'è organizzato questo programma?» — l'albero dei form, delle classi, dei moduli e delle loro procedure, così come lo vedeva VB6. |
| Simboli | «Dov'è definito questo?» — l'inventario completo, con la natura e il contenitore di ogni simbolo. Distingue i nomi letti dai nomi sintetizzati, il che vi dice subito di che cosa potete fidarvi. |
| Ricerca | «Dove compare questo testo?» — nel codice ricostruito come nelle sezioni del designer. |
| Risorse | «Che cos'altro c'è oltre al codice?» — icone, cursori, bitmap, tabelle di stringhe, informazioni di versione, con il loro tipo, la loro dimensione e il loro contenuto. Servita senza licenza: una risorsa si legge, non si ricostruisce. |
Nell'albero, ogni membro porta la sua visibilità così come il binario la dichiara — (Public),
(Private), (Friend). Un membro la cui visibilità non è stata letta non porta alcun segno: non si
scrive ciò che non si sa.
Rinominare
Lo studio web permette di rinominare i simboli, e la rinomina è globale: i punti di chiamata degli altri moduli seguono. È il gesto centrale del lavoro su un binario — il decompilatore vi restituisce la logica, voi gli restituite i nomi.
5. Le viste
Sette viste, e lo studio stesso dice, sotto ciascuna, che cosa mostra e se richiede una licenza.
| vista | che cosa mostra | licenza |
|---|---|---|
| Sorgente | il codice VB6 ricostruito | anteprima senza licenza |
| IR | ciò che il decompilatore vede prima di ricostruire il flusso | anteprima senza licenza |
| Assembly | codice macchina x86, simboli risolti | servita per intero |
| P-code | opcode della macchina virtuale VB6 | servita per intero |
| Designer | la sezione designer del form | servita per intero |
| Progetto | il .vbp ricostruito |
servita per intero |
| Struttura | le strutture del formato così come sono state lette | servita per intero |
La linea che separa. Ciò che si legge nel vostro file è gratuito; ciò che si ricostruisce è a pagamento. Il disassemblato, la struttura, il designer e il
.vbpsono tratti da tabelle presenti nel vostro eseguibile. Il sorgente VB6, invece, non esiste da nessuna parte — bisogna ricostruirlo, e questo lavoro è il prodotto.
Sotto il codice, lo studio mostra anche ciò che il decompilatore segnala per la procedura corrente: le diagnostiche, cioè ciò che non ha potuto fare e perché. È il riflesso da avere non appena un risultato sorprende.
6. Che cosa la compilazione conserva, e che cosa getta via
Questo capitolo spiega perché i vostri form tornano molto leggibili e i vostri moduli .bas con nomi
tecnici. La regola è semplice:
Ciò di cui Visual Basic ha bisogno durante l'esecuzione, lo ha scritto nel file: VBReFormer lo ritrova. Ciò di cui non aveva più bisogno dopo la compilazione, lo ha gettato via — e nessuno può ritrovarlo.
Ciò che sopravvive: nomi di form, classi e moduli · nomi dei controlli · gestori di eventi · membri pubblici delle classi · proprietà d'interfaccia · chiamate al runtime VB (635 funzioni) · API Win32 (15 680 firme) · la struttura del codice · le stringhe.
Ciò che non è nel file: i commenti · i nomi delle variabili locali · i nomi dei parametri · le
costanti con nome, sostituite dal loro valore · i nomi delle procedure dei moduli .bas ·
l'indentazione originale.
Un esempio verificabile
L'estratto seguente proviene da SETUP1.EXE, la procedura guidata d'installazione fornita con Visual Basic 6 — di cui Microsoft distribuisce il codice sorgente. Il confronto è quindi rifacibile da chiunque possieda VB6.
Sorgente originale, COMMON.BAS:
Sub AddDirSep(strPathName As String)
If Right(Trim(strPathName), Len(gstrSEP_URLDIR)) <> gstrSEP_URLDIR And _
Right(Trim(strPathName), Len(gstrSEP_DIR)) <> gstrSEP_DIR Then
strPathName = RTrim$(strPathName) & gstrSEP_DIR
End If
End Sub
Reso da VBReFormer:
Public Sub proc_42C506(ByRef arg_8 As String)
If ((Right(Trim(arg_8), Len("/")) <> "/") And (Right(Trim(arg_8), Len("\")) <> "\")) <> 0 Then
arg_8 = (RTrim$(arg_8) & "\")
End If
End Sub
Logica identica, riga per riga. Right, Trim, Len, RTrim$ hanno il loro nome; il passaggio
ByRef è dedotto. Invece il nome della procedura e quello del parametro sono persi, e le costanti
compaiono con il loro valore — è il compilatore che le ha sostituite, non VBReFormer.
I marcatori
VBReFormer non indovina mai: un valore che non può essere stabilito viene marcato invece che inventato.
| marcatore | significato | che cosa fare |
|---|---|---|
proc_42C506 |
procedura designata dal suo indirizzo | rinominarla — il nome si propaga |
var_18, arg_8 |
variabile locale o parametro | leggerne l'uso, poi rinominare |
? |
valore non stabilito | consultare la vista Assembly nello stesso punto |
Un file che contiene un
?sarà rifiutato dall'IDE VB6. Il marcatore è lì perché decidiate voi, non per essere ricompilato così com'è. Un valore verosimile e falso è il peggior risultato che un decompilatore possa produrre.
7. I grafi
Due grafi, e non raccontano la stessa storia.
- Chiamate — chi chiama che cosa: l'architettura del programma. Filtri Chiamanti, Chiamati o Entrambi, e un'opzione per nascondere i nodi isolati.
- Flusso — da dove passa l'esecuzione: i blocchi, l'ingresso, le intestazioni dei cicli, i ritorni di ciclo e i blocchi marcati IRRAGGIUNGIBILE.
Cinque modi di leggere un blocco
Selezionate un blocco del grafo e scegliete che cosa volete vederci: Forma, IR, VB6, Assembly o P-code. È la stessa porzione di programma, a cinque livelli di lettura.
L'onestà della resa. Lo studio indica quanti blocchi sono ancorati alle righe del listato, e quanti sono senza indirizzo provato — le loro istruzioni cadono allora nella fascia precedente. Sapete quindi quale parte della suddivisione è certa.
I grafi richiedono una licenza: chi chiama che cosa e da dove passa l'esecuzione è l'architettura del programma. Il disassemblato e la struttura restano aperti senza.
8. L'anteprima e la licenza
Senza licenza, la vista Sorgente non vi è rifiutata: viene mostrata parzialmente mascherata. Vedete la struttura, i nomi ritrovati e la qualità reale della ricostruzione — sul vostro stesso binario — prima di pagare qualunque cosa.
È una scelta deliberata: un visitatore che non vede nulla non può giudicare. E se un abbonamento scade, vedete ciò che ritrovereste invece di una porta chiusa.
Una postazione alla volta
Una licenza VBReFormer apre una postazione alla volta — e un browser conta come una postazione. Se la vostra lavora altrove, lo studio vi propone di trasferirla qui dal vostro account, oppure di aggiungere una postazione. È un rifiuto morbido: avete pagato, non vi manca nulla.
9. Scaricare i vostri sorgenti
Il pannello di consegna produce un archivio .zip contenente il .vbp e i suoi file — .bas,
.cls, .frm — scritti in ANSI, come l'IDE li attende. Il pannello annuncia il numero di file e
il peso prima del download.
Leggete le note prima di aprire il progetto
Lo studio mostra «Ciò che non si è potuto ricostruire», con un perché per ogni voce. Alcune informazioni — i riferimenti esterni, le opzioni di compilazione, la modalità di avvio — non sono in alcuna struttura del binario: non sono state cancellate, non ci sono mai state. Vengono quindi segnalate invece che inventate.
Nell'IDE, se manca un riferimento, aggiungetelo da Progetto ▸ Riferimenti. Gli eventuali marcatori
? sono da trattare a mano.
Il pannello propone poi di analizzare un altro binario: la sessione riparte da zero, e il file precedente viene cancellato.
10. Online o Desktop?
Le due edizioni condividono lo stesso motore e restituiscono lo stesso codice. Non servono allo stesso uso.
| Online | Desktop | |
|---|---|---|
| Installazione | nessuna | MSI, Windows 10+ |
| Sistemi | tutti | Windows 10 e 11 |
| Lingue dell'interfaccia | 11 | 3 |
| Albero, simboli, ricerca, rinomina | ✔ | ✔ |
| Le sette viste | ✔ | ✔ |
| Grafi delle chiamate e del flusso | ✔ | ✔ |
| Esportazione del progetto | ✔ (zip) | ✔ (cartella) |
| Vista esadecimale annotata | ✘ | ✔ |
| Risorse: inventario e contenuto | ✔ | ✔ |
| Risorse: estrazione in file | ✘ | ✔ |
| Designer disegnato, esportazione dell'immagine | ✘ (sezione solo in testo) | ✔ |
| Patch binarie | ✘ | ✔ |
| Riferimenti incrociati | ✘ | ✔ |
| Object Browser, API Browser | ✘ | ✔ |
| Segnalibri, opzioni di resa | ✘ | ✔ |
| Il lavoro sopravvive alla sessione | ✘ | ✔ |
| Fatturazione | crediti | abbonamento |
In sintesi — Online per aprire un binario, capire che cosa fa e andarsene con i sorgenti. Desktop per lavorare a lungo su un binario: byte, risorse, riferimenti incrociati, patch, e un lavoro che non scompare quando si chiude la scheda.
11. Domande frequenti
Il mio binario viene conservato? No. Viene analizzato e poi cancellato con la vostra sessione. Vedere il capitolo 3.
Il mio file supera i 64 MB. È il limite dello studio, annunciato prima del rilascio. Per un binario più grande, l'edizione Desktop non ha questo vincolo di caricamento.
Dove sono le risorse del binario? Nella scheda Risorse, a sinistra — senza licenza. Vi vedete ogni voce con il suo tipo e la sua dimensione, e il suo contenuto quando la aprite: l'immagine viene disegnata, il testo mostrato, e il resto presentato in byte invece che nascosto. L'estrazione in file, invece, è propria dell'edizione Desktop, come la vista esadecimale.
Perché il codice si ferma a metà di una procedura? È l'anteprima: senza licenza, l'edizione gratuita mostra la struttura, i nomi e il disassemblato completo, ma il corpo ricostruito richiede una licenza.
Ho chiuso la scheda e ho perso tutto. Il lavoro non sopravvive alla sessione. Scaricate l'archivio prima di andarvene; il binario, invece, è ancora sulla vostra macchina.
Il codice esportato si ricompila così com'è? Spesso: su un banco di 149 progetti, 121 si ricompilano senza ritocchi. Gli altri richiedono di aggiungere un riferimento o di trattare alcuni marcatori.
Il mio eseguibile è compresso (packer). Deve essere decompresso prima, altrimenti le strutture VB6 non sono visibili nel file.
È legale? Dipende dalla vostra giurisdizione e dai vostri diritti sul binario — è il senso della dichiarazione spuntata al rilascio. L'uso previsto è il recupero del vostro codice, o di un codice sul quale detenete i diritti o un'autorizzazione.
Vedi anche
Manuale di VBReFormer DesktopProva senza acquistare