Hai perso il codice sorgente di un'applicazione VB6. Ecco cosa si può recuperare.
Disco morto, sviluppatore sparito, backup di una versione troppo vecchia: resta solo il programma compilato. Un decompilatore VB6 ne ricava molto più di quanto si creda, e meno di tutto. Questa pagina dice cosa, prima che tu installi qualsiasi cosa.
Vi trovate in uno di questi casi?
Il disco si è rotto
Il computer di sviluppo non c'è più, ma l'EXE gira ancora presso i vostri utenti.
Lo sviluppatore se n'è andato
Ha portato via il progetto, o nessuno sa dove l'avesse messo.
Il fornitore è scomparso
La società che ha scritto l'applicazione non esiste più e il sorgente non è mai stato consegnato.
Il backup è troppo vecchio
Il sorgente ritrovato non corrisponde più alla versione in produzione.
Cosa serve
Il file compilato: un .exe, una .dll, un .ocx o uno .scr prodotto da Visual Basic 5 o 6. Nient'altro. Non serve sapere se è stato compilato in P-Code o in codice nativo: VBReFormer lo rileva e gestisce entrambi.
- Decompilazione del P-Code, VB5 e VB6
- Decompilazione del codice nativo x86, VB5 e VB6
- Binari compressi con UPX: decompressi senza essere eseguiti
- Poi ASPack, MPRESS e PECompact In arrivo
Cosa torna
Form e controlli, con tutte le proprietà, immagini comprese: per intero, in ogni caso.
Risorse, stringhe, riferimenti a librerie e controlli di terze parti, struttura del progetto: un .vbp che si riapre nell'IDE.
Il codice delle procedure: condizioni, cicli, chiamate, assegnazioni, accessi ai controlli, ricostruiti in Visual Basic leggibile, P-Code e nativo. La pagina di copertura misura quanto vale, programma per programma.
80%
dei progetti si ricompila in VB6 senza ritocchi
1.158 / 1.164
istruzioni P-Code definite tradotte in Visual Basic
100%
dei form e delle loro proprietà recuperati, in ogni caso
Ciò che non torna mai, da noi come da chiunque: i nomi delle variabili locali e i commenti, che il compilatore non ha conservato. Il codice recuperato si legge e si ricompila; non coincide parola per parola con l'originale.
SETUP1.EXE
Verificabile da chiunque: SETUP1.EXE
Un programma di Microsoft il cui sorgente è fornito con VB6: chiunque può confrontare.
136 → 227
procedure esportate, dalla generazione 1 alla V7
22 / 24
procedure estratte a sorte e lette contro il sorgente: la V7 più fedele
Una volta recuperato il progetto
Torna a essere un progetto come gli altri: lo riaprite, lo leggete e lo mantenete nell'IDE originale.
- Correggere un bug o adattare una regola di business, poi ricompilare
- Leggere il codice macchina con i disassembler x86 e P-Code, inclusi in Standard
- Seguire il programma da un capo all'altro con il grafo delle chiamate e i riferimenti incrociati, in Professional
- Documentare un'applicazione che nessuno conosceva più per intero
Come procedere, prima gratis
- 1
Apri il binario nell'edizione gratuita, o caricalo nello studio online senza installare nulla. Vedi la struttura del progetto, i form completi e un'anteprima del codice decompilato.
- 2
Giudica sui fatti: l'anteprima mostra ciò che il motore ricostruisce dal tuo binario, non da un esempio. Se ciò che vedi vale la licenza, prendila; altrimenti non hai speso nulla.
- 3
Con la licenza, esportate il progetto completo e riapritelo in Visual Basic 6: circa l'80% dei progetti si ricompila senza ritocchi. Un valore che il binario non permette di stabilire diventa una chiamata a VBRF_ValeurInconnue(), che si ritrova con una ricerca.
L'articolo dettagliato: distinguere P-Code e nativo, e da dove iniziare
Quanto costa
Provare non costa nulla. Pagate solo se ciò che vedete sul vostro binario vi convince.
Edizione gratuita
Form completi, struttura del progetto e anteprima del codice
0 €
Standard
Recuperare il tuo codice sorgente
79 € per utente
Professional
Standard, più gli strumenti di analisi
229 € per utente
Domande frequenti
Qual è la differenza tra P-Code e Native Code?
VB6 compila in P-Code (pseudocodice eseguito dalla macchina virtuale) oppure in Codice Nativo (istruzioni macchina x86, l'impostazione predefinita). Dalla generazione 2 (VBReFormer 7) lo stesso motore decompila entrambi in Visual Basic leggibile: 1.158 delle 1.164 istruzioni P-Code definite sono tradotte, misura pubblicata nella pagina di copertura. La generazione precedente ricostruiva solo il Codice Nativo.
Cosa si recupera da un eseguibile e cosa si perde per sempre?
Ciò di cui Visual Basic ha bisogno in esecuzione è nel file e si ritrova: nomi di form, classi, moduli e controlli, gestori di eventi, membri pubblici delle classi, proprietà dell'interfaccia, chiamate al runtime, dichiarazioni di API. Ciò che il compilatore ha scartato non si recupera, con nessuno strumento: i commenti, i nomi delle variabili locali e dei parametri, le costanti con nome sostituite dal loro valore e i nomi delle procedure dei moduli .bas. In media si recupera il 90 % del codice sorgente; ciò che manca dipende da questi elementi, assenti dal file.
Il codice decompilato si ricompila nell'IDE Visual Basic 6?
Sì: in pratica, circa l'80% dei progetti si ricompila senza ritocchi. L'esportazione scrive le intestazioni richieste dall'IDE (VERSION, Attribute VB_Name), senza le quali VB6 rifiuta il file. Un valore che non è stato possibile stabilire non viene mai inventato: diventa una chiamata a VBRF_ValeurInconnue(), che VB6 accetta e che si ritrova con una ricerca. Ciò che non è nel binario è indicato e motivato nelle note di esportazione.
E se la decompilazione non funziona sul mio binario?
È esattamente a questo che serve l'edizione gratuita: ti mostra, sul TUO file e prima di qualsiasi acquisto, che cosa è possibile estrarre — form, risorse, struttura del progetto. Consigliamo sempre di provarla prima. Poiché le licenze sono contenuti digitali consegnati immediatamente, la vendita è definitiva; in caso di problema tecnico, il nostro supporto cercherà con te una soluzione.
Il mio file viene conservato?
Il vostro binario non viene conservato: è analizzato, poi cancellato con la sessione
È legale decompilare un programma?
Sì, quando si detengono i diritti del software — il caso tipico è la ricostruzione del proprio codice sorgente perduto — o nel quadro legale dell'interoperabilità.
VBReFormer decompila .NET, VB.NET o C#?
No. VBReFormer tratta Visual Basic 5 e 6: .exe, .dll, .ocx e .scr. Un assembly .NET richiede un decompilatore .NET; ne confrontiamo diversi sul blog.
Preferisci che lo facciamo noi?
Recuperiamo il progetto dal tuo binario, lo riapriamo nell'IDE e te lo consegniamo pronto da manutenere, con un rapporto di quanto ritrovato. Valutazione gratuita del binario prima di ogni preventivo.
Chiedi una valutazione gratuita
