10

可能重复:
查找使用的编程语言

因此,我有一个由可执行 (exe) 文件和 DLL 组成的应用程序。有没有办法可以找出用于开发此软件的特定语言。我尝试在反汇编程序中打开它,但内容似乎是乱码。有任何想法吗?

4

3 回答 3

3
  1. 在十六进制编辑器中打开 .dll 或 .exe 并搜索“版权”一词。大多数编译器将运行时库的版权信息以明文形式放入可执行文件中。

  2. 获取 IDA 专业版。http://www.hex-rays.com/idapro/这是处理二进制文件或进行逆向工程的工具。它将能够找到运行时库,也可能找到语言。

    该工具的评估和免费软件版本可以在这里找到: https ://www.hex-rays.com/products/ida/support/download.shtml

于 2010-03-04T19:21:46.510 回答
3

原则上,答案是否定的。然而,在实践中,只有几个选择:

  1. 如果 .dll 名称看起来像something.dll,它可能是一个本地 dll 映像,这意味着它可能是用 C 或 C++ 编写的。
  2. 如果 dll 名称看起来像Namespace.Something.dll,它可能是托管 dll,这意味着它是用某种 .NET 语言(C#、VB.NET 等)编写的
  3. 您可以检查 dll 导入以获取更多信息。如果 dll 使用mscoree.dll,那么它就是一个 .NET dll(即使它不遵循标准的 .NET 命名约定)。它还可能使用其他提供额外线索的特定于语言的 dll。
于 2010-03-04T19:26:59.293 回答
1

不太可能,除非它有一个重要的运行时库来提供它。例如,VB 应用程序过去需要一个名称为 VB 的巨大 DLL,Visual C++ 应用程序通常需要安装 C++ 运行时。但是现代语言的目标是独立于语言的运行时。甚至 Java .class 文件也可能来自多种源语言。

于 2010-03-04T19:10:05.210 回答