共享对象中是否有任何有用的元数据,如果有,如何提取它?

共享对象中是否有任何有用的元数据,如果有,如何提取它?

我有一个名为mod_dav_svn.so.我想知道这是该文件的自定义版本还是标准版本。

我尝试在 Google 上搜索该文件的 md5sum,但没有任何结果,表明它是自定义编译。

有没有办法从此文件中提取任何元数据,例如编译时间/选项/等?

答案1

使用发行版的包管理器并验证包以查看文件是否是原始文件。例如,在我的基于 rpm 的发行版中,我可以执行以下操作:

 # Find the full path to the file
 $ locate mod_dav_svn.so
 /usr/lib/apache/mod_dav_svn.so

 # Find out what package it belongs to
 $ rpm -qf /usr/lib/apache/mod_dav_svn.so
 apache-mod_dav_svn-1.6.16-1.i686

 # Verify that package to make sure the file hasn't been tampered with
 $ rpm -vV apache-mod_dav_svn
 ........     /usr/lib/apache/mod_dav_svn.so

这些点表示该文件的所有测试均正常。如果已更改,则可能表明校验和不匹配、日期更改、大小更改等。

答案2

第一步是file mod_dav_svn.so查看它的架构,以及ldd mod_dav_svn.so它链接的库(和版本)。

您可以使用以下命令搜索可打印字符串字符串( strings mod_dav_svn.so)。

您可以使用以下命令以可读文本形式显示大量信息对象转储。尝试使用 检查文件objdump -s mod_dav_svn.so | less,编译器可能在某处留下了线索。

相关内容