目錄
[TOC]
pwndbg環境搭建
項目地址
https://github.com/pwndbg/pwndbg
搭建過程
1、安裝環境基礎
git
python
python-pip
2、安裝過程
使用git命令克隆遠程項目到本地。
git clone https://github.com/pwndbg/pwndbg
進入項目根目錄并執行一鍵安裝腳本
cd pwndbg && ./setup.sh
該腳本主要是檢查了一下系統信息,然后根據系統信息自動安裝了一些所需要的工具和依賴庫包括gdb,當然有時需要通過源碼去編譯gdb。
3、配置啟用pwndbg
安裝完成后,通過編輯用戶目錄下的gdb配置文件.gdbinit,通過該文件可以啟用pwngdb,主要在文件中添加的內容如下,
# 文件路徑為所克隆的項目的路徑。
source [/path/to/pwndbg/gdbinit.py]
4、問題
待補充。。。
pwntools安裝
項目地址
https://github.com/Gallopsled/pwntools/
搭建過程
1、安裝環境
python
python-pip
2、安裝過程
使用pip命令直接安裝
pip install pwntools
4、問題
待補充。。。
環境使用
pwndbg使用
程序動態調試
# 直接gdb后面接程序進入程序調試
gdb [/path/to/program]
pwngdb常用命令
info
信息查看
info functions查看所有函數的信息。
info breakpoints查看所有斷點的信息。
info registers查看所有寄存器的信息。
info watchpoints查看所有內存斷點的信息。
info threads查看所有線程的信息。
run
直接運行程序直到遇見斷點。
start
debug模式停在main(),否則停在start()。
break
下斷點,后面可直接加函數名表示在該函數的開頭處下斷點,也可以直接加地址不過需要在地址前加上一個*號。如,break main或者break *0xdeadbeaf。
delete
可以使用delete來刪除斷點,delete breakpoints刪除所有斷點,delete 加上一個序號可以刪除指定的斷點。
stack
查看棧里的內容。
x
查看指定內存地址的內容。
一般是x/[n/f/u]的形式,其中n、f、u為控制打印形式的參數
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
checksec
檢查程序的保護機制。
next
動態調試命令,單步步過。
step
動態調試命令,單步步入。
finish
執行到當前函數的返回處。
vmmap
查看程序堆棧結構。
search
搜索內存中的信息。
continue
繼續運行到下一個斷點。
待補充。。。