将部分添加到 ELF 文件
我需要能够向 ELF 文件添加任意部分。 我不能在这个程序中使用 GPL 代码,所以 BFD 是不可能的。 我可以使用 libelf/gelf 来阅读部分,但这些部分的文档相当稀疏,而且我不知道如何添加部分。 有人知道怎么做这个吗? 我宁愿不编写自己的 ELF 代码。
I need to be able to add an arbitrary section to an ELF file. I cannot use GPL code in this program, so BFD is out of the question. I can use libelf/gelf to read sections, but the documentation is fairly sparse for these, and I cannot figure out how to add a section. Does anybody know how to do this? I would rather not write my own ELF code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我知道这是一个老问题,但我找到了一个有效的示例,可以帮助我将其应用到我的项目中。 (以防万一有人偶然发现这个问题)
取自Sourceware Mail Archive
I know this is an old question but i found a working example that helped me to apply it to my project. (In case anyone stumbles upon this question)
taken from Sourceware Mail Archiv
这个关于 ELF 文件头的问题中有一些(可能)相关的答案。 接受的答案提到使用 objcopy 将部分添加到 ELF 文件,以及 BSD bintools 声称拥有 BSD 许可的
objcopy
实现,可能适合您的需求。There's a few (possibly) related answers in this question about ELF file headers. The accepted answer mentioned using
objcopy
to add sections to an ELF file, and the BSD bintools claims to have a BSD-licensed implementation ofobjcopy
that might suit your needs.以下链接可能有用:
libelf
的 API 的手册页。The following links could be useful:
libelf
's API in detail.看看 ELFsh,它现在是 ERESI 项目的一部分
http://www.eresi-project.org/
他们有大量的文档和工具的酷炫用法。
have a look at ELFsh, which is now part of the ERESI project
http://www.eresi-project.org/
They have a lot of documentation and cool uses of their tools.
我自己还没有尝试过,但你可以看看 libelf 中的 elf_newscn 函数
Haven't tried it (yet) myself but you might look at the function elf_newscn in libelf