Windows 上的胖二进制文件?

发布于 2024-09-29 14:01:42 字数 86 浏览 8 评论 0原文

我知道在 Mac OS X 上,您可以使用 lipo 将针对不同架构的多个二进制文件组合成一个二进制文件。我想知道Windows端是否有类似的解决方案。谢谢。

I know that on Mac OS X, you can combine multiple binaries that target different architectures into a single binary using lipo. I am wondering if there is a similar solution on the Windows side. Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

2024-10-06 14:01:42

不幸的是,所有 Windows 体系结构在 PE 标头中都使用相同的结构,所以不是。不过,可以融合 Windows 可执行文件和 DOS 可执行文件,因为 DOS 使用 MZ 标头。

Unfortunately all the Windows architectures use the same structures in the PE header, so no. It is possible to fuse a Windows executable and a DOS executable though, since DOS uses the MZ header instead.

笑,眼淚并存 2024-10-06 14:01:42

ARM 上的 Windows 11 中有一种真正的胖 PE 格式,名为 Arm64X,其中包含 Arm64 代码和Arm64EC 代码,甚至 快进序列中的 x86-64 存根,用于直接从 x86-64 代码调用

从根本上来说,Arm64X 二进制文件包含单独的 x64/Arm64EC 和 Arm64 二进制文件中的所有内容,但合并为磁盘上一个更高效的文件。构建的Arm64X二进制文件有两组代码、入口点等,同时消除了冗余部分以节省磁盘空间。

Arm64X 如何二进制文件有效吗?

Arm64EC 完全是一个 新的 ABI 与 ARM64 不兼容,专为混合 x86-64 和 ARM64 代码而设计

There's a real fat PE format in Windows 11 on ARM called Arm64X which contains both Arm64 code and Arm64EC code, and even x86-64 stubs in Fast Forward Sequence for calling directly from x86-64 code

Fundamentally, an Arm64X binary contains all of the content that would be in separate x64/Arm64EC and Arm64 binaries, but merged into one more efficient file on disk. The built Arm64X binary has two sets of code, entry points, etc., while eliminating redundant parts to save space on disk.

How do Arm64X binaries work?

Arm64EC is a completely new ABI that's incompatible with ARM64, designed for mixing x86-64 and ARM64 code

揪着可爱 2024-10-06 14:01:42

我认为您正在参考 ADS ,已添加到 NTFS 中以提供与 Mac 上类似的功能。虽然NTFS支持多个流,但PE加载器应该选择正确的一个,我不确定它是否实现了。

I think you are reffering to the ADS, that has been added to the NTFS to provide similar functionality as on Mac. Although NTFS supports multiple streams, the PE loader should choose the right one, and I'm not sure if it's implemented.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文