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