查找二进制文件依赖的所有文件(包括库)

查找二进制文件依赖的所有文件(包括库)

我想查找二进制文件依赖的所有文件(包括库、配置文件,基本上是二进制文件中引用的所有文件)。

我知道你可以找到共享库objdump, ldd, readelfdlopen但是动态加载的库 ( ) 和其他文件 ( /etc/some/config)又如何呢?

到目前为止,我有一个半成品的解决方案,它在二进制文件中搜索字符串(文件名)($ strings /path/to/binary | grep lib),但我认为正确的解决方案是搜索二进制文件所做的系统调用(read, write, dlopen, etc)。

不幸的是,我没有任何反汇编程序的经验,也不了解其他方法。

另外,我无法使用依赖于执行二进制文件的解决方案(strace、摆弄等),因为我需要对大量二进制文件批量执行此操作。

找到二进制文件引用的所有文件中约 90% 的解决方案就足够了。

要检查的二进制文件是标准 (Arch) Linux (multilib) 二进制文件。我假设其中大部分是由 gcc (-O2) 编译的。

答案1

你可以尝试:

strace -fe open cmd 2>&1 >/dev/null | grep -v '= -1' | cut -d\" -f2

查看它在运行时打开的内容。

相关内容