工程開發
rr-debugger
使用 rr 進行確定性紀錄與重播除錯。支援反向執行、崩潰軌跡提取,以及針對軟體與二進位漏洞的 GDB 根因分析。
簡介
rr-debugger 技能提供了基於 rr (record-replay) 框架的確定性除錯進階介面。它專為需要檢視 C/C++ 程式複雜執行路徑的安全研究人員、軟體工程師和漏洞分析師設計,特別是在處理崩潰、記憶體損壞或難以捉摸的 ASAN (AddressSanitizer) 錯誤時。透過僅紀錄程式執行一次並允許無限重播,此技能消除了困擾競爭條件(race conditions)和間歇性軟體缺陷除錯的非確定性問題。
- 啟用完整的反向執行控制,使用 reverse-next、reverse-step、reverse-continue 和 reverse-stepi 等指令,允許開發人員向後瀏覽指令流,以找出狀態損壞發生的確切時刻。
- 自動化崩潰軌跡提取,提供針對標準崩潰和複雜 ASAN 報告的特定工作流程,包括自動跳轉至故障發生前的最後一個應用程式指令幀。
- 提供全面的記憶體和變數檢查功能,包括 GDB 風格的本地變數列印、指標解引用和十六進位格式記憶體傾印。
- 支援透過 list 和 layout src 指令進行原始碼級除錯,以及使用 disassemble 和 layout asm 進行底層組合語言分析,以驗證二進位行為。
- 與 RAPTOR 的自主研究工作流程整合,允許研究人員從崩潰檢測(例如透過 AFL++ 模糊測試)過渡到深度根因分析,而無需手動重建執行狀態。
使用此技能時,請確保目標環境支援必要的 ptrace 功能,因為 rr 需要特定的核心配置(通常需要在 Docker 容器中使用 --privileged 模式)。工作流程通常從使用 rr record 紀錄執行開始,隨後進行互動式的 rr replay 會話。建議使用者利用提供的 crash_trace.py 輔助工具進行自動化軌跡提取。該工具針對 Linux 環境進行了最佳化,對於傳統除錯器無法提供足夠背景資訊或可重複性的二進位檔案審計非常有效。它是 RAPTOR 管道中驗證漏洞和製作精確安全補丁的重要組件。
倉庫統計
- Star 數
- 2,385
- Fork 數
- 367
- Open Issue 數
- 17
- 主要語言
- Python
- 預設分支
- main
- 同步狀態
- 閒置
- 最近同步時間
- 2026年4月29日 上午07:42