Manual do VBReFormer Online
Manual do usuário do VBReFormer Online: solte um executável VB6 no navegador, explore seu código reconstruído, baixe um projeto recarregável no IDE.
Atualizado em 20/09/202611 capítulos
O estúdio no seu navegador. Você solta um executável Visual Basic 5 ou 6, explora seu código reconstruído e sai com um arquivo compactado que o IDE do VB6 reabre. Nada para instalar, em qualquer sistema – inclusive macOS, Linux e as versões do Windows antigas demais para o aplicativo desktop.
Nota sobre a tradução. A interface do estúdio está disponível em português. Este manual cita os nomes de abas, vistas e botões tal como aparecem na tela.
1. Abrir o estúdio
Não há nada para instalar, nada para configurar e nenhuma conta para criar antes de começar: abra o endereço do estúdio em um navegador recente, e pronto.
- Qualquer sistema – o estúdio depende apenas do navegador. É a única maneira de usar o VBReFormer a partir de um Mac, de uma máquina Linux ou de um Windows anterior ao 10.
- Onze idiomas – o estúdio web é servido em onze idiomas, quase quatro vezes mais do que o aplicativo desktop. O seletor fica no cabeçalho.
- Tema claro ou escuro – o estúdio segue a configuração do seu sistema, e você pode sobrepor essa escolha.
Français · English · Español · Deutsch · Italiano · Português · 日本語 · 简体中文 · Українська · हिन्दी · العربية
2. Soltar um binário
- Marque a declaração. O estúdio pede que você declare que é o proprietário do programa, ou que tem o direito de analisar seu código. É uma condição de uso, não uma formalidade.
- Solte o arquivo. Arraste-o para a área de soltar, ou procure nos seus arquivos. Formatos aceitos:
.exe,.dll,.ocx. Tamanho máximo: 64 MB – o limite é mostrado na tela em vez de descoberto depois de um envio que falhou. - Deixe a análise correr. O estúdio nomeia cada etapa à medida que avança, com um contador: A receber o ficheiro → A analisar o binário → A descompilar → A inventariar os símbolos → Grafo de chamadas → Fluxo de controlo.
O tempo depende do tamanho e da natureza do binário. Como referência, um executável de 9,35 MB vai da abertura ao projeto gravado em cerca de doze segundos.
Terminada a análise, o estúdio também diz que tipo de binário encontrou: código nativo, P-code ou natureza indeterminada.
3. O que acontece com o seu arquivo
O arquivo é analisado e depois apagado com a sua sessão. Nada é conservado.
Isso está escrito na página de envio, e é assim que o serviço se comporta de fato: seu binário é processado durante a sua sessão de trabalho e desaparece com ela. Ele não é arquivado, nem indexado, nem reutilizado.
O que isso também implica. Seu trabalho também não sobrevive à sessão. Se você fechar a aba ou a sessão expirar, terá de soltar o binário de novo. Baixe seu arquivo compactado antes de sair. Um reinício do serviço também desconecta as sessões ativas – nenhum risco para o seu arquivo original, que está na sua própria máquina, mas você perderá a exploração em andamento.
Se a confidencialidade do seu binário for uma questão contratual, observe que a edição Desktop trata localmente tudo o que equivale a ler o arquivo – formato, bytes, desmontagem, recursos – e envia ao serviço apenas o que equivale a reconstrução.
4. Quatro entradas em um binário
O painel da esquerda oferece quatro pontos de entrada, e eles respondem a quatro perguntas diferentes.
| aba | a pergunta que responde |
|---|---|
| Projeto | “Como este programa está organizado?” – a árvore de formulários, classes, módulos e seus procedimentos, tal como o VB6 a via. |
| Símbolos | “Onde isto está definido?” – o inventário completo, com o tipo e o contêiner de cada símbolo. Ele distingue os nomes lidos do binário dos nomes que precisou sintetizar, o que diz de imediato em que você pode confiar. |
| Pesquisa | “Onde este texto aparece?” – tanto no código reconstruído quanto nas seções do designer. |
| Recursos | “O que há aí além de código?” – ícones, cursores, bitmaps, tabelas de strings, informações de versão, com seu tipo, seu tamanho e seu conteúdo. Servido sem licença: um recurso é lido, não reconstruído. |
Na árvore, cada membro traz a visibilidade que o binário declara – Public, Private, Friend. Um membro cuja visibilidade não pôde ser lida não traz marca nenhuma: não anotamos o que não sabemos.
Renomear
O estúdio web permite renomear símbolos, e a renomeação é global: os pontos de chamada nos outros módulos acompanham. É o gesto central do trabalho em um binário – o descompilador devolve a lógica, você devolve os nomes.
5. As vistas
Sete vistas, e o próprio estúdio indica, sob cada uma, o que ela mostra e se exige uma licença.
| vista | o que mostra | licença |
|---|---|---|
| Fonte | o código VB6 reconstruído | pré-visualização sem licença |
| IR | o que o descompilador vê antes de reconstruir o fluxo de controle | pré-visualização sem licença |
| Assembly | código de máquina x86, símbolos resolvidos | servida por inteiro |
| P-code | opcodes da máquina virtual do VB6 | servida por inteiro |
| Designer | a seção do designer do formulário | servida por inteiro |
| Projeto | o .vbp reconstruído |
servida por inteiro |
| Estrutura | as estruturas do formato tal como foram lidas | servida por inteiro |
A linha divisória. O que é lido do seu arquivo é gratuito; o que é reconstruído é vendido. A desmontagem, a estrutura, a seção do designer e o
.vbpsão extraídos de tabelas presentes no seu próprio executável. O código-fonte VB6 não existe em lugar nenhum – ele precisa ser reconstruído, e esse trabalho é o produto.
Abaixo do código, o estúdio também mostra O que o descompilador assinala para o procedimento atual: os diagnósticos, isto é, o que ele não conseguiu fazer e por quê. É o reflexo a ter sempre que um resultado surpreender você.
6. O que a compilação conserva, e o que ela descarta
Este capítulo explica por que seus formulários saem muito legíveis e seus módulos .bas saem com nomes técnicos. A regra é simples:
Tudo o que o Visual Basic precisa em tempo de execução, ele gravou no arquivo: o VBReFormer o encontra de novo. Tudo o que ele não precisava mais depois de compilar, ele descartou – e ninguém consegue trazer de volta.
O que sobrevive: nomes de formulários, classes e módulos · nomes de controles · manipuladores de eventos · membros públicos das classes · propriedades de interface · chamadas ao runtime do VB (635 funções) · API Win32 (15.680 assinaturas) · a estrutura do código · as strings.
O que não está no arquivo: comentários · nomes de variáveis locais · nomes de parâmetros · constantes nomeadas, substituídas pelo seu valor · nomes de procedimentos em módulos .bas · a indentação original.
Um exemplo verificável
O trecho abaixo vem do SETUP1.EXE, o assistente de instalação distribuído com o Visual Basic 6 – cujo código-fonte a Microsoft distribui. Qualquer pessoa que possua o VB6 pode, portanto, refazer esta comparação.
Fonte original, 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
Tal como renderizado pelo 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
A lógica é idêntica, linha por linha. Right, Trim, Len e RTrim$ têm nome; a passagem ByRef é inferida corretamente. O que se perde é o nome do procedimento e do seu parâmetro, e as constantes nomeadas aparecem como seu valor – foi o compilador que as substituiu, não o VBReFormer.
Ler os marcadores
O VBReFormer nunca adivinha: um valor que não pode ser estabelecido é marcado em vez de inventado.
| marcador | significado | o que fazer |
|---|---|---|
proc_42C506 |
um procedimento designado pelo seu endereço | renomeie-o – o nome se propaga |
var_18, arg_8 |
uma variável local ou um parâmetro | leia como é usado, depois renomeie |
? |
valor não estabelecido | consulte a vista Assembly no mesmo lugar |
Um arquivo que contém um
?será rejeitado pelo IDE do VB6. O marcador está ali para você decidir, não para ser recompilado como está. Um valor plausível e errado é a pior coisa que um descompilador pode produzir.
7. Os grafos
Dois grafos, e eles não contam a mesma história.
- Chamadas – quem chama o quê: a arquitetura do programa. Filtros Chamadores, Chamados ou Ambos, e uma opção para ocultar os nós isolados.
- Fluxo – por onde passa a execução: os blocos, a entrada, os cabeçalhos de laço, as arestas de retorno de laço e os blocos marcados INACESSÍVEL.
Cinco maneiras de ler um bloco
Selecione um bloco no grafo, depois escolha o que quer ver dentro dele: Forma, IR, VB6, Assembly ou P-code. O mesmo trecho de programa, cinco níveis de leitura.
Honestidade na renderização. O estúdio indica quantos blocos estão ancorados em linhas de listagem, e quantos estão sem endereço provado – as instruções deles caem então na fatia anterior. Assim você sabe que parte do fatiamento é certa.
Os grafos exigem uma licença: quem chama o quê e por onde passa a execução é a arquitetura do programa. A desmontagem e a estrutura continuam abertas sem ela.
8. A pré-visualização e a licença
Sem licença, a vista Fonte não é recusada a você: ela é exibida parcialmente mascarada. Você vê a estrutura, os nomes recuperados e a qualidade real da reconstrução – no seu próprio binário – antes de pagar qualquer coisa.
Isso é deliberado: um visitante que não vê nada não pode julgar. E se uma assinatura expirar, você vê o que teria de volta, em vez de uma porta fechada.
Uma estação de trabalho de cada vez
Uma licença VBReFormer abre uma estação de trabalho de cada vez – e um navegador conta como uma estação de trabalho. Se a sua estiver em uso em outro lugar, o estúdio oferece transferi-la para cá a partir da sua conta, ou adicionar um posto. É uma recusa suave: você pagou, nada está faltando.
9. Baixar suas fontes
O painel de entrega produz um arquivo .zip contendo o .vbp e seus arquivos – .bas, .cls, .frm – gravados em ANSI, como o IDE os espera. O painel indica o número de arquivos e o tamanho antes de você baixar.
Leia as notas antes de abrir o projeto
O estúdio mostra O que não foi possível reconstruir, com um porquê para cada entrada. Algumas informações – referências externas, as opções de compilação, o modo de inicialização – não estão em nenhuma estrutura do binário: não foram apagadas, nunca estiveram lá. Por isso são relatadas em vez de inventadas.
No IDE, se uma referência estiver faltando, adicione-a em Project ▸ References (Projeto ▸ Referências). Os eventuais marcadores ? cabem a você tratar manualmente.
O painel então oferece Analisar outro binário: a sessão recomeça, e o arquivo anterior é apagado.
10. Online ou Desktop?
As duas edições compartilham o mesmo motor e produzem o mesmo código. Elas não servem ao mesmo propósito.
| Online | Desktop | |
|---|---|---|
| Instalação | nenhuma | MSI, Windows 10+ |
| Sistemas | todos | Windows 10 e 11 |
| Idiomas da interface | 11 | 3 |
| Árvore, símbolos, pesquisa, renomeação | ✔ | ✔ |
| As sete vistas | ✔ | ✔ |
| Grafos de chamadas e de fluxo | ✔ | ✔ |
| Exportação do projeto | ✔ (zip) | ✔ (pasta) |
| Recursos: inventário e conteúdo | ✔ | ✔ |
| Recursos: extração para um arquivo | ✘ | ✔ |
| Vista hexadecimal anotada | ✘ | ✔ |
| Designer desenhado, exportação de imagem | ✘ (somente a seção de texto) | ✔ |
| Patch binário | ✘ | ✔ |
| Referências cruzadas | ✘ | ✔ |
| Navegador de objetos, navegador da API Win32 | ✘ | ✔ |
| Marcadores, opções de renderização | ✘ | ✔ |
| O trabalho sobrevive à sessão | ✘ | ✔ |
| Faturamento | créditos | assinatura |
Em resumo – Online para abrir um binário, entender o que ele faz e sair com as fontes. Desktop para trabalhar em um binário por muito tempo: bytes, recursos, referências cruzadas, patches e um trabalho que não desaparece quando você fecha a aba.
11. Perguntas frequentes
Meu binário é conservado? Não. Ele é analisado e depois apagado com a sua sessão. Veja o capítulo 3.
Meu arquivo tem mais de 64 MB. É o limite do estúdio, indicado antes de você soltar o arquivo. Para um binário maior, a edição Desktop não tem essa restrição de envio.
Onde estão os recursos do binário? Na aba Recursos, à esquerda – sem licença. Você vê cada entrada com seu tipo e seu tamanho, e seu conteúdo ao abri-la: as imagens são desenhadas, o texto é exibido, e todo o resto é mostrado como bytes em vez de escondido. A extração para um arquivo é específica da edição Desktop, assim como a vista hexadecimal.
Por que o código para no meio de um procedimento? É a pré-visualização: sem licença, a edição gratuita mostra a estrutura, os nomes e a desmontagem completa, mas o corpo reconstruído exige uma licença.
Fechei a aba e perdi tudo. O trabalho não sobrevive à sessão. Baixe o arquivo compactado antes de sair; o binário em si continua na sua máquina.
O código exportado recompila como está? Muitas vezes: em uma bancada de 149 projetos, 121 recompilam sem nenhuma edição. O restante precisa de uma referência faltante adicionada ou de alguns marcadores tratados.
Meu executável está empacotado (packer). Ele precisa ser desempacotado antes, senão as estruturas do VB6 não ficam visíveis no arquivo.
Isso é legal? Depende da sua jurisdição e dos seus direitos sobre o binário – é disso que trata a declaração no momento do envio. O uso previsto é recuperar o seu próprio código, ou um código sobre o qual você detém os direitos ou está autorizado a analisar.
Veja também
Manual do VBReFormer DesktopExperimente sem comprar