As annouced previously, we just release the Free and Professional editions of VBReFormer 6.4.
This new version improve such a lot the decompiler engine and this is one of the most important release I’ve done until now.
The decompiler engine has been improved as it can now perform variable type determination. This means that VBReFormer is now able to guess the type of a variable and argument from its use inside the code.
We also added for/next support, and multi-dimensional array-related statements decompilation.
Example:
Original source code:
Private Sub Command1_Click() Dim myArr1(0 To 20, 14 To 50, 25 To 45) As String MsgBox UBound(myArr1) MsgBox LBound(myArr1) Dim myArr2() As Long ReDim myArr2(0 To 40, 30 To 55) MsgBox UBound(myArr2) MsgBox LBound(myArr2) End Sub
Recovered source code:
Private Sub Command1_Click() Dim var_2 (0 To 20, 14 To 50, 25 To 45) As String var_3 = MsgBox(UBound(var_2, 1), 0) var_8 = MsgBox(LBound(var_2, 1), 0) Dim var_9() As Long ReDim var_9(0 To 40, 30 To 55) var_10 = MsgBox(UBound(var_11, 1), 0) var_12 = MsgBox(LBound(var_11, 1), 0, , , var_13) End Sub
Lot of other improvement has been made, here is the full details:
New: Improved support of file I/O operation statements:
- __vbaGetOwner4
- __vbaGetOwner3
- __vbaGet3
New: Improved support of error statements:
- __vbaOnError
- __vbaResume
- __vbaGenerateBoundsError
New: Improved support of array-related statements:
- __vbaAryLock
- __vbaRedim
- __vbaRedimPreserve
- __vbaAryConstruct2
New: Improved support of FOR / NEXT loop-related statements:
- __vbaForEachAry
- __vbaNextEachAry
- __vbaExitEachAry
- __vbaForEachCollVar
- __vbaForEachVar
- __vbaForEachCollAd
- __vbaNextEachCollVar
- __vbaNextEachCollAd
- __vbaExitEachColl
- __vbaExitEachVar
- __vbaCyForInit
- __vbaVarForInit
- __vbaVarForNext
- __vbaRaiseEvent
- __vbaErase
New: Improved support of internal system statements:
- __vbaSetSystemError
- __vbaFreeVar
- __vbaFreeObj
- __vbaFreeStr
- __vbaFreeStrList
- __vbaFreeObjList
- __vbaFreeVarList
New: Improved support of string statements:
- rtcCompareBstr
- rtcInStrChar
New: Other improved statements:
- __vbaObjIs
- __vbaStopExe
- VarPtr
New: support of type consistency at decompilation time, this means that the decompiler engine can now be determinist about variable type
New: Support of OLE, PropertyPage, and UserDocument elements in GUI recovery & edition
New: Support of COM / OLE property edition
New: New settings windows that allows to:
- edit colors of source code’s syntax highlighting
- choose if you want only Visual Basic, assembly, or both (mixed) differently for viewing and saving
- choose your own prefix for private method and private variable name
- load (or not) the project in Visual Basic, or the destination folder once you saved it
Fixed issue on Import Table use
Fixed issue on Font properties in property editor and GUI edition
Fixed issue on saving settings
Fixed issue on default language setting (French was setup by default, now replaced by English language).
Fixed issue on VBReFormer setup packages for x64 Windows operating system
Fixed issue at loading some ActiveX libraries (“Run-time error `339`; Component `MSCOMCT2.OCX or one of its dependencies not correctly registered. “)
Fixed issue on resource viewer
Fixed issue on re-opening a VB6 application / library previously edited with VBReFormer Pro
Fixed issue on resource image preview, export, and replacement
Fixed issue on false negative detection of VBReFormer by antivirus or browsers as malicious software
Fixed “Object not found” exception at opening some executable
Fixed “About” dialog