我希望能够将一些字符串、易于提取的键值对与我的 ELF 可执行文件关联起来。
我注意到 gcc 编译的 ELF 有一个.comment
部分
$ readelf -p .comment a.out
Run Code Online (Sandbox Code Playgroud)
所以我尝试复制这一点:
主要.c:
#include <stdio.h>
int main(){ puts("Hello world"); return 0; }
const char str[] __attribute__((section(".meta"))) = "hello meta world";
Run Code Online (Sandbox Code Playgroud)
测试:
$ readelf -p .meta a.out
String dump of section '.meta':
[ 0] hello meta world
Run Code Online (Sandbox Code Playgroud)
或者
$ readelf -p .meta a.out | sed -n 's/^[^]]*] //p'
hello meta world
Run Code Online (Sandbox Code Playgroud)
这有效。
是否有更好的方法将此类字符串键值对附加到 ELF 文件(而不将其分解为多个文件)?用户部分是否有一个命名空间(例如.user.meta
)可以防止我破坏某些东西?