Você perdeu o código-fonte de um aplicativo VB6. Veja o que pode ser recuperado.
Disco morto, desenvolvedor que foi embora, backup de uma versão antiga demais: só restou o programa compilado. Um descompilador VB6 extrai dele muito mais do que se espera, e menos do que tudo. Esta página diz o quê, antes que você instale qualquer coisa.
Está numa destas situações?
O disco avariou
O computador de desenvolvimento morreu, mas o EXE continua a funcionar nos seus utilizadores.
O programador saiu
Levou o projeto, ou ninguém sabe onde o guardava.
O fornecedor desapareceu
A empresa que escreveu a aplicação já não existe e o código-fonte nunca foi entregue.
A cópia de segurança é demasiado antiga
O código-fonte encontrado já não corresponde à versão em produção.
O que você precisa
O ficheiro compilado: um .exe, .dll, .ocx ou .scr produzido pelo Visual Basic 5 ou 6. Nada mais. Não precisa de saber se foi compilado em P-Code ou em código nativo: o VBReFormer deteta-o e trata ambos.
- Descompilação do P-Code, VB5 e VB6
- Descompilação do código nativo x86, VB5 e VB6
- Binários compactados com UPX: descompactados sem serem executados
- Depois, ASPack, MPRESS e PECompact Em breve
O que volta
Formulários e controles, com todas as suas propriedades, imagens incluídas: por completo, em todos os casos.
Recursos, strings, referências a bibliotecas e controles de terceiros, a estrutura do projeto: um .vbp que reabre no IDE.
O código dos procedimentos: condições, loops, chamadas, atribuições, acesso a controles, reconstruído como Visual Basic legível, tanto em P-Code quanto em nativo. A página de cobertura mede o que isso representa, programa por programa.
80%
dos projetos recompilam no VB6 sem retoques
1.158 / 1.164
instruções P-Code definidas traduzidas para Visual Basic
100%
dos formulários e das suas propriedades recuperados, em todos os casos
O que nunca volta, conosco ou com qualquer outro: os nomes das variáveis locais e os comentários, que o compilador não guardou. O código recuperado é legível e recompila; ele não corresponde ao original palavra por palavra.
SETUP1.EXE
Verificável por qualquer um: SETUP1.EXE
Um programa da Microsoft cujo código-fonte acompanha o VB6: qualquer um pode comparar.
136 → 227
procedimentos exportados, da geração 1 à V7
22 / 24
procedimentos sorteados e lidos contra a fonte: a V7 mais fiel
Depois de recuperar o projeto
Volta a ser um projeto como qualquer outro: reabre-o, lê-o e mantém-no no IDE original.
- Corrigir um erro ou ajustar uma regra de negócio e recompilar
- Ler o código máquina com os desassembladores x86 e P-Code, incluídos no Standard
- Seguir o programa de ponta a ponta com o grafo de chamadas e as referências cruzadas, no Professional
- Documentar uma aplicação que já ninguém conhecia por inteiro
Como proceder, grátis primeiro
- 1
Abra o binário na edição gratuita, ou solte-o no estúdio on-line sem instalar nada. Você vê a estrutura do projeto, os formulários completos e uma prévia do código descompilado.
- 2
Julgue com base em evidências: a prévia mostra o que o motor reconstrói a partir do seu binário, não de uma amostra. Se o que você vê vale a licença, adquira-a; se não, você não gastou nada.
- 3
Com a licença, exporte o projeto completo e reabra-o no Visual Basic 6: cerca de 80% dos projetos recompilam sem retoques. Um valor que o binário não permite estabelecer torna-se uma chamada a VBRF_ValeurInconnue(), que se encontra por pesquisa.
O artigo detalhado: distinguir P-Code de nativo, e por onde começar
Quanto custa
Experimentar não custa nada. Só paga se o que vê no seu próprio binário valer a pena.
Edição gratuita
Formulários completos, estrutura do projeto e pré-visualização do código
0 €
Standard
Recuperar seu código-fonte
79 € por usuário
Professional
Standard, mais as ferramentas de análise
229 € por usuário
Perguntas frequentes
Qual é a diferença entre P-Code e código nativo?
O VB6 compila em P-Code (pseudocódigo executado pela máquina virtual) ou em código nativo (instruções de máquina x86, a configuração padrão). A partir da geração 2 (VBReFormer 7), o mesmo motor descompila ambos em Visual Basic legível: 1.158 das 1.164 instruções P-Code definidas são traduzidas, uma medição publicada na página de cobertura. A geração anterior reconstruía apenas o código nativo.
O que é recuperado de um executável, e o que se perde definitivamente?
Tudo o que o Visual Basic precisa em tempo de execução está no arquivo e volta: nomes de formulários, classes, módulos e controles, manipuladores de eventos, membros públicos de classes, propriedades de interface, chamadas de runtime, declarações de API. O que o compilador descartou não pode ser recuperado por ferramenta alguma: comentários, nomes de variáveis locais e de parâmetros, constantes nomeadas substituídas pelo seu valor e os nomes dos procedimentos em módulos .bas. Em média, 90 % do código-fonte é recuperado; o que falta se resume a esses elementos, ausentes do arquivo.
O código descompilado recompila no IDE do Visual Basic 6?
Sim: na prática, cerca de 80% dos projetos recompilam sem retoques. A exportação escreve os cabeçalhos exigidos pelo IDE (VERSION, Attribute VB_Name), sem os quais o VB6 recusa o arquivo. Um valor que não pôde ser estabelecido nunca é inventado: ele se torna uma chamada a VBRF_ValeurInconnue(), que o VB6 aceita e que se encontra por pesquisa. O que não está no binário é nomeado e justificado nas notas de exportação.
E se a descompilação não funcionar no meu binário?
É exatamente para isso que serve a edição gratuita: ela mostra, no SEU arquivo e antes de qualquer compra, o que pode ser extraído – formulários, recursos, estrutura do projeto. Recomendamos sempre experimentá-la primeiro. Como as licenças são conteúdo digital entregue imediatamente, as vendas são definitivas; se você encontrar um problema técnico, nosso suporte trabalhará com você em uma solução.
O meu ficheiro é guardado?
Seu binário não é guardado: é analisado e apagado com a sessão
É legal descompilar um programa?
Sim, quando você detém os direitos sobre o software – o caso típico é reconstruir seu próprio código-fonte perdido – ou dentro do quadro legal da interoperabilidade. Você deve possuir os direitos necessários sobre o programa analisado.
O VBReFormer descompila .NET, VB.NET ou C#?
Não. O VBReFormer trata Visual Basic 5 e 6: .exe, .dll, .ocx e .scr. Um assembly .NET requer um descompilador .NET; comparamos vários no blog.
Prefere que façamos isso por você?
Recuperamos o projeto a partir do seu binário, reabrimos no IDE e entregamos pronto para manutenção, com um relatório do que foi encontrado. Avaliação gratuita do binário antes de qualquer orçamento.
Solicitar uma avaliação gratuita
