iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0

GDB (GNU Debugger)是一個用來幫助程式開發者找出程式中錯誤的工具。它可以讓你在執行程式時,暫停程式的運行,檢查程式的內部狀態,找出錯誤的地方,就像你在一個電影中按下暫停鍵一樣。你可以查看變數的值、程式的執行流程,並找到導致問題的原因。總之,GDB 是一個用來除錯程式的有用工具。

  • 先來安裝好用的 GDB 外掛功能 PEDA
    PEDA(Python Exploit Development Assistance)是一個用於加強 GDB(GNU Debugger)的工具,主要用於安全研究人員和漏洞開發者。它通過添加新的命令和功能,讓 GDB 更適用於分析和利用軟件漏洞,使得調試和研究更加便捷。 PEDA可以幫助用戶更好地查看內存、寄存器、堆棧等信息,還支持漏洞開發和自動化任務。

    https://github.com/longld/peda

    git clone https://github.com/longld/peda.git ~/peda
    將工具從 github 抓下來,並保存在當前用戶的矚目錄下的 peda 目錄中。
    echo "source ~/peda/peda.py" >> ~/.gdbinit
    並設定每次啟動 GDB 時,自動加載 peda.py 腳本。成功安裝後,每次啟動 GDB 後,都會友 -peda的字樣出現。如下圖:
    image.png

  • 以下示範是以 GDB 來偵錯 Bash 程式的一些基本操作,以及查看它的暫存器內容。
    image.png

    • gdb -q /bin/bash:這個指令告訴電腦要用 GDB 來偵錯 /bin/bash 這個程式。-q 是一個選項,表示靜默模式,它讓 GDB 在啟動時不會顯示冗長的歡迎信息。

    • b main / break main:這是一個 GDB 斷點設置指令。b 是縮寫 ,也可以打break,表示設置斷點。main 是希望在程式中設置中斷點的函數名稱。這個指令是告訴 GDB 在程式執行時,當它達到 main 這個部分時,要先暫停下來,讓你檢查問題。

    • r / run:這是 GDB 開始執行程式的指令。一旦斷點被觸發,程式將會在 main 函數內部停下來,等待你的進一步指示。

    image.png

    • info registers:這是一個 GDB 指令,用於顯示 CPU 暫存器的內容。當程式停在斷點處時,你可以使用這個指令來檢查 CPU 暫存器的值,對於了解程式的執行狀態非常有用。

上一篇
Linux 常用指令 - 檔案操作篇
下一篇
GDB 緩衝區溢位攻擊 (Buffer Overflow)
系列文
滲透測試小白的 CPENT 證照學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言