问题:我们希望能够确定某个程序正在使用特定版本的内部库。例如,如果软件在内部使用旧的、已弃用的库。此外,我们希望能够知道它在主机系统上使用了哪些共享库。
到目前为止我们所做的:我们过去常常strings2
查看可执行文件中的 UNICODE 和 ASCII 字符串。这些字符串的手动分析可能会提供有时在内部使用的库版本。可以想象,这是一种低效的方法,而且不是很可靠。我们还查看了“Dependency Walker”以构建所有依赖项的树。但是,这不允许我们知道内部是否正在使用过时的库。我们还阅读了两篇围绕该主题的研究论文:
- 基于木马和病毒家族字符串的自动分类系统,作者:Tian、Batten、Islam 和 Versteeg,MALWARE 2009。
- 自动库版本识别,技术探索,Thomas Rinsma,2017 年。
问题:是否有更好的方法或方法来确定可执行文件是否在内部使用过时的库?例如,查看字符串是一种可能的方法,但有没有办法自动执行此操作?因为否则,查看 1000 行 ASCII 和 UNICODE 字符串可能会很耗时。