是否有任何实用程序修补ELF符号表中的任意符号,以便定义的符号变为未定义的符号?例如,这里是
readelf --syms
Symbol table '.symtab' contains 8 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
...
5: 0000000000000000 13 FUNC WEAK DEFAULT 3 my_message
6: 0000000000000000 19 FUNC GLOBAL DEFAULT 5 print_msg
7: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND puts
这里是相同二进制文件的预期输出,其中
my_message
未定义:
Symbol table '.symtab' contains 8 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
...
5: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND my_message
6: 0000000000000000 19 FUNC GLOBAL DEFAULT 5 print_msg
7: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND puts
ELF文件本身是可重定位的。修改应该只改变符号表。包含原始符号定义的实际部分应保持不变。
objcopy
可能是我正在寻找的,但到目前为止,我还没有找到任何选项(或组合)可以让我做出上述行为。