vb反编译教程
⑴ vb反编译及教程
VB编写的程序从4.0以后的版本都不能反编译了,它生成的exe程序不想其他程序那么有规律。你只能反汇编,那样代价就太大了,至少比你自己开发一个完整的程序难。
⑵ 跪求如何把VB的exe文件反编译
如果是VB.NET开发的很容易被反编译,如果没有混淆的话基本能得到源代码,用Reflector.exe这个工具,有绿色版的。不是NET的有VB反编译精灵等等工具。
⑶ 有没有VB反编译程序
VBRezQ v2.4a
下载地址http://st.cnc-gd.com/soft/Software.Asp?id=330
可反编译VB6的EXE文件,得到全部窗体。
vb反编译精灵v4.3
下载地址http://gsdx.driversky.com/down/vbre.zip
但明确告诉你,目前世界上还没有任何一款软件能对稍复杂(注意仅仅是稍复杂)一点的VB6编译过成的EXE进行实用的反编译,且不用说目前的软件EXE文件大都经过加壳这样的保护处理,反编译更是不可能了。我在《问专家》网上看到过专家的解答就是这个意思,上面提到过一款说是最好的反编译VB软件,也只能把很简单的EXE编译出窗体文件,代码代码可读性非常差,更不用说稍复杂一点的程序了。
⑷ VB反编译还原代码 求助
如果说 VB3、VB4 还有可能的话,那么 VB5、VB6 反编译就是完全的痴人说梦了,VB6 已经不是纯粹的解释性语言了,根本不可能反编译出完整的源代码,对于这种语言写出来的程序,只能获得中间语言或低级语言。一般来说 VB6 都是 P 代码,而 P-Code 的代码逆向回来只能自己看,机器是识别不了的。
举个例子:
比如在 VB6 中有一句代码 : MsgBox "Decompile Test."
那么反编译出来的结果就是:
(代码太长不贴,这里贴主要的)
...
mov dword ptr [ebp-58], 004012E4 ; 这里把 "Decompile Test."的地址弄进去了。
...
call dword ptr [<&MSVBVM60.__vbaVarDup>]; 可以清楚的看出来,复制了一份变量的句柄。因为VB里字符串指向的是内存地址。
...
call dword ptr [<&MSVBVM60.#595>] ; 这一句弹出了MsgBox.这里如果跟进去的话是一大堆API 。
...
所以正常反编译(学汇编语言和计算机编译原理去吧)的话,看到段了就会知道这是一个 Msgbox 函数,但是具体显示的内容是什么,那是根本看不出来的。
P.S. 针对楼上[你不懂就别乱说]说的插一嘴,未加壳的 .NET 为何能被反编译出源代码,那是因为 .NET 是托管,而托管有中间语言,所以它的源代码被编译成 msil 这种中间语言而非像 VB6 直接编译成机器语言了。
⑸ vb如何反编译程序
VB程序可以通过特定的反编译工具进行反编译,这一过程是将已编译的二进制程序(如EXE或DLL文件)转换回其源代码或类似源代码的高级语言表示。然而,反编译并不总是能完全还原原始源代码,特别是当原始代码经过混淆或加密处理时。
市面上存在多种.NET程序反编译工具,如dnSpy、JetBrains dotPeek和ILSpy等,这些工具都支持对VB.NET程序进行反编译。例如,使用dnSpy时,用户只需打开需要反编译的VB.NET程序文件,工具会自动解析并显示源代码。这些工具通常提供了友好的用户界面和丰富的功能,使得反编译过程相对简单和直观。
对于Visual Basic 5.0/6.0的程序,VB Decompiler是一个专业的反编译工具,能够反编译p-code形式的EXE、DLL或OCX文件,并以较高的成功率恢复源代码。即使程序编译为本地代码,VB Decompiler也能提供反编译线索,并尝试通过其强大的反汇编程序和仿真程序尽可能多地恢复源代码。
需要注意的是,反编译可能涉及法律问题,应确保在合法和道德范围内进行操作。在使用反编译工具之前,最好先了解相关的法律法规和使用条款。此外,反编译的结果可能受到多种因素的影响,如原始代码的混淆程度、保护措施等,因此结果的可读性和完整性可能会有所不同。
⑹ VB反编译还原代码 求助
如果说 VB3、VB4 还有可能的话,那么 VB5、VB6 反编译就是完全的痴人说梦了,VB6 已经不是纯粹的解释性语言了,根本不可能反编译出完整的源代码,对于这种语言写出来的程序,只能获得中间语言或低级语言。一般来说 VB6 都是 P 代码,而 P-Code 的代码逆向回来只能自己看,机器是识别不了的。
举个例子:
比如在 VB6 中有一句代码 : MsgBox "Decompile Test."
那么反编译出来的结果就是:
(代码太长不贴,这里贴主要的)
...
mov dword ptr [ebp-58], 004012E4 ; 这里把 "Decompile Test."的地址弄进去了。
...
call dword ptr [<&MSVBVM60.__vbaVarDup>]; 可以清楚的看出来,复制了一份变量的句柄。因为VB里字符串指向的是内存地址。
...
call dword ptr [<&MSVBVM60.#595>] ; 这一句弹出了MsgBox.这里如果跟进去的话是一大堆API 。
...
所以正常反编译(学汇编语言和计算机编译原理去吧)的话,看到段了就会知道这是一个 Msgbox 函数,但是具体显示的内容是什么,那是根本看不出来的。
P.S. 针对楼上[你不懂就别乱说]说的插一嘴,未加壳的 .NET 为何能被反编译出源代码,那是因为 .NET 是托管,而托管有中间语言,所以它的源代码被编译成 msil 这种中间语言而非像 VB6 直接编译成机器语言了。