VB Decompiler News



VB Decompiler v11 has been released (May 23, 2018)

What's new in this version:
- New processing engine for __vbaObjSet and __vbaHresultCheckObj (Native Code)
- New processing engine for 24 Late calls: __vbaVarLateMemCallLd, __vbaVarLateMemCallLdRf,
  __vbaVarLateMemCallSt, __vbaVarLateMemSt, __vbaLateMemSt, __vbaVarLateMemStAd,
  __vbaLateMemStAd, __vbaLateIdCall, __vbaLateIdCallLd, __vbaLateIdCallSt, __vbaLateIdSt,
  __vbaLateIdStAd, __vbaLateMemCall, __vbaLateMemCallLd, __vbaLateMemCallSt,
  __vbaLateIdNamedCall, __vbaLateIdNamedCallLd, __vbaLateIdNamedCallSt, __vbaLateIdNamedStAd,
  __vbaLateMemNamedCall, __vbaLateMemNamedCallLd, __vbaLateMemNamedCallSt,
  __vbaLateMemNamedStAd, __vbaRaiseEvent. NamedCall's is partially supported. (Native Code)
- Show "This Control" (variable with assigned active control) and "Temporary This"
  at Tracer window (Tracing features)
- VB .NET decompiler is optimized and refactored
- Tracing is now supported for P-Code functions and procedures. Just
  right click on an address in a decompiled or disassembled code (like
  loc_00401000) and select same menu link. Opened code will be emulated up
  to the selected address and you'll see stack, previous decompiled line,
  and current This object. This function works like a breakpoint on a
  debugger, but no code executed, only emulated. (P-Code)
- New feature "Prototypes Analyzer". Before decompilation, VB Decompiler will
  analyze all Private functions and procedures for prototype. It helps to
  provide correctly decompiled calls to this procedures and functions. This
  feature can be activated in Options and decrease speed of the opening
  file (P-Code and Native Code)
- New option for new feature: Parsing "If" ... "Else" ... "End If"
  blocks (Native Code)
- "Add addresses" option now works in P-Code too
- Support vbaNew2 calls for internal Forms, UserControls and Classes (Native Code)
- Objects is now more strong typized (Native Code)
- Decompile 16777215 as "True" at "If .. Then" statements (Native Code)
- Filter calls to VB Runtime wrappers using VTable (Native Code)
- Ukrainian translation by Dmitry Prigornitsky
- Show operand for msvbvmXX.dll functions MemLdPr, LateIdLdVar, MemLdUI1,
  MemLdI2, MemLdR4, MemLdR8, MemLdFPR4, MemLdFPR8 (P-Code Lite Version)
- Support for global variables as in a P-Code (Native Code)
- Show Dispatch ID and VTable ID for Public and Private
  variables (P-Code and Native Code)
- Support a lot of array in a push, mov, add and sub commands:
  [reg+reg], [reg-reg], [reg+Address], [reg-Address],
  [reg+reg*2] (Native Code)
- Emulator stack size increased to form 16 to 64 dwords (Native Code)
- Decompile "ExitProcCbHresult" with and without arguments differently (P-Code)
- Doesn't calculate the entropy (test for packed/protected) for files larger than 5Mb.
  Increases download speed and is not required for most files.
- Support disassembling of extremely large functions. Correctly find the
  finish part of this functions (for functions with up to 100k lines of code)
- Increase speed for saving to file
- Decompilation of "Err" object with all properties and methods (P-Code and Native Code)
- Increased Native Code decompilation speed
- Database of external OCX/DLL controls is filtered and optimized
- Show all possible arguments at private procedure prototype by
  analyzing code of the procedure (Native Code)
- Use different colors for "Sub" and "Functions"
- Try to detect type of the procedure, declared as Private (Sub or Function)
- Filter "Select Case" jump tables at the end of function (Native Code)
- Declare User Defined Types (UDT) and public variables. For UDT VB Decompiler
  show size of the structure and count of string fields. For Public variables
  VB Decompiler show name and type
- Add support for msvbvmXX.dll APIs: __vbaR8IntI2, __vbaR8IntI4,
  __vbaVargVarCopy, __vbaRedimVar, __vbaVarSetObjAddref, __vbaVarSetUnk,
  __vbaVarSetUnkAddref, __vbaVarSetVarAddref, __vbaVarXor, __vbaVarNot
  __vbaPowerR8, __vbaVarLateMemSt, __vbaStrLike, __vbaStrTextLike,
  __vbaVarLike, __vbaVarTextLike, __vbaVarTextLikeVar, __vbaVarLikeVar,
  __vbaDerefAry1, __vbaVargVarRef (Native Code)
- Add partially support for msvbvmXX.dll APIs: __vbaRecAnsiToUni,
  __vbaRecAssign, __vbaRecDestruct, __vbaRecDestructAnsi, __vbaRecUniToAnsi
- Add support for msvbvm50.dll APIs: __vbaVarTextCmpEq, __vbaVarTextCmpNe,
  __vbaVarMod (Native Code)
- Show variables for msvbvmXX.dll functions: __vbaVarOr,
  __vbaVarNeg, __vbaVarMod, __vbaVarMul, __vbaVarPow, __vbaVarDiv,
  __vbaVarIdiv
- Support RegExp2 class from vbscript.dll
- Support "Select Case" statements with more than 255 cases (Native Code)
- Search in a variables at Tracer window (Tracing features)
- Save current Date/Time to the header of text file (Save all in one module)
- Support for Objects: Form.Controls.X, MDIForm.Controls.X, UserControl.Controls.X,
  PpropertyPage.Controls.X, UserDocument.Controls.X, ListView.Items.X
- Emulation for direct assembler 'Or' command with variables.
  Usually Visual Basic use __vbaVarOr or same APIs, but with __vbaXXXLike
  Visual Basic use native 'Or' (Native Code)
- Support loading 4 and 8 byte floats from address by fild FPU command (Native Code)
- Open binary file from *.lnk file. Pure binary parsing, APIs or WScript is not used.
  Not all types of *.lnk files is supported.
- BugFix: Update decompiled code after editing any string in String References
- BugFix: Decompile names of global variables in classes
  (if it saved to the binary file)
- BugFix: Decompile msvbvmXX.dll function MemLdPr (P-Code)
- BugFix: Decompile msvbvmXX.dll functions: __vbaR4ErrVar, __vbaR8ErrVar,
  __vbaR4Var, rtcRandomNext, __vbaBoolVar
- BugFix: Decompile msvbvm50.dll functions: __vbaRedim, __vbaRedimPreserve
- BugFix: Correctly process prototype of the function with more
  than the nine parameters parameters via the stack
- BugFix: Correctly process "End If" in some cases then this address is filtered
  by "Procedure analyzer and optimizer"
- BugFix: Correctly process object properties Left/Top/Width/Height
  as Single floating point (Native Code)
- BugFix: Correctly process "End If" and other block-closing commands in some cases,
  if "Add Address" option is unchecked (Native Code)
- BugFix: Processing strings with only quote (") and apostrophe (') chars



VB Decompiler v10.8 has been released (February 20, 2018)

What's new in this version:
- New perfect feature. Now VB Decompiler can find references to any procedure
  or function in all forms and modules. After search, VB Decompiler show all
  founded functions in a list and you can jump to any function. Saving report,
  copying each entry and search on the list is also supported.
  This feature is for Visual Basic 5.0/6.0 files only.
- Forms parser refactored. Now it support a lot of forms, what incompatible with
  previous version of decompiler
- Decompile "ToolTipText" property of OLE objects on a Form
- Support for windows style as in Visual Studio. Now you can view the code at left side
  and solution explorer at the right side of VB Decompiler main window.
  You can change it in options.
- Improved UI of String Reference dialog
- Show String Reference dialog at right bottom corner of the main window
- Greek translation by John Kochliarides
- Documentation (Help files) on most languages is updated
- Decompile msvbvm functions: __vbaWriteFile
- BugFix: Parsing "DoEvent" call via edi register (Native Code)
- BugFix: Show help files for Danish and Czech languages
- BugFix: Show English help files for French and Slovak languages



VB Decompiler v10.7 has been released (August 18, 2017)

What's new in this version:
- Now you can jump to the code of any Event (MouseClick, KeyPress, OnLoad, etc.) just
  in a GUI designer. Just open any form in a GUI Designer, double click by any control
  and at right Properties table click on an "_Event" field. You'll see a menu box with
  code handlers for each Event of this control. Click on any handler to see the code (VB5/6)
- Decompilation speed increased up to 5 times! A lot of code refactored.
- Emulate adding negative values to the esp register (Native Code)
- Recovery names of external objects if CLSID records in registry has no
  VersionIndependentProgID field, but has ProgID field instead
- Option "Add HEX Dump" now works for P-Code applications too (P-Code)
- BugFix: Processing ExitProcI2, ExitProcR4, ExitProcR8, ExitProcCy,
  ExitProcUI1, ExitProcI2, ExitProcStr, ExitProcR4, ExitProcR8, ExitProcCy,
  ExitProcCb, ExitProcCbStack (P-Code)
- Fill file type property at VBP project to "Exe" if file extension is not correct
- BugFix: Fixes in Spanish translation
- BugFix: Correctly parse some stack parameters (Native Code)
- BugFix: Incorrect declare properties of UDT or array as variable (P-Code)
- BugFix: Correctly process Virtual Addresses between end of one section and
  stert of next section if sections is not aligned
- BugFix: Not critical bugs in Visual Basic 5.0/6.0 obfuscation engine
- BugFix: Delete record from Recent files history list if file is not found
- BugFix: Correcly decompile "Class" field at "MemberRef" table (.NET)
- BugFix: Support for 4 byte long indexes for "CustomAttribute" table (.NET)
- BugFix: Decompile msvbvmXX.dll functions __vbaR4Sgn, __vbaR4Var (Native Code)
- BugFix: Parsing of MemberRef table with LongStr flag (.NET)
- BugFix: Parsing some types of local variables (.NET)



VB Decompiler v10.6 has been released (December 15, 2016)

What's new in this version:
- Show values from the .NET tables as text by clicking each table (.NET)
- Decompile "GenericParamConstraint" table (.NET)
- Decompile msvbvm functions: __vbaGosubFree, __vbaGosubReturn, __vbaStrTextCmp,
  __vbaVarTextTstEq, __vbaVarTextTstGe, __vbaVarTextTstGt, __vbaVarTextTstLe,
  __vbaVarTextTstLt, __vbaVarTextTstNe, __vbaForEachCollVar, __vbaI4Sgn,
  __vbaCopyBytes, VBDllGetClassObject, GetMem2, GetMem4, GetMem8, GetMemStr, GetMemVar,
  GetMemObj, PutMem2, PutMem4, PutMem8, PutMemStr, SetMemVar, SetMemObj, GetMem1,
  PutMem1, __vbaRefVarAry, __vbaVarIndexLoadRefLock, __vbaVarIndexStore,
  __vbaStrUI1, __vbaVarIdiv, __vbaStrBool, __vbaR8ErrVar, __vbaI2Abs,
  __vbaI2Sgn, __vbaR8ForNextCheck, __vbaCheckType, __vbaStr2Vec, __vbaUnkVar,
  __vbaVargVar, __vbaVerifyVarObj, __vbaObjAddref, __vbaFpCDblR4, __vbaFpCDblR8,
  __vbaCheckTypeVar, __vbaStrCompVar, __vbaVarLateMemCallSt, __vbaLateIdStAd (Native Code)
- Decompile msvbvm50 functions: __vbaUI1I2, __vbaUI1I4 (Native Code)
- Decompile P-Code functions: VerifyVarObj, LateIdStAd, VarIndexSt,
  EraseDestruct, EraseDestrKeepData (P-Code)
- Support for Case Else in Select Case statement (Native Code)
- BugFix: Correcly decompile "CustomAttribute" table (.NET)
- BugFix: Correcly select string after jumping from the String References to theDisassembler window
- BugFix: Strings Viewer for #US heap (.NET)
- BugFix: Add brace symbol for GUIDs of unregistered OCX files to the VBP Project file
- BugFix: Procedure analyzer and optimizer correctly parse GoSub, GoSubFree and Return commands (Native Code)
- BugFix: Procedure analyzer and optimizer correctly parse array index variables
- BugFix: Decompile msvbvmXX.dll function __vbaNextEachCollVar, __vbaVarIndexLoad,
  __vbaI2Var (Native Code)
- BugFix: Show strings with "%" chars (P-Code)
- BugFix: Decompile msvbvmXX.dll function VarIndexLdVar (P-Code)
- BugFix: Don't clean some fields in a controls cache after previous decompilation (VB5/6)
- BugFix: Emulation of "jmpf" assembler command (Native Code)
- BugFix: Decompile some types of Select Case statements (Native Code)



VB Decompiler v10.5 has been released (July 29, 2016)

What's new in this version:
- GUI designer for Forms and UserControls with support of Unicode, frx captions,
  frx graphic icons and images. A lot of properies already supported!
- Optimized parsing of compared operands cmp, set, etc (Native Code)
- Emulator supports faddr, fsubr, fmulr, fdivr, faddrp, fsubrp, fmulrp, fdivrp (Native Code)
- Parse icon properties in forms with incorrect content
- Open file/database dialog use last open directory (not root directory of VB Decompiler)
- Russian codepage fix (windows return 866, except 1251 for LanguageID 1049)
- Show loading and decompiling progress and status if file or
  VDD database opened from command line
- Jump history now works not only for functions, but for Forms and UserControls too
- Decompilation speed increased
- Danish language added (GUI and Help file). Thanks to Sander Knudsen
- Brazilian Portuguese language added (GUI). Thanks to Lincoln Hirata
- Changes in Indonesian language file
- BugFix: Some memory leaks fixed
- BugFix: Parse "NegotiatePosition" property of the Menu controls
- BugFix: Save MDIForm frm and frx to correct names
- BugFix: Crashes on forms and classes with more than 999 functions
- BugFix: Parsing language files with incorrect structure
- BugFix: Save large .NET files to database
- Bugfix: Search VB5! signature in OCX files
- Bugfix: "Value" property size for HScrollBar and VScrollBar controls
- Bugfix: 2-byte Integers processed as Unsigned in form properties
- BugFix: Disabled "Decompile" button after open VDD database
- BugFix: Parsing external OCX with incorrect TypeLib



VB Decompiler v10.4 has been released (April 7, 2016)

What's new in this version:
- Decompile VB5/6 SEH error handlers. All formats of VB SEH supported,
  include "On Error Resume Next", multiple "On Error GoTo XXX" and
  "On Error GoTo 0" commands (Native Code)
- Decompile calls methods from local class module (Native Code)
- Try to decompile drag and dropped files with non exe/ocx/dll extension
- Filter for double decompiled lines, with and without var_eax (Native Code)
- Decompile msvbvm functions: SetVarVarFunc, LateIdCallSt, VarLateMemLdRfVar,
  IStDargCopy, CRefVarAry, ILdDarg (P-Code)
- Decompile msvbvm functions: VarLateMemLdRfVar, VarLateMemLdVar,
  VarLateMemCallLdVar, IStDargCopy, ILdRfDarg, ILdDarg, ILdUI,
  ILdR8, ILdAd, ILdFPR4 (P-Code Lite)
- Decompile msvbvm functions: __vbaI4Abs, __vbaForEachCollAd (Native Code)
- Decompile assembler functions: idiv (Native Code)
- Decompile create object command FDF4 New (P-Code)
- Increased speed of disassembling IL code (.NET)
- Accelerated 7 times strings parser, loading too fast for most applications (.NET)
- Accelerated 5 times code decompiling in Pro version (Native Code)
- Accelerated 5 times tracing code in Pro version with Tracing features (Native Code)
- Supports methods with more than 32737 lines of code (.NET)
- Supports index in Strings heap with unsigned values (.NET)
- Decompile OleObjectBlob and other properties for ActiveX
  controls on Forms and save this blob to frx file
- Decompile parent object name for the ActiveX controls on the Forms
- Most code of decompilation engine is refactored
- Improved recognition engine of VTable calls (Native Code)
- Decompile TypeSpec addresses from Methods (.NET)
- Decompile local variables (.NET)
- BugFix: Decompile Int64 arguments (.NET)
- BugFix: Show UTF-8 strings in names of namespaces, classes and methods (.NET)
- BugFix: Parsing variables with "+/-" operations in Procedure analyzer and optimizer
- BugFix: Show GUID of ActiveX files in Project VBP with dash in latest bytes
- BugFix: Show controls of form with no public controls
- BugFix: Replace arg_8 to Me (pointer of object) if Fast decompilation mode disabled
- BugFix: No "lib" preffix before name of DLL in API declaration
- BugFix: Correcly show strings with offset to center another string reference (.NET)
- BugFix: Correcly show user strings (#US) if string larger than 128 but less than 256 bytes (.NET)



VB Decompiler v10.3 has been released (February 7, 2016)

What's new in this version:
- Decompile TypeLib information from all external ActiveX files (OCX, DLL),
  and make on the fly signatures for all Properties and Methods in each
  Interface and Dispatch class
- Use type information for return values from each property and method
  from external OCX/DLL files
- 1853 new API prototypes. At this time VB Decompiler
  supports decompilation more than 3418 APIs
- Search original file at folder with database (VDD) file
  if path from VDD is invalid
- Process SafeArrays from __vbaAryVar and __vbaAryCopy (Native Code)
- Long lines as a hint in Tracing window (Native Code, Tracing features)
- Support "mov reg, [reg+reg]" (Native Code)
- Jumps to HEX Editor by clicking on global variables (Native Code)
- Support for fld/fadd/fsub/fmul/fdiv st0, real8 ptr [reg1+reg2*8] (Native Code)
- Support one char strings (Native Code)
- Try to open possible packed files (can help to open files with
  a lot of images on forms and looks like packed)
- Decompile msvbvm functions: __vbaObjIs (Native Code)
- Decompile references to ActiveX files with %SystemRoot% variable at the filename
- BugFix: Decompile msvbvmXX.dll function rtcKillFiles, rtcChangeDir,
  rtcMakeDir, rtcRemoveDir, rtcChangeDrive, rtcFileLocation,
  __vbaCastObj (Native Code)
- BugFix: Decompile parameter type of external calls from OCX libraries
- Correcly decompile BetweenUI1, BetweenI2, BetweenI4, BetweenR4, BetweenR4,
  BetweenCy, BetweenVar, BetweenStr, BetweenTextVar, BetweenTextStr (P-Code)
- BugFix: Decompile "and" and "or" opcodes if first operand is expression (Native Code)
- BugFix: Decompile "setXX" opcodes if register set to zero or not initialized (Native Code)
- BugFix: Decompile pushes to address with start code "xor eax, eax" (Native Code)
- BugFix: Correctly saving ControlIndex array to the vdd database



VB Decompiler History



Main     News     Products     Documentation     Articles     Download     Order now     About us