【发布时间】:2011-02-09 05:05:24
【问题描述】:
我有一些旧的 Windows 可执行文件。如何使用 Visual Studio 2010 编辑它们?有哪些方法可以查看exe的源代码?
【问题讨论】:
标签: c# c++ vb.net visual-studio executable
我有一些旧的 Windows 可执行文件。如何使用 Visual Studio 2010 编辑它们?有哪些方法可以查看exe的源代码?
【问题讨论】:
标签: c# c++ vb.net visual-studio executable
您无法从 exe 中获取 C++ 源代码,您只能通过反射获取某些版本的 C# 源代码。
【讨论】:
如果程序是用 C# 编写的,您可以使用.NET Reflector 以几乎其原始形式获取源代码。您将看不到 cmets 和局部变量名称,但它的可读性很强。
如果它是用 C++ 编写的,那就不那么容易了……即使您可以将代码反编译成有效的 C++,由于内联函数和难以逆转的优化,它也不太可能与原始源代码相似。
请注意,通过逆向工程和修改源代码,您可能会违反程序的使用条款,除非您自己编写或获得作者许可。
【讨论】:
如果是原生代码,可以反汇编。但是您不会看到程序员编写的原始代码。您将看到编译器生成的代码。这段代码可能已经过优化,虽然它在语义上是等价的,但它可能比普通的 ASM 更难阅读。
如果是字节码(MSIL 或 javabytecode),有反编译器可以产生很好的源代码。对于 .net,这将是反射器。
【讨论】:
我会(并且已经)使用 IDA Pro 来反编译可执行文件。它创建半完整代码,您可以反编译为汇编或 C。
如果你身边有调试符号的副本,在反编译之前将它们加载到 IDA 中,它将能够命名许多函数、参数等。
【讨论】:
恐怕您无能为力,因为您将无法以可读格式查看它,这几乎是故意的,它会显示解释的机器代码,没有格式或 cmets就像您通常在 .cs/.c 文件中一样。
这几乎是一个命中注定的场景。
有人已经在另一个website上问过这个问题
【讨论】:
使用 PE 资源管理器 click here to know more and download
【讨论】:
对于以任何语言编写的任何 *.Exe 文件。您可以使用 hiew 查看源代码(否则为 Hackers 视图)。您可以在www.hiew.ru 下载它。它将是演示版本,但仍然可以查看代码。
之后按照以下步骤操作:
按 alt+f2 导航到文件。
按回车键查看其汇编/c++ 代码。
【讨论】: