VB Decompiler News



VB Decompiler v12.4 has been released (July 11, 2024)

What's new in this version:
- Powerful conversion feature for goto conditions using
  if { } blocks of code in .NET
- Combine multiple goto commands with the same address into a single
  if { } block with multiple conditions in .NET
- VB Decompiler now supports finding procedures and functions by name
  throughout an entire project. This is especially useful when exploring large
  projects with many procedures, knowing the interested procedure's name but
  losing time trying to find it within the tree. You can also search for
  procedures by a part of their name. To use this feature, press "Ctrl" + "T",
  or go to "Tools" -> "Find function". After searching, VB Decompiler will
  display all found functions in a list and allow you to jump to any function.
  Saving reports, copying each entry, and searching within the list are also
  supported. This feature available for Visual Basic 5.0/6.0 files and
  for .NET files as well (C# .NET, VB .NET, etc).
- Decompilation of break commands inside switch case blocks and heuristic
  analysis with closing switch case blocks in .NET
- Find references to any procedure or function in all forms and modules.
  After searching, VB Decompiler will display a list of found functions
  and allow you to jump to any function. Saving reports, copying each
  entry, and searching within the list are also supported. This feature
  was initially available for Visual Basic 5.0/6.0 but is now accessible
  for .NET files as well (C# .NET, VB .NET, etc).
- Support decompilation to C# for "isinst" MS IL opcode in .NET
- Documentation has been fully revamped and expanded in
  English, Japanese, Russian, and German languages.
- Partically fixed documentation in Spanish, Chinese and Turkish
- New documentation in Italian language
- Japanese UI translation is now support all dialogs and menus
- Documentation has partially updated in Spanish and Chinese languages.
- Updated documentation in seven languages is now available in a more
  readable PDF format.
- Support for obfuscating "After" and "Before" events for form objects
- Correct decompiling of try...catch blocks if the error variable type
  is obfuscated in .NET
- More user-friendly decompilation for Operators.CompareString calls with
  frequently used parameters for string comparison in .NET
- Filter last goto in try...catch block in .NET
- Save all in one module now uses UTF8 encoding for C# files in .NET
- Menu "Tools" -> "Search string" is now renamed to "Find string"
- BugFix: Resolved translation issues at the String References
  dialog window
- BugFix: Corrected splash screen rendering in light theme mode
- BugFix: Fixed Drag and Drop functionality after changing certain settings
- BugFix: Eliminated error when decompiling .NET procedures containing
  references to first-line code (.NET)
- BugFix: Removed duplicate addresses for bge.un.s and bne.un.s commands (.NET)
- BugFix: Corrected erroneous addition of commas to switch case jump lists (.NET)
- Bug Fix: Added brackets to calculations within conditional statements.
  For example, "if (test / 3 >= 10)" now appears as "if ((test / 3) >= 10)". (.NET)



VB Decompiler v12.3 has been released (January 1, 2024)

What's new in this version:
- New powerful feature to rename variables in decompiled code. You can now
  right click on any variable (var_XX in VB5/6 code and var_XX, num_XX,
  flt_XX, str_XX in a .NET assembly) and choose "Rename variable" from
  the popup menu. All instances where this variable is used will be
  automatically updated. You can undo this renaming by right-clicking
  on the variable again and selecting "Undo renaming". Each new name
  will be checked before renaming to prevent conflicts with keywords
  or other variables. - Increased decompilation speed (Native Code)
- The "Save Procedures List" now saves a file in C# prototype
  style for .NET compiled programs (.NET)
. - "Save all in one module" now save code to a .cs file in a
  C# style for the .NET compiled programs (.NET)
- Improvements in heuristic analyzer of procedure types
- Filtering added for compiler's internal multithreading call __vbaAptOffset
- Support added for AddItem and RemoveItem methods for standard OLE objects
- Support added for StdFont object with GUID {BEF6E003-A874-101A-8BBA00AA00300CAB}
- Support added for Printer "set" properties of the object with
  GUID {33AD4F31-6699-11CF-B70C00AA0060D393}
- Support added for StdPicture object with GUID {7BF80981-BF32-101A-8BBB00AA00300CAB}
- Support added for Move method for standard OLE objects
  and using this object as "set"/"get" property of standard OLE controls
- Support added for __vbaVarZero API from MSVBVM60.DLL
- Support added for __vbaVarIndexLoadRef API from MSVBVMXX.DLL
- Files not supported by decompiler will no longer be added
  to the History recent files list
- Added new strings to localization files
- BugFix: Drag and drop files to VB Decompiler window in Dark Theme
  is now working correctly
- BugFix: Re-editing string reference after changing it to another string
  with smaller size no longer causes issues
- BugFix: Crash fixed when Shift key is pressed before decompilation,
  if Fast decompilation is disabled in Options
- BugFix: After double clicking on a function call at the decompiled code,
  VB Decompiler now correctly jumps to that function without selecting text
  from start of code to position of click
- BugFix: Correctly pop values from stack after processing SafeArray (Native Code)
- BugFix: Declare non-recovered variables as zero with "Dim var_XX As 0" (Native Code)
- BugFix: Clear the stack correctly after calling __vbaVarIndexLoad, __vbaVarIndexLoadRef
  and __vbaVarIndexLoadRefLock APIs from MSVBVMXX.DLL
- BugFix: Processing some jumps with conditional in a global variable (Native Code)
- Parsing long 4 bytes MethodPtr table is now supported (.NET)



VB Decompiler v12.2 has been released (June 26, 2023)

What's new in this version:
- Improved support for obfuscated files (.NET)
- Declaring external calls as "public extern" (.NET)
- Adding argument names to method declaration (.NET)
- Support for Generic Instantiation via MethodSpec table (.NET)
- Support decompilation to C# for "ldelem" and "stelem" MS IL opcodes (.NET)
- Persian translation of the documentation and GUI by Ehsan Salehi
- BugFix: Incorrect analysis of temp variable for some exception Handlers (.NET)
- BugFix: Calculating size of some large "~" structures (.NET)



VB Decompiler v12.1 has been released (April 15, 2023)

What's new in this version:
- A new era of .NET decompilation has begun in VB Decompiler! Version 12.1 introduces
  the first iteration of C# decompiling from IL bytecodes. Since its
  inception in 2006, VB Decompiler has continuously improved compatibility
  over time. This isn't standard .NET decompiling using Reflection classes;
  all .NET decompilation within VB Decompiler is written from scratch and
  doesn't rely on the .NET framework. Additionally, all previous versions
  of VB Decompiler up to v8.5 can be run on Windows 95 without any issues.
  All prior years saw us only decompile .NET structures and disassemble MS IL.
  Starting in 2023 with version 12.1, VB Decompiler supports the decompilation
  of .NET code! This code can be written in Visual C# .NET, Visual Basic .NET
  or any other CIL-compatible language.
  It could be x86 code or x64 code, managed or unmanaged - VB Decompiler handles it all!
  And just like in the early versions, VB Decompiler doesn't use the .NET framework
  within its decompiling process. You can decompile .NET code on a PC without having
  the .NET framework installed!
  This is the first version of C# decompiling and some features aren't yet supported.
  Already supported are Try...Catch exceptions, Case statements, initializing arrays
  on the stack, and numerous MS IL opcodes. Loop recognition isn't currently
  supported either, appearing as "if...then" blocks instead. Support for C# wrappers
  in Visual C .NET for fast array initialization is also not yet available
  but will be added in future updates.
- Significant improvements have been made to Visual Basic obfuscation with
  a lot of code refactored for better performance
- Compatibility fixes with Chinese Windows locale (different processing
  of non-unicode characters)
- Decompile "type" of the handler for the Small SEH frames added (.NET)
- Click to select any address in the Decompiler tab, then open the Disassembler tab;
  VB Decompiler will navigate to and highlight that address.
- Click on any address within a comment "Referenced from" in a code to
  highlight that address
- Support for the "Add HEX dump" option has been added to MS IL .NET disassembler (.NET)
- Additions to the Chinese Simplified UI translation by fairycn
- BugFix: decoding branches back (.NET)
- BugFix: Windows XP compatibility fixes



VB Decompiler v12 has been released (February 8, 2023)

What's new in this version:
- Compatibility with Mac OS on M1 processors via Parallels
- Faster decompiler loading speed across all licenses
- New Dark Theme and support for custom themes based on dark and light colors.
  Many controls and application code have been refactored, rewritten, and
  optimized to support this new feature, along with the addition of
  numerous color scheme parameters. Fonts (family and size) can now be
  changed separately for Solution Explorer, Decompiler, and HEX Editor.
  Additionally, users can customize colors for all parts of Highlighting
  Code and all parts of HEX Editor. The Color Scheme topic in
  English documentation has been updated with information on
  how to create your own color theme.
- Users can now select multiple Font Families for each part of the UI control
  in a color schemes configuration file, supporting Windows,
  Linux, and Mac systems where installed fonts may differ.
- Dark Theme support is provided for Parallels in Mac OS and Wine on Linux systems.
  Although there's an issue with menu refreshes in Steam Deck console when using
  Dark Theme (tested on Wine, not Proton), other features work fine.
- Approximately 50 icons have been redrawn to support
  smooth transparent rendering in the Dark Theme
- A new .NET strings mangler and demangler has been added to support
  special characters in code and editing in String References (.NET)
- Duplicate entries will no longer be shown in "String References" if they are
  used at the same method, but will still be displayed when methods differ
- New parsing algorithms for arguments of the __vbaVarLateMemSt and
  __vbaLateIdSt msvbvmXX.dll APIs have been implemented to support
  class properties with reverse order Dispatch IDs
- The Tracer for P-Code compiled programs has seen significant improvements
  including showing variables and a list of previously
  decompiled code (Tracing features)
- Translations are now supported in Native Code and P-Code Tracers
  if translations exist for your language within a "lang"
  subfolder of the VB Decompiler installation folder (Tracing features)
- The Native Code Tracer window size has been increased and supports
  using only keyboard shortcuts (Tracing features)
- Courier New font is replaced with Liberation Mono when
  decompiling code under Linux via Wine to improve readability
- Less time and memory are used to find APIs
- BugFix: Opening binary files in VB Decompiler via command line
- BugFix: Showing the correct virtual address of the API
  wrapper code (API list in Solution Explorer tree)
- BugFix: Resizing Find Method References (Find Next)
  and String References windows
- BugFix: Refresh strings list in internal .net structures after
  editing string in the String References dialog form (.NET)
- BugFix: Save file after editing in a HEX Editor
  (Error about cannot save read-only file)
- BugFix: Show HEX dump and assembler command for calls
  of API wrapper in a Disassembler tab (Native Code)



VB Decompiler v11.9 has been released (August 29, 2022)

What's new in this version:
- New parser for If ... End If statements
- Right click on any loc_XX address within the code and select
  "Copy to disassembler". This not only merges decompiled and assembly code,
  but also jumps the same line of code as seen in the Decompiler tab.
  It helps with analyzing large procedures.
- New parser for TypeLib information from external OCX/DLLs,
  used in a decompiled file
- Support extended prototype values in VTable (VB5/6)
- Backward compatibility for Windows XP (experimental)
- Parse prototypes of functions/procedures using RTTI
- Support for dynamic size of Events structure
- Filter "_adj_fdivr_m32" API (Native Code)
- Parse "movzx" assembly command (Native Code)
- Ignore "cwd" assembly command (Native Code)
- Support external objects calling by early binding (P-Code)
- Support calling by VTable offset public methods and
  get/set public variables in internal classes (Native Code)
- New parser for assembler "test" command (Native Code)
- Parsing array operand in "imul" command (Native Code)
- Parsing array first operand in "cmp" command (Native Code)
- Decompile calls to basic methods (with VTable offset 1 to 3Ch)
  of OLE objects: AddRef, Release, PropertyBag, etc (P-Code)
- Increased row height for properties list in Designer
- BugFix: Do not show Form or Class in a Solution Explorer if this
  class is placed before Module without public methods
- BugFix: Ignore analyzing prototype for public "Sub" and "Functions" to
  display the correct color of icons in Solution Explorer
- BugFix: Show "(" and pointer to variable as a comment
- BugFix: Parsing variable of "Select Case" statement where
  esi register is not used, but some optimizations were used
  during compilation (Native Code)
- BugFix: Type of method ("Sub" or "Function") can be cleared
  in a prototype declaration during analyzing code with unknown prototype



VB Decompiler History



Main     News     Products     Documentation     Articles     Download     Order now     About us    

Privacy policy