December 04, 2006

Qt4/ptrace-based Debugger

之前在 [深入淺出 Hello World Part I/II (台北場次)] 會場,lwhsu 跟我提及 [OllyDbg - 32-bit assembler level analysing debugger for Microsoft® Windows®] 這個強大的軟體,隔幾天在 Ubuntu 上用 wine 測試了很久,可惜該軟體花了太多動作在驗證 PE exec,所以沒機會使用到。

Evan Teran 以 Linux 的 ptrace API 為基礎,透過 Qt4 與 [ libdisasm - x86 Disassembler Library],撰寫一個新的 binary debugger [EDB],授權方式為 GNU GPLv2,功能相當不錯,可隨時 attach 既有的 process,一窺內部運作,以下是追蹤 gedit 執行的畫面: (click to enlarge)

恰好之前已經修改過 qemu,繼續思考是否能整合這個 debugger 進來,或許有機會在「深入淺出 Hello World - Part III」時作分析工具。

對了,因為大量使用 ptrace API,需要先行建立一份 symbol table,故,以我這裡的環境 (Ubuntu feisty development branch) 來說,採用 glibc 2.5,所以要執行以下操作:
$ ./make_symbolmap.sh /lib/libc-2.5.so > symbols/libc-2.5.so.map
$ ./make_symbolmap.sh /lib/ld-2.5.so > symbols/ld-2.5.so.map
同時也建議以 0.8.8 (含以上) 的版本,因為 symtab 的內部表示型態有調整過。
由 jserv 發表於 December 4, 2006 12:32 PM
迴響
發表迴響









記住我的資訊?