【问题标题】:How to identify the Programming Language used to Develop a Software? [duplicate]如何识别用于开发软件的编程语言? [复制]
【发布时间】:2011-01-23 19:55:06
【问题描述】:

可能重复:
Find Programming Language Used

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

【问题讨论】:

标签: reverse-engineering disassembly


【解决方案1】:

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

【讨论】:

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

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

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

    【讨论】:

      【解决方案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。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-09
        • 1970-01-01
        • 2016-04-22
        • 2023-01-12
        相关资源
        最近更新 更多