【问题标题】:How can I determine which framework was used to build a particular Windows desktop application?如何确定用于构建特定 Windows 桌面应用程序的框架?
【发布时间】:2009-10-07 14:59:25
【问题描述】:

如何确定用于构建特定 Windows 桌面应用程序的平台或编程语言?

【问题讨论】:

  • 你的意思不是问他们吗?
  • 没有任何信息,您所说的软件是什么意思,很难给您一个好的答案。您是指基于 Web 的应用程序、桌面软件、Windows、*nix、Mac 等吗?
  • WINDOWS 软件 .. 诺基亚 PC 套件示例

标签: frameworks reverse-engineering


【解决方案1】:

有多种方法可以尝试检测特定软件是用哪种语言编写的。通常,执行此操作的工具会检查 PE Header 并尝试做出有根据的猜测。

有时作者压缩/加密 PE 的方式使得这种检测几乎不可能。

有一个名为PEiD 的旧工具可以帮助您识别软件是用哪种语言编写的。

【讨论】:

    【解决方案2】:

    Dependency walker 还可以通过显示应用程序所依赖的所有 dll 以及导出方法的名称来提供一些启示。

    【讨论】:

    • 太棒了!这对我有帮助
    【解决方案3】:

    有一些针对特定情况的选项,但总的来说,不,没有一种单一且可靠的方法可以做到这一点。

    【讨论】:

      【解决方案4】:

      ProcessExplorer 来自 SysInternals 可能很有用。它可以检测 .NET 应用程序,并列出加载的 DLL,如果其中一些是对语言或框架的运行时支持,这会有所帮助。

      我碰巧安装了诺基亚 PC 套件,ProcessExplorer 说它不是 .NET 应用程序。它已经加载了 MFC71U.DLL 和 MSVCR71.DLL,I believe 来自 MFC - 当然诺基亚 PC 套件可以简单地使用用 MFC 编写的组件。 EXE 中还有一些字符串,在我看来就像 C printf 字符串。

      【讨论】:

        【解决方案5】:

        有多种方法可以将列表范围缩小到使用的语言,但您无法了解所有“方法”。另外,如果不同平台上有许多开发人员怎么办? ;)

        或者更好的是,该应用是多种语言的组合?

        【讨论】:

          【解决方案6】:

          我想知道为自然language identificationauthorship identification 开发的技术是否可以适应这个问题。在我看来,这是一个足够有趣的研究问题。

          一个有点similar question的已经被摆出来了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-09-14
            • 1970-01-01
            • 2014-04-07
            • 2013-08-18
            • 2010-12-26
            • 2022-01-14
            • 2011-10-12
            相关资源
            最近更新 更多