天天看點

pwn環境搭建_pwndbg、pwntools環境搭建(Unix系統)

目錄

[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

繼續運作到下一個斷點。

待補充。。。