經常有人問如何快速的定位和解決問題,很多時候答案就是借助工具, 記錄個人Windows開發(fā)中個人常用的一些輔助工具。
(1) Spy++
相信windows開發(fā)中應該沒人不知道這個工具, 我們常用這個工具查看窗口層次,跟蹤窗口消息。
一個窗口相關的小工具,非常有用,可以幫我們快速查看和修改窗口屬性。(這個工具是開源的, 拿來學習挺不錯的)
(3) Process Explorer
非常有用的工具,類似任務管理器,但是比任務管理器強大的多。 可以讓我們查看查看每個進程的詳細信息以及進程之間的關系,理解了這個工具你也就理解了整個程序進程.
(4) Process Monitor
看名字就知道是用來監(jiān)視進程活動的,可以監(jiān)視目標進程的注冊表讀寫,文件讀寫, 模塊加載和進程線程活動情況等,很多時候我們拿它來觀察目標進程的活動情況。
(5) VMMap
完整的內存查看工具,可以用它來分析整個程序內存的詳細情況(包括某個堆里面的每個分配的內存塊),理解了這個工具你也就理解了整個程序內存布局。
這個工具也是我強烈推薦的,可以用它來跟蹤目標進程的API調用情況,當你懷疑目標程序的某個Feature調用了某幾個API,但又沒有證據(jù)時,可以通過這個工具來驗證。該工具甚至還包含一些簡單的調試功能,可以通過設置斷點在程序調用API時修改參數(shù)和返回值。
(6) WinDbg
不多說了,Windows平臺上最強大的調試器,上面很多工具的功能都可以通過它來實現(xiàn),比如VMMap的功能可以通過WinDbg的!address和!heap命令來實現(xiàn),比如API Monitor的功能可以通過WinDbg的條件斷點來實現(xiàn)。
(7) wireshark
網(wǎng)絡開發(fā)和理解網(wǎng)絡協(xié)議的必備工具, 通過這個工具我們可以看到整個網(wǎng)絡協(xié)議棧在每層上數(shù)據(jù)包的結構, 很多時候我們拿它來分析目標程序的網(wǎng)絡協(xié)議和實現(xiàn)方式。
(8) httpwatch
集成到瀏覽器的, http協(xié)議的分析利器, 強大的網(wǎng)頁數(shù)據(jù)分析工具, 基本上是Http編程的必備工具。
(9) IDA
反匯編的利器,可以反匯編出函數(shù)的流程圖以及相互調用關系, 很多時候用它來靜態(tài)分析程序結構, 然后結合WinDbg進行動態(tài)調試。
(10) WindowMonitor
這個程序是個人工作的一個輔助工具,因為現(xiàn)在工作是做遠程桌面共享相關,經常要和窗口打交道,通過這個工具可以監(jiān)視窗口的行為:
比如焦點的改變,窗口的創(chuàng)建和銷毀,窗口的顯示和隱藏, 以及窗口的枚舉等,現(xiàn)在功能還很簡單,需要時再擴充,可以到 這下 下載。
最后總結下,工欲善其事,必先利其器,借助工具可以幫我們更好的理解計算機程序。 另外這些工具使用時也不是完全獨立的,很多時候是組合使用, 比如我們先通過Spy++查看窗口的消息處理函數(shù)地址,然后通過WinDbg的條件斷點讓程序收到某個消息時進行攔截和調試。
posted on 2014-09-09 23:42
Richard Wei 閱讀(4130)
評論(4) 編輯 收藏 引用 所屬分類:
Tool