1

我一直在尋找靜態分析工具來檢測C++/c共享和靜態庫中的緩衝區溢出,但沒有成功。 特別是與用不同編程語言編寫的程序集成的c/C++庫?用於C++/c共享和靜態庫的靜態分析工具

你有什麼建議嗎?

謝謝

+0

有很多c/C++靜態分析工具:https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C.2C_C.2B.2B 商業和開源工具。 Coverity,Klockworks,Parasoft等等。還有一節關於多語言工具的部分:https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C.2C_C.2B.2B – Lonzak

+0

感謝Lonzak。我真正需要的是一種可以理解兩種不同語言之間交互的工具:C/C++(作爲庫)和另一種語言。我已經看到一些C/C++工具可以分析程序的一部分,這些程序可以與C/C++一起用作庫,但他們仍然無法理解交互作用或整個集成庫來分析程序。 – Hex

回答

1

不爲C++,但對於C,並採用動態靜態分析:我們CheckPointer程序檢測各類內存訪問錯誤,其中包括許多Valgrind的不會。與靜態分析器不同,如果CheckPointer報告錯誤,則確實有錯誤。

測試共享庫或調用「外部代碼」的程序時,您將面臨的一個問題是需要表徵入口點和被調用的API的屬性。 [無論工具是靜態的還是動態的,你都必須這樣做,因爲被測試程序的正確性取決於它在入口處提供的gaurantees,以及外部API提供的gaurantees]。