2011-12-14 102 views
1

我想在GCC 3.4.3編譯器中設置選項-fstack-protector-all來啓用一些堆棧粉碎保護方案。但編譯時,我得到了
錯誤:無法識別的命令行選項「-fstack-protector-all」 。所以看起來這個選項在GCC 3.4.3中沒有實現?或者我錯過了什麼?替代GCC 3.4.3選項-fstack-protector-all?

如果它在舊的GCC編譯器中沒有實現什麼是最好/最簡單的替代方案?

或者也許一些有用的代碼模式來實現C代碼本身堆棧粉碎保護器?

感謝

+2

GCC 3.4.3已超過七年。該升級了。 – TonyK 2011-12-14 12:09:13

+0

我們不能,因爲我們使用一些與GCC4不兼容的供應商庫... – 2011-12-14 12:10:35

回答

0

你似乎是唯一一個次要版本掀起了gcc版本,這似乎是能夠爲您提供這個特殊的粉碎保護。我發現這個谷歌搜索時:

http://www.research.ibm.com/trl/projects/security/ssp/

也許你可以升級到一個(一個小的數字了),並且仍然是與供應商兼容?

此外,至少在很多年裏,canade的值都是在gcc中默認設置的(不需要使用你提到的選項),你看過一個簡單程序的反彙編嗎?如果您看到靠近堆棧末尾的(gs)位置存儲/加載,則已經實施。