反汇编共享目标文件上的符号
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。
我有一个使用 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。