【问题标题】:Is there an open source equivalent of Linux' /lib/ld-linux.so for Windows?是否有适用于 Windows 的 Linux 的 /lib/ld-linux.so 的开源等效项?
【发布时间】:2011-08-17 14:42:57
【问题描述】:

是否有提供与 Linux'/lib/ld‑linux.so.2 相同功能的 Windows 开源程序?

【问题讨论】:

  • 你打算用它做什么?
  • @karlphillip:我想使用自定义 PE 部分中的信息来扩展动态链接过程。

标签: windows dll dynamic-linking portable-executable


【解决方案1】:

您可能想查看ReactOS project

他们应该拥有加载 DLL 的一切,而且它是开源的。

【讨论】:

    【解决方案2】:

    加载程序是 Windows 操作系统的核心部分;我知道没有开源替代方案,而且我不确定在任何情况下都能正确地做到这一点 - 你必须处理 kernel32/ntdll 关于地址空间布局的假设雷区,支持SxS、ASLR、热补丁等。

    开源链接器很常见(例如 gnu 工具),但我认为这不是您所追求的。

    【讨论】:

      【解决方案3】:

      Enhanced Dynamic Linking Library for MinGW under MS-Windows 可能会有所帮助。尤其是底部的 edll 解决方案。

      【讨论】:

        【解决方案4】:

        您的意思是使用动态库?在 Windows 中,当您在 .DLL 上使用 LoadLibrary 时,这是自动的。

        【讨论】:

        • 对。我知道 Windows 在执行二进制文件时会动态链接它们(或在 LoadLibrary 的情况下加载),但我想知道是否有适用于 Windows 的开源动态链接器,我可以对其进行修改。
        • 您想将 DLL 合并到父可执行文件中吗?这在一般情况下不起作用,因为 DLL 的 可执行文件(或更准确地说,EXE 是 DLL)。它们有很大的重叠部分会被覆盖。
        • 然而,一旦您开始对 DLL 的内容做出假设,还有其他选择。对于 .NET 框架生成的 .DLL,最大的可能是 ilmerge.exe
        猜你喜欢
        • 2010-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多