The loss of source codes is a very serious problem for many developers. From my personal experience I can say that it is indeed a terrible misfortune. Imagine you write the program, spend your force, time and money, release compiled program to the customers... But one morning you see that all your sources are gone (it may be your cat, or aliens. Who knows?) You are in panic. What should you do? Tear one's hair? There is no need. Just take the VB Decompiler and simply decompile your project! VB Decompiler restores the source code from the pseudo code (P-Code) as close as possible to the original. So, after some modifications you may get really workable source code.
But you ask: what if the program is compiled not to interpreted P-Code, but in assembler Native Code? In this case, of course, you can't get fully compilable source code. But there is no need for disappointment. VB Decompiler has a built-in powerful disassembler and emulator commands to the extent possible to bring the assembly code to the original. Of course because of the diversity of modern methods of optimization and protection code, the process is not always ideal, but in this situation, VB Decompiler really helps you in the software analysis and reverse engineering.
And what if you develop in Visual Studio, using .NET Framework?
For our decompiler it's not a problem! VB Decompiler can easily restore the structure from the tables of the assembly, and will be useful for disassembly and analysis of IL code. Our decompiler does not require .NET Framework. It works fine in any 32-bit Windows operating systems and does not require installing additional software.
As you can see VB Decompiler is an ideal tool for analyzing and restoring the source code. VB Decompiler is a "must-have" tool for VB-developers, who appreciates their work, time and money.
VB Decompiler v10.1 has been released (September 2, 2015)
What's new in this version:
- Decompile msvbvm functions: __vbaDateVar, __vbaDateStr, __vbaForEachAry,
__vbaExitEachAry, __vbaStrDate, __vbaStrFixstr, __vbaLsetFixstr,
_adj_fdiv_m32, __vbaUbound, __vbaEraseKeepData, __vbaRecAssign,
__vbaUI1Str, __vbaStrR8, __vbaVargParmRef, __vbaVargVarMove,
__vbaInStrVar, __vbaInStrVarB, __vbaMidStmtBstr, __vbaMidStmtBstrB,
__vbaMidStmtVar, __vbaMidStmtVarB, __vbaFixstrConstruct,
__vbaR8Cy, __vbaCyMulI2, __vbaFpCy, __vbaR4Cy, __vbaCyMul,
__vbaCyVar, __vbaFailedFriend, __vbaFpCmpCy, __vbaCyAdd, __vbaCySub,
__vbaCyAbs, __vbaCyFix, __vbaCyInt, __vbaCySgn, __vbaUI1Cy, __vbaCyUI1,
__vbaStrCy, __vbaCyStr, __vbaCyForInit, __vbaCyForNext (Native Code)
- Decompile strings with only one char (Native Code)
- Decompile "Case Is" blocks (Select Case ... Case Is = X ... End Select) with
serial and random cases with "Select" global variable (Native Code)
- Highlight "Preserve" operator
- Fixed Arabic language. Thanks to lculator zaloom
- Convert "%" to "Chr(37)" to avoid processing user string as signature
- BugFix: Decompile msvbvm50.dll function __vbaForEachVar (Native Code)
- BugFix: Decompile msvbvmXX.dll function __vbaNextEachAry, __vbaLsetFixstrFree,
__vbaAryLock, __vbaAryUnlock, __vbaR4Str (Native Code)
- BugFix: Decompile call to function from unknown dll (P-Code, Native Code)
- BugFix: Use language, selected in installer
- BugFix: Correctly process operands of fld command (Native Code)
- BugFix: Correctly process variables where type has 3 numbers (ex. var_104), but content 2 numbers (ex. var_FC)
- BugFix: Jump back/forward by pressing "<" and ">"