Dependencies
查找二進製文件依賴的所有文件(包括庫)
我想查找二進製文件所依賴的所有文件(包括庫、配置文件,基本上是二進製文件中引用的所有文件)。
我知道,您可以使用 找到共享庫
objdump, ldd, readelf
,但是動態載入的庫 (dlopen
) 和其他文件 (/etc/some/config
) 呢?到目前為止,我有一個半生不熟的解決方案,它在二進製文件中搜尋字元串(文件名)(
$ strings /path/to/binary | grep lib
),但我認為正確的解決方案是搜尋系統呼叫二進製文件(read, write, dlopen, etc
)。不幸的是,我對反彙編器沒有任何經驗或對其他方法的想法。
此外,我不能使用依賴於執行二進製文件(strace 和擺弄等)的解決方案,因為我需要對大量二進製文件執行此操作。
找到二進製文件引用的所有文件的大約 90% 的解決方案就足夠了。
要檢查的二進製文件是標準 (Arch) Linux (multilib) 二進製文件。我假設它們中的大多數是由 gcc (-O2) 編譯的。
你可以試試:
strace -fe open cmd 2>&1 >/dev/null | grep -v '= -1' | cut -d\" -f2
查看它在執行時打開的內容。