我有一个 500MB 的文件,其中包含一些自定义数据(即 ZIP 存档)。我想将它嵌入到我的 ELF 可执行文件中,这样当我分发 ELF 文件时,我将只能发送 1 个文件而不是 2 个文件。
问题是我不希望在我的应用程序启动时操作系统自动加载这 500MB ZIP 数据。我希望我的应用程序打开自己的文件,找到数据,并以这种“惰性”方式使用这些数据。
在 Windows 上,可以将这个 500MB ZIP 文件放入 PE 资源。这样,可执行加载程序就不会加载此数据。
ELF 格式中是否有一个地方可以嵌入如此大量的数据,而操作系统不会自动映射这些数据?
我知道我可以将数据附加到文件末尾,然后操作系统应该在加载阶段跳过它。但是是否可以使用ELF结构来嵌入这些数据呢?
ELF 格式中是否有一个地方可以嵌入如此大量的数据,而操作系统不会自动映射这些数据?
这对于 ELF 来说很简单——只需将数据放入未分配的部分即可。
这是最容易使用的objcopy
将任意数据文件转换为.o
可以链接到:
objcopy -I binary -B i386 -O elf64-x86-64 \
--rename-section .data=.mydata,readonly,contents src dst.o
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)