![共享对象中是否有任何有用的元数据,如果有,如何提取它?](https://linux22.com/image/2209/%E5%85%B1%E4%BA%AB%E5%AF%B9%E8%B1%A1%E4%B8%AD%E6%98%AF%E5%90%A6%E6%9C%89%E4%BB%BB%E4%BD%95%E6%9C%89%E7%94%A8%E7%9A%84%E5%85%83%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%9C%89%EF%BC%8C%E5%A6%82%E4%BD%95%E6%8F%90%E5%8F%96%E5%AE%83%EF%BC%9F.png)
我有一个名为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
这些点表示该文件的所有测试均正常。如果已更改,则可能表明校验和不匹配、日期更改、大小更改等。