Visual Basic decompiler preview

Available languages:


English
(French)Français
(German)Deutsch
(Italian)Italiano
(Spanish)Español
(Norwegian)Norsk
(Simp. Chinese)简体中文
(Arabic)الْعَرَبيّة
(Russian)Русский
(Ukrainian)Yкраї́нська
(Czech)Česky
Afrikaans
(Turkish)Türkçe
(Hungarian)Magyar

Overview

VBReFormer Professional is a powerful and essential recovery tool for Visual Basic application.

You lost the source code of your Visual Basic application ? VBReFormer Professional will make you saving time and money.

VBReFormer Professional will also help you to rewrite your application by recovering all necessary information, design code and some native Visual Basic code of your application.

More interesting than all, thanks to its design edition feature, you can edit the design of your application even after compilation, without any need of your source code.

Design recovery

VBReFormer allows you to recover the design information of your application (form and usercontrol design) and extract these information in a Visual Basic project. VBReFormer also recover resource information of your application.

That feature allows you to get necessary information to rewrite your design interface.

Design edition

Linked to the Design recovery feature, the Design edition feature succeed where others resources editors fails: to edit design information of Visual Basic  applications easily and without any limitation of size, working directly on the binary of your application thanks to a post-build compiler technology.

Thanks to this feature, your application is not lost. You can edit design interface and update your application, saving your time and money.

Code recovery

VBReFormer will disassemble all forms and controls subroutine of your application and recover partial Visual Basic source code (if compiled with the native code option).

VBReFormer try a native decompilation from Native code to Visual Basic code, without any warranty of success because it's still an experimental decompilation process.

Note: VBReFormer is not able to disassemble P-Code (See article Native Code VS PCode)



Why should you choose VBReFormer ?

• VBReFormer is the only tool allowing to edit your Visual Basic application properties without any limitation of size

In general, Visual Basic design editor for Visual Basic 5 & 6 application are limited in size to the original size of the property in order to keep the initial structure of the executable.

It's not the case with VBReFormer Professional. Thanks to its exciting and powerfull design compiler engine, VBReFormer allows you to change, extract, and import design information (text, picture, etc) without any limitation of size. You can even activate hidden properties of objects in order to change them.


• VBReFormer is the most advanced Visual Basic native code decompiler

Visual Basic application can be compiled with Native or P-Code option. In general, Visual Basic decompiler are based on PCode and not native code.

That is not justified because in reality, native code applications represents more than 80% of Visual Basic application, and it's probably the case for your application.

VBReFormer is a powerfull disassembler for native Visual Basic application, and also the most advanced Visual Basic native-based decompiler. 

Thanks to its advanced native code decompiler engine, VBReFormer is able to decompile all runtime functions and method of Visual Basic 5 & 6 successfully with all parameters (details on MSVBVM60 vs VBReFormer), and 80% of objects interactions.

VBReFormer doesn't recover all the executable code, but it is a great help to save time and money, by helping you to understand and rewrite your application.



Feature & Price

Designed for Microsoft Windows XP, 2000, Me, 98, NT
Feature of VBReFormerFreeProfessional
General features
Operating System: Microsoft Windows Vista, XP, 2000, Me, 98, NT
Supported format for Visual Basic analyze: « exe », « scr », « ocx » and « dll »
Shows executable headers informations (EXE Header, PE Header, Optional Header, and Section Header)
Shows import table
Design recovery features
Recovers project file « vbp »
Recovers GUI files (« frm »; « ctl »; « pag » ; « dsr »)
Identifies externals components : ActiveX™ technology
Recovers resources GUI files (« frx » ; « ctx » ; « pgx »)
Design edition feature
Allows to edit properties of objects and save them to the executable (with no size limitation for string properties)
Allows to add an unused property for an object and save it directly to the executable
Allows to change the resources user interface pictures (« Picture » property for example)
Disassembler features
Identifies procedures from Forms, Modules, Classes, Usercontrols, PropertyPages, and UserDocuments *
Disassembles procedures (machine language into assembly language) *
Decompiler features
Partially Native Code decompiling *
Recovers the Runtime Calls *
Support more than 15000 API declarations *
Others features
Syntax coloration of recovered code (assembly and Visual Basic code)
Search engine (assembly and Visual Basic code)
Documentation & User Guide
Support
Free support for any problem with setup, and using VBReFormer
Free update of VBReFormer
Price
0€
49€

*Only executable compiled with « native » option (See article Native Code VS PCode).

Sample of code:

  • VERSION 5.00 
  •  
  • Begin VB.Form frmCalc 
  •     Caption = "Form1" 
  •     ScaleMode = 1 
  •     AutoRedraw = 0              'False 
  •     FontTransparent = -1              'True 
  •     LinkTopic = "Form1" 
  •     ClientLeft   = 120 
  •     ClientTop    = 420 
  •     ClientWidth  = 7620 
  •     ClientHeight = 4590 
  •     StartupPosition = 3 
  •     Begin VB.CommandButton txtComplexCalculation 
  •         Caption = "Command1" 
  •         Left   = 5100 
  •         Top    = 1740 
  •         Width  = 915 
  •         Height = 315 
  •         TabIndex = 7 
  •     End 
  •     Begin VB.CommandButton cmdDiv 
  •         Caption = "Command1" 
  •         Left   = 3900 
  •         Top    = 1740 
  •         Width  = 1035 
  •         Height = 315 
  •         TabIndex = 6 
  •     End 
  •     Begin VB.CommandButton cmdSub 
  •         Caption = "Command1" 
  •         Left   = 2940 
  •         Top    = 1740 
  •         Width  = 735 
  •         Height = 255 
  •         TabIndex = 5 
  •     End 
  •     Begin VB.CommandButton cmdAdd 
  •         Caption = "Command1" 
  •         Left   = 1680 
  •         Top    = 1740 
  •         Width  = 1095 
  •         Height = 255 
  •         TabIndex = 4 
  •     End 
  •     Begin VB.CommandButton cmdMul 
  •         Caption = "Command1" 
  •         Left   = 240 
  •         Top    = 1740 
  •         Width  = 1335 
  •         Height = 315 
  •         TabIndex = 3 
  •     End 
  •     Begin VB.TextBox txtResult 
  •         Left   = 180 
  •         Top    = 2160 
  •         Width  = 4755 
  •         Height = 435 
  •         Text = "Text3" 
  •         TabIndex = 2 
  •     End 
  •     Begin VB.TextBox txtNum2 
  •         Left   = 180 
  •         Top    = 1380 
  •         Width  = 4815 
  •         Height = 315 
  •         Text = "Text2" 
  •         TabIndex = 1 
  •     End 
  •     Begin VB.TextBox txtNum1 
  •         Left   = 180 
  •         Top    = 240 
  •         Width  = 4755 
  •         Height = 435 
  •         Text = "Text1" 
  •         TabIndex = 0 
  •     End 
  • End 
  • '   //////////////////////////////////////////////////////// 
  • '  //   VBReFormer 2008 � Sylvain Bruyere 
  • ' //  Assembly: prjSample2.frmCalc (Form) 
  • '//////////////////////////////////////////////////////// 
  •  
  • 'Event for cmdMul 
  • Private Sub cmdMul_Event0 
  • 'var_num6 = -52 - 12 - 64 
  • Set var_pv2 = Me.txtNum2() 
  • var_pv3 = var_pv2.Text() 
  • 'var_pv4 = (00) 
  • Set var_pv5 = Me.txtResult() 
  • Set var_pv6 = Me.txtNum1() 
  • var_pv7 = var_pv6.Text() 
  • 'var_num6 = 'var_num6 - 8 
  • 'var_pv8 = (00) 
  • var_pv5.Text() = CStr((Val(var_pv7) * Val(var_pv3))) 
  • 'var_num6 = 'var_num6 + 32 
  • 'var_num6 = 'var_num6 + 32 
  •  
  • End Sub 
  •  
  •  
  • 'Event for cmdDiv 
  • Private Sub cmdDiv_Event0 
  • 'var_num6 = -52 - 12 - 64 
  • Set var_pv2 = Me.txtNum2() 
  • var_pv3 = var_pv2.Text() 
  • 'var_pv4 = (00) 
  • Set var_pv5 = Me.txtResult() 
  • Set var_pv6 = Me.txtNum1() 
  • var_pv7 = var_pv6.Text() 
  • 'var_num6 = 'var_num6 - 8 
  • 'var_pv8 = (00) 
  • var_pv5.Text() = CStr((Val(var_pv7) / Val(var_pv3))) 
  • 'var_num6 = 'var_num6 + 32 
  • 'var_num6 = 'var_num6 + 32 
  •  
  • End Sub 
  •  
  •  
  • 'Event for cmdSub 
  • Private Sub cmdSub_Event0 
  • 'var_num6 = -52 - 12 - 64 
  • Set var_pv2 = Me.txtNum2() 
  • var_pv3 = var_pv2.Text() 
  • 'var_pv4 = (00) 
  • Set var_pv5 = Me.txtResult() 
  • Set var_pv6 = Me.txtNum1() 
  • var_pv7 = var_pv6.Text() 
  • 'var_num6 = 'var_num6 - 8 
  • 'var_pv8 = (00) 
  • var_pv5.Text() = CStr((Val(var_pv7) - Val(var_pv3))) 
  • 'var_num6 = 'var_num6 + 32 
  • 'var_num6 = 'var_num6 + 32 
  •  
  • End Sub 
  •  
  •  
  • 'Event for cmdAdd 
  • Private Sub cmdAdd_Event0 
  • 'var_num6 = -52 - 12 - 64 
  • Set var_pv2 = Me.txtNum2() 
  • var_pv3 = var_pv2.Text() 
  • 'var_pv4 = (00) 
  • Set var_pv5 = Me.txtResult() 
  • Set var_pv6 = Me.txtNum1() 
  • var_pv7 = var_pv6.Text() 
  • 'var_num6 = 'var_num6 - 8 
  • 'var_pv8 = (00) 
  • var_pv5.Text() = CStr((Val(var_pv7) + Val(var_pv3))) 
  • 'var_num6 = 'var_num6 + 32 
  • 'var_num6 = 'var_num6 + 32 
  •  
  • End Sub 
  •  
  •  
  • 'Event for txtComplexCalculation 
  • Private Sub txtComplexCalculation_Event0 
  • 'var_num6 = -52 - 12 - 104 
  • Set var_pv2 = Me.txtNum2() 
  • var_pv3 = var_pv2.Text() 
  • 'var_num6 = 'var_num6 - 8 
  • 'var_pv4 = (00) 
  • 'var_pv5 = (00) 
  • Set var_pv6 = Me.txtNum2() 
  • var_pv7 = var_pv6.Text() 
  • 'var_pv8 = (00) 
  • Set var_pv9 = Me.txtResult() 
  • Set var_pv10 = Me.txtNum1() 
  • var_pv11 = var_pv10.Text() 
  • Set var_pv12 = Me.txtNum1() 
  • var_pv13 = var_pv12.Text() 
  • 'var_num6 = 'var_num6 - 8 
  • 'var_pv14 = (00) 
  • 'var_num1 = Atn((Val(var_pv13) - Val(var_pv7))) 
  • 'var_num6 = 'var_num6 - 8 
  • 'var_pv14 = (00) 
  • 'var_num1 = (Sin(Val(var_pv11)) / Cos(Val(var_pv3))) 
  • var_num1 = (Sin(Val(var_pv11)) / Cos(Val(var_pv3))) \ Atn((Val(var_pv13) - Val(var_pv7))) 
  • var_pv9.Text() = CStr((Sin(Val(var_pv11)) / Cos(Val(var_pv3))) Mod Atn((Val(var_pv13) - Val(var_pv7)))) 
  • 'var_num6 = 'var_num6 + 48 
  • 'var_num6 = 'var_num6 + 48 
  •  
  • End Sub 
  •  
  •