PWN入門使用 2018-02-16 16:10:23
GDB是一個由GNU開源組織發布的、UNIX/LINUX操作系統下的、基於命令行的、功能強大的程序調試工具。
敲gdb進入gdb-peda
file pwn1 #選擇加載的文件
gdb -q
# -q 靜默模式
gdb: r(run ) #執行
gdb:disas main #反編譯main()函數 經常用
gdb:b (break) #設置斷點
b func_name #對函數下斷點
b *addr #對地址下斷點
info b # 查看斷點
分別對應寄存器取值情況/代碼/棧的情況
info r(egister) #查看寄存器情況
ni #單步調試
si #step into 步進 進到某個函數里面
bt #backtrace 查看現在的堆棧情況 對於了解程序執行比較有用
c #continue 繼續執行到下一個斷點
打印地址的值
x/wx adress #打印該地址的值,w代表 word.在32位嵌入式系統中,一個字WORD占32bit,即4個字節,1個字節=bit。
如x/10wx 0xffffce90 #10代表打印10個,w代表32位,可以換為b/h/g 分別對應1 2 8byte, x可以替換為 u (unsigned int ) s(string) d(10進制) i(指令)
set *addr =value #設置地址的值
list #列出源碼
print val_name #打印變量值
info locals #查看所有局部變量的值
在cmp eax edx處下斷點 然后r執行
set $eax=$edx 敲擊回車。。
gdb-peda 版本中的好用的功能
elfsymbol #可以把程序中的函數以及地址列出來 做ROP特別有用
vmmap #查看進程中的權限
readelf #查看section
find 字符串 #查找在內存中查找字符串 如/bin/sh(就是shell)