如何发现并列出 Linux 中软件使用的静态库?

如何发现并列出 Linux 中软件使用的静态库?

背景:我们有一个适用于 Linux 发行版的第三方供应商软件,目前正在对其进行测试lubuntu。我们有安装文件和一个install.shshell 脚本,用于在正确的目录中安装软件所需的二进制文件。

我们想确定该软件内部使用哪些静态库(这样我们就可以判断它们是否已经过时并在我们的环境中引入漏洞)。

我们迄今所做的:我们查看了,ldd但它只列出了共享或动态库。 也一样objdump。我们过去常常strings查看隐藏在某些二进制文件中的字符串,以查看库版本号等的迹象。但对于大型二进制文件来说,这是一个非常耗时且效率低下的过程。

问题:在Linux环境下,如何发现并列出软件中使用的静态库?

答案1

我们如何发现并列出 Linux 程序中使用的静态库?

ldd <exe filename>显示动态链接库

nm <exe filename>显示文件中的符号。

要查看哪些符号来自静态库,需要nm 针对这些库运行以获取其中的符号(函数等)列表,然后将它们与来自的符号列表进行比较nm <exe filename>

您可以使用comm命令来比较列表。请参阅man comm以了解详细信息。

这是从这个论坛上获取的这里

来源获取可执行文件中使用的静态库列表,回答者博士

相关内容