test
PWN_暫存器&保護機制
Register
通用暫存器
EAX : 累加器
EBX : 指向DS段的pointer
ECX : 字符、循環操作的計數器
EDX : I/O pointer
ESI : pointer 指向DS暫存指的資料
EDI : pointer 指向ES暫存指的資料
ESP : pointer in stack (SS段)
EBP : pointer to stack top (SS段)
分段暫存器
cs : Code Segment
DS : Data Segment
SS : Stack Segment
ES : 預留
FS : 預留
GS : 預留
EFLAGS暫存器
狀態標示
- CF : 進位(bit 0) 進位 -> 1 , else -> 0
- PF : 奇偶 個位數為偶 -> 1 , else -> 0
- AF : 輔助進位 , 標註低四位是否向高四位進位或借位
- ZF : 零 為0 -> 1 , else -> 0
- SF : 符號 小於0 -> 1 , else -> 0
- OF : 溢出 發生 -> 1 , else ->0
DF : 控製字符串處理的從左到右或從右到左方向的標誌
系統標誌、IOPL域 (用於控制作業系統、執行操作,不允許被應用程式所修改。)
checksec
Arch
檔案執行的平台
RELRO
Partial RELRO/FULL RELRO, FULL RELRO = 無法修改got表
Stack
Canary found = 無法直接溢位修改返回地址,需改寫指標與區域變數
NX (No-execute) windows(DEP)
shellcode不可執行,可用ROP-chain繞過,堆疊中資料沒有執行權限
PIE(Postion-Indenpendent executable) window(ASLR)
地址隨機化,basic address會變