dissy -- 好用的 objdump 圖形前端工具
最近利用閒暇的時間,準備新的系列課程,目標就是嘗試體驗 "Eat Our Own Dog Food",實現資訊人多少會有的浪漫夢想:用自己撰寫的編譯器,編譯自己設計的作業系統,跑在自己設計的 CPU 與硬體上。雖然自己恰好作過前述三者,不過要連貫起來,並改成系列的課程,仍是新挑戰。這過程要涉及到許多工具程式的開發,特別是視覺化的處理,才能讓學員更快進入狀況,而 [
dissy] 就是個非常優秀的 objdump 圖形前端工具。
用 objdump / readelf,可窺探 ELF 格式執行檔案的許多細節,也能靜態分析,但往往得在大量的輸出打轉,著實不方便,[
dissy] 這個工具可帶來頗大的便利,直接看底下的執行時期的圖片吧:

上方視窗為 ELF 執行檔中的符號 (symbol) 列表,一旦點選進去後,會得到下方的兩個視窗:左側是反組譯的輸出 (含原始程式碼除錯訊息),右側是點選的機械碼指令的解釋。這也表示說,dissy 需要 non-stripped ELF 執行檔的輸入,否則無法符合預期的運作。另外,dissy 也能作簡單的流程分析,比方說上圖左下方的紅色箭頭,就表示有 branch (跳躍) 的動作,搭配原始程式碼的列表,一目了然編譯器與組譯器所進行的操作。
由 jserv 發表於 July 5, 2010 11:40 PM