iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
Security

逆向系列 第 18

逆向筆記 - 除錯器

  • 分享至 

  • xImage
  •  

在 Linux/Unix 環境中,最常見的除錯器之一是 GDB (GNU Debugger),除錯器 (Debugger) 是一種程式開發工具,可以幫助程式設計師觀察程式的執行過程,找出程式中可能存在的錯誤 (Bug),包含以下功能:

  • 設斷點 (breakpoint),當程式執行到某一行時會暫停
  • 單步執行 (step / next),一行一行執行並觀察程式內部怎麼運作
  • 檢查記憶體、暫存器、變數,確認程式的執行行為。

其中 GDB 常用指令介紹:

  1. break <函式名稱 / 行號>
    在指定的地方設置斷點 (breakpoint)。

當程式執行到 main 函式的第一行時停下來

break main
  • 當程式執行到 checkFlag 函式的第一行時停下來
break checkFlag
  1. continue (縮寫 c)
    讓程式「繼續執行」直到遇到下一個斷點。
    假設已經在 main 設了斷點,程式一開始就會停在 main 開頭,此時輸入 continue,它會繼續跑執行,直到遇到所設的下一個斷點 (比如 checkFlag)。

    continue
    
  2. ni (next instruction)
    執行下一條指令,但不會跳進函式內部。

    • ni (next instruction)
      逐行,但忽略函式細節

      ni
      
    • si (step instruction)

      si =  
      

    例如:

foo();  // 呼叫函式

使用 ni,它會把 foo() 整個執行完,直接到下一行
使用 si,它會跳進去 foo() 裡面看裡頭的細節

  1. info b
    顯示目前設的所有斷點,並列出斷點編號、設在哪個函式或行號、是否啟用

上一篇
逆向題目練習(四)- chosen0
下一篇
組合語言筆記 - IDA Free
系列文
逆向30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言