前言
在linux系统中,我们经常会遇到各种各样的动态库文件,常见的是.so后缀,那么我们应该如何分析这些文件的用途和作用呢?毕竟我们不能一知半解的“搞事情”。
正文
查看文件属性
首先,我们从整体上了解一下该文件的基础属性,此时可以使用file命令,示例用法如下图所示:
通过执行结果,我们可以知道这是一个32位的动态库文件。
查看依赖文件
一般来说,动态库文件都会依赖其他动态库,具体情况还要看该动态库文件的作用和功能,此时可以使用ldd命令,示例用法如下图所示:
可以看出test.so文件依赖了另外7个文件。
此外,我们可以使用readelf命令实现相同的目的,示例用法如下图所示:
查看符号表
查看so动态库的符号表和导出方法列表,可以使用nm命令,示例用法如下图所示:
查看汇编信息
如果我们需要查看某个方法的汇编实现,可以使用objdump命令,其实它也具有nm命令的能力,示例命令如下:
输出结果比较多,下面只展示部分结果: