現在時間:Mon, Sep 18, 2023 6:03 AM,
都是 windows 更新害的...
接續昨... 接續 12 個小時之前,我們說到 ELF 文件,ELF 文件中將程式分為許多不同的段(segment),每個 segment 都有特定的屬性和用途,其中比較重要的幾個段分別為:
我們用以下的例子跟大家說明
int a; // .bss
int b = 3; // .data
int main(void) { //
func(a,b); // .text
return 0; //
} //
將程式分段其中一個原因,是為了將程式載入記憶體時可以有效的管理,並且可以依據不同區域設置不同權限(可讀、可寫、可執行)。
程式載入記憶體後,記憶體的配置如下:
低地址
==========================
| .text (程式碼) | //r-x
--------------------------
| .data (已初始化資料) | //rw-
--------------------------
| .bss (未初始化資料) | //rw-
--------------------------
| ↓ Heap | //rw-
--------------------------
| ↓ |
--------------------------
| |
--------------------------
| |
--------------------------
| ↑ |
--------------------------
| ↑ Stack | //rw-
===========================
高地址
我們可以看到 Heap 以及 Stack 區域,這兩個部分在程式開始執行後,才會隨著執行過程中填入資料,也通常是最能 Pwn 的地方,至於原因,因為已經超過 300 字很多了,明天再說。
不過在怎麼累還是要持之以恆寫個正文
source:每日頭條
所謂的什錦大雜燴就是 什錦 大雜燴,謝謝大家