【发布时间】:2020-07-22 04:37:57
【问题描述】:
我有一个未记录的共享对象 libXSAL.so,我想链接它。
我已经编写了一个包含我需要的函数的部分头文件,其中的签名是从 Ghidra 的逆向工程中推断出来的。
gcc 在链接时失败:undefined reference to 'function_name' 对于我使用的每个函数。
nm -D libXSAL.so
nm: libXSAL.so: No symbols
objdump -t libXSAL.so
libXSAL.so: file format elf32-little
SYMBOL TABLE:
no symbols
但是,Ghidra 发现了符号表中给出的函数名称,通过手动选择 hexdump,我也可以看到它们。
据我所知,名称修改在库中和我自己的代码中都没有;库好像是C,我的代码也是。
我的目标是能够按原样链接到这个库。
为什么有些工具可以看到符号,而有些则看不到?
【问题讨论】:
-
它可能已被剥离,因此您无法链接它。试试
objdump -d,看看是不是只有乱码。 -
@S.S.Anne
objdump -d没有给出超出上述第一行的输出。 -
你是为 x86 还是 ARM 编译?
-
ARM 小端序。
标签: c gcc linker shared-libraries