本地環境:GNU gdb (Debian 7.12-6) 7.12.0.20161007
*為可選 黑色 為gdb原生命令 綠色 為 pwndbg 或 peda 插件命令
命令 | 縮寫 | 效果 |
---|---|---|
gdb <file> <*pid> | 添加新程序 | |
gdb attach <pid> | 負載運行的程序 | |
set args <*argv> | 設置程序運行參數 | |
show args | 查看設置好的運行參數 | |
quit | q | 退出gdb |
symbol <file> | sy | 導入符號表 |
info <*b> | i | 查看程序的狀態/*查看斷點 |
frame | f | 查看棧幀 |
backtrace | bt | 查看堆棧情況 |
list | l | 顯示源代碼 (debug模式) |
display | disp | 跟蹤查看某個變量 |
start | s | 啟動程序並中斷在入口 debug模式停在main(),否則停在start() |
run | r | 直接運行程序直到斷點 |
continue | c | 暫停后繼續執行程序 |
next | n | 單步步過 |
step | s | 單步步入,函數跟蹤 |
finish | fin | 跳出,執行到函數返回處 |
break
|
b | 下斷點 |
watch | 下內存斷點並監視內存情況 | |
p | 打印符號信息(debug模式) | |
i r a | 查看所有寄存器 | |
i r <esp/ebp..> | 查看某個寄存器 | |
set $esp = 0x01 | 修改某個寄存器的值 | |
heap | 查看分配的chunk | |
vmmap | 查看內存分配情況 | |
bin | 查看 Bin 情況 | |
x /<num><n/f/u>
|
顯示內存信息,具體用法附在下面 | |
context | 打印 pwnbdg 頁面信息 | |
dps <addr> | 優雅地顯示內存信息 | |
disassemble <func> | 打印函數信息 | |
vmmap | 顯示程序內存結構 | |
search <*argv> | 搜索內存中的值 輸入 search -h 可查詢用法 |
|
checksec | 查看程序保護機制 | |
parseheap | 優雅地查看分配的chunk | |
aslr <on/off> | 打開/關閉 ASLR 保護 | |
pshow | 顯示各種踏板選項和其他設置 | |
dumpargs <num> | 顯示在調用指令處停止時傳遞給函數的參數 | |
dumprop <from> <to> | 顯示特定內存范圍內的所有ROP gadgets | |
elfheader | 從調試的elf文件獲取頭信息 | |
elfsymbol | 從ELF文件獲取非調試符號信息 | |
procinfo | 顯示來自/proc/pid的各種信息 | |
readelf | 從elf文件獲取頭信息 |
x指令的具體用法:n、f、u為控制打印形式的參數
'num' 表示打印的數量
'n' 代表打印格式,可為o(八進制),x(十六進制),d(十進制),u(無符號十進制),t(二進制),f(浮點類型),a(地址類型),i(解析成命令並反編譯),c(字符)和s(字符串)
'f' 用來設定輸出長度,b(byte),h(halfword),w(word),giant(8bytes)
。
'u' 指定單位內存單元的字節數(默認為dword) 可用b(byte),h(halfword),w(word),giant(8bytes)
替代
x指令也可以顯示地址上的指令信息,用法:x/i