2011-12-12 91 views
2

我正要爲某個項目使用開源的加密庫(具體來說,我將使用Crypto ++)。出於顯而易見的原因,我們有興趣查看Crypto ++的最終用於查找漏洞的部分。儘量減少鏈接後的代碼量

我們將只使用幾種算法(一種簽名和一種加密算法),並且不需要整個代碼庫。在我們使用Crypto ++庫編譯代碼之後,有什麼方法可以找出哪些函數已經被使用(鏈接)了嗎?這樣我們可以回去,刪除不必要的加密函數的實現,並且僅對需要的部分進行代碼審查。

任何建議將不勝感激!

+0

+1偉大的問題 – gahooa

回答

1

對於Windows,你可以使用你的應用程序配置文件Dependency Walker

的Dependency Walker是一個免費的實用工具,它可以掃描任何32位或64位Windows模塊(EXE,DLL,OCX,SYS等)並構建所有相關模塊的分層樹狀圖。對於找到的每個模塊,它列出了該模塊導出的所有功能,以及其中哪些功能實際上由其他模塊調用。

對於Linux,您可以使用ldd命令。

+0

謝謝!顯然binscan或ELF庫查看器可能會在Linux中做到這一點。 – user1094206

+0

@ user1094206啊,不同的平臺。我添加了'ldd'作爲你可能可以使用的一個可能的命令。 – vcsjones

0

對於動態鏈接的二進制文件,我會使用nm -D binary | grep'U'。這將顯示所有未定義的動態符號(即,運行時鏈接程序需要通過庫來解析的符號)。