程式編譯保護機制

2022-04-16 08:41:46 字數 406 閱讀 2126

本篇文章主要內容摘選自 linux程式的常用保護機制、gcc 安全編譯選項、gcc安全保護機制,在本篇文章中,主要梳理彙總,便於以後查閱。

gcc編譯器中的引數pie和pic都可生成位置無關的**,pie主要用在可執行檔案上,pic用在共享庫上。

cannary機制還會調整區域性變數的順序。如果陣列位址在其他變數位址下面,那麼陣列緩衝區溢位後,可能修改其他變數的數值,當其他變數是函式指標時,就可被跳轉到shellcode上執行。將將陣列移到高位位址後,緩衝區溢位的位址面對的是cannary值保護,這樣可加大溢位攻擊的難度。這種保護方法只對函式棧中的控制資訊(cannary word,ebp)和返回位址進項保護,沒有對區域性變數進行保護。

通過檢查可執行檔案的屬性來檢視安全機制開啟情況,可以使用 checksec來檢視。

檢查後的如下:

程式保護機制

3.堆保護 nx 傳統的堆漏洞攻擊會覆蓋對塊首部,並檢視建立乙個偽造的塊,當記憶體釋放例程執行時可以使用該塊在任意記憶體位址處寫入任意4個位元組。具體為 4.dep nx dep data execution prevention 即資料執行保護,阻止存放在堆 棧或資料記憶體中的 執行,這一直以來都...

linux程式的常用保護機制

linux nx pie windows dep aslr dep是資料執行保護的英文縮寫,全稱為data execution prevention。資料執行保護 dep 是一套軟硬體技術,能夠在記憶體上執行額外檢查以幫助防止在系統上執行惡意 nx即no execute 不可執行 的意思,nx de...

Linux下程式的保護機制 checksec

相信很多人,檢視程式資訊時會用到,checksec這個命令。它會給你返回如下圖的結果,但是很多最開始看到的人,很多都看不懂,如果身為小白的我,跟在大佬後面比葫蘆畫瓢,這樣用。這篇博文就是用來解釋下面資訊的,希望對你有所幫助,同時也是為了以後自己忘記可以回顧。stack canray是專門針對棧溢位攻...