二進位制的保護機制

2022-05-04 04:27:10 字數 1162 閱讀 2216

這裡主要講的是ctf中linux下的elf二進位制檔案的保護機制。在linux中有乙個指令碼checksec命令可以檢視當前二進位制檔案的保護機制。任意安裝一款gdb外掛程式都會把checksec指令碼包含進來。

在gdb中執行:

gdb> checksec test

canary : no

nx : yes

pie : no

fortify : no

relro : partial

直接在shell中執行:

$ checksec test

arch: i386-32-little

relro: partial relro

stack: no canary found

nx: nx enabled

pie: no pie (0x8048000)

可以看到checksec可以檢視當前二進位制檔案的指令架構以及採取了哪些保護機制。

這個選項表示棧保護功能有沒有開啟。

棧溢位保護是一種緩衝區溢位攻擊緩解手段,當函式存在緩衝區溢位攻擊漏洞時,攻擊者可以覆蓋棧上的返回位址來讓shellcode能夠得到執行。當啟用棧保護後,函式開始執行的時候會先往棧裡插入cookie資訊,當函式真正返回的時候會驗證cookie資訊是否合法,如果不合法就停止程式執行。攻擊者在覆蓋返回位址的時候往往也會將cookie資訊給覆蓋掉,導致棧保護檢查失敗而阻止shellcode的執行。在linux中我們將cookie資訊稱為canary。

nx即no-execute(不可執行)的意思,nx(dep)的基本原理是將資料所在記憶體頁標識為不可執行,當程式溢位成功轉入shellcode時,程式會嘗試在資料頁面上執行指令,此時cpu就會丟擲異常,而不是去執行惡意指令。

這個保護機制查了很久都沒有個很好的漢語形容,根據我的理解它其實和棧保護都是gcc的新的為了增強保護的一種機制,防止緩衝區溢位攻擊。由於並不是太常見,也沒有太多的了解。

設定符號重定向**為唯讀或在程式啟動時就解析並繫結所有動態符號,從而減少對got(global offset table)攻擊。

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...

mysql二進位制 MySql二進位制連線方式詳解

使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命令提示視窗,你可以...