是否存在Visual Basic 6反编译器?

52
我在工作的公司做过一个项目,但是源代码丢失了,而我又找不到 Visual Basic 6 的反编译器;这种东西真的存在吗?我只有从用户机器上拯救回来的 EXE 文件。

3
关于VB6反编译器的几个重复问题之一。 - MarkJ
6个回答

28

针对您的应用程序的最终编译代码,简单回答是“不行”。不同的工具可以从代码中提取不同的信息(例如表单设置),并且存在P代码反编译器(请参见Edgar的优秀链接以获取此类工具)。但是,到目前为止,没有本地代码的反编译器。我也不知道其他高级语言是否有类似的工具。


22

抱歉使用标志符号,但是此回答中的许多链接都是下载病毒的。 - user875234

17

我过去使用过VB Decompiler Lite (http://www.vb-decompiler.org/),虽然它不能提供原始源代码,但可以提供很多信息,例如方法名称、一些变量字符串等等。通过更多的知识(或完整版),可能可以获得更多信息。


2
这个对我很有用 - 它输出了一堆汇编代码; 但我需要的是字符串,它们很容易从反编译的代码中提取。 - Don Vince
是的,我也在寻找一些“硬编码”的字符串,所以这个工具确实帮了我很大的忙。 - Jonathan Williams
1
这太棒了,正是我所需要的。谢谢! - Steve's a D

10

您是否尝试过名为VBReFormer的工具(http://www.decompiler-vb.net/)?我们在去年使用它大量获取应用程序的源代码(源代码已丢失6年),效果很好。我们还能够直接从VBReformer进行一些用户界面更改,并将其保存到exe文件中。


4
在这种情况下,链接 答案的重要部分。如果链接页面发生更改,答案就毫无用处了。 - MarkJ
免费版本提供了一个干净的GUI,但变量和语句是被阻止的。也许如果你付钱,代码方面会有不同的呈现方式。但我还注意到有些代码不应该存在。 - Mr.J

1
在我需要尝试找出一些旧的VB6程序在做什么的经验中,我转向Process Explorer (Sysinternals)。我按照以下步骤进行:
  1. 运行Process Explorer
  2. 运行VB6 .exe
  3. 在Process Explorer中查找exe
  4. 右键单击进程
  5. 检查“Strings”选项卡
这并没有显示实际的功能,但它列出了它们的名称,从哪个文件夹复制文件以及复制到哪里,如果访问了数据库,它还会显示连接字符串。足以帮助您了解情况,但对于复杂的程序可能无用。我查看的程序非常基本(没有双关语)。
YMMV.

0

是的,我认为您可以从vbdecompiler.org网站下载它并单独获取其帮助文件。 此外,YouTube上有一个视频,解释了如何使用它来从exe文件中获取代码并保存。 希望我能帮到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接