反汇编共享目标文件上的符号

Disassemble symbols on shared object file

我有一个使用 Android-NDK 构建的共享对象 xlib.so 文件,我需要提供它。我不希望它被逆向工程。

我尝试使用 'objdump' 并创建了一个反汇编版本,我可以在其中看到类似 <_ZNSt6__ndk113__vector_func7_some_other_text@plt> 的内容,它看起来像是地址前面的某种功能标签。

我是否也可以删除这些信息,这样即使有人试图反汇编 .so 文件,除了纯汇编之外他应该看不到任何东西?

您不能从共享库中删除 所有 符号,因为那些在 动态链接需要动态符号 table。

您可以删除所有其他符号:

strip --strip-all ./libfoo.so

或:

strip --strip-unneeded ./libfoo.so

--strip-all 看起来好像应该去掉 all 符号,并在应用时执行 到不是共享库的文件,但 strip 理解毫无意义 从共享库中删除动态符号 table。