如何识别用于开发软件的编程语言?

时间:2010-03-04 19:06:30

标签: reverse-engineering disassembly

  

可能重复:
  Find Programming Language Used

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

3 个答案:

答案 0 :(得分:2)

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

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

    该工具的Evaulation和免费软件版本可在此处找到:https://www.hex-rays.com/products/ida/support/download.shtml

答案 1 :(得分:1)

不太可能,除非它有一个重要的运行时库来提供它。例如VB应用程序曾经需要一个名为VB的巨大DLL,Visual C ++应用程序通常需要安装C ++运行时。但现代语言针对的是与语言无关的运行时。甚至Java .class文件也可能来自各种源语言。

答案 2 :(得分:1)

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

  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来提供额外的线索。