Windows开发中一些常用的辅助工具

经常有人问如何快速的定位和解决问题,很多时候答案就是借助工具, 记录个人Windows开发中个人常用的一些辅助工具。

(1) Spy++

相信windows开发中应该没人不知道这个工具, 我们常用这个工具查看窗口层次,跟踪窗口消息。

(2) WinSpy

一个窗口相关的小工具,非常有用,可以帮我们快速查看和修改窗口属性。(这个工具是开源的, 拿来学习挺不错的)

(3) Process Explorer

非常有用的工具,类似任务管理器,但是比任务管理器强大的多。 可以让我们查看查看每个进程的详细信息以及进程之间的关系,理解了这个工具你也就理解了整个程序进程.

(4) Process Monitor

看名字就知道是用来监视进程活动的,可以监视目标进程的注册表读写,文件读写, 模块加载和进程线程活动情况等,很多时候我们拿它来观察目标进程的活动情况。

(5) VMMap

完整的内存查看工具,可以用它来分析整个程序内存的详细情况(包括某个堆里面的每个分配的内存块),理解了这个工具你也就理解了整个程序内存布局。

(6) API Monitor

这个工具也是我强烈推荐的,可以用它来跟踪目标进程的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的条件断点让程序收到某个消息时进行拦截和调试。

http://www.cppblog.com/weiym/archive/2014/09/09/208258.html

时间: 2024-08-24 16:04:13

Windows开发中一些常用的辅助工具的相关文章

大数据data开发有哪些好的辅助工具?

作为一个程序员开发工具好比是人的手和脚,只有把这些开发工具用好,才能做好一个产品的需求.大多使用SQL数据库存储/检索数据,如今很多情况下,它都不再能满足我们的需求.下面小编就介绍一些大数据data开发常用的辅助工具. 开源企业搜索平台:Solr 用Java编写,来自Apache Lucene项目.Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操

关于jsp商城开发中一些常用框架的介绍

Struts跟Tomcat.Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使java商城产品以及jsp商城开发者能更深入的了解其内部实现机制.除此之外,在 java商城开发 中Struts的优点主要集中体现在两个方面:Taglib和页面导航.Taglib是Struts的标记库,比较灵活,能大大提高开发效率.另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点.struts历经6年多的发展,是目前用户数最

安卓开发中我们常用的布局方式

在安卓开发中我们常用的布局方式有这么几种: 1.LinearLayout ( 线性布局 ) :(里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角) 线性布局分为水平线性和垂直线性二者的属性分别为: android:orientation= " horizontal " android:orientation= "vertical" . 2.RelativeLayout ( 相对布局 ) : (里面可以放多个控件,但是一行只能放一个控件) 附加几类

五年干货分享!前端开发中最常用的JS代码片段

很多网友私信我,说学到js就开始卡壳了,甚至初略的看了一下js,就跳过开始学习框架之类的.这里要提醒你,js是前端的重中之重,如果你忽视了,后果不堪设想! 学好,并熟练的运用这门编程语言真的很难吗?本篇文章为大家总结了一些前端开发中最常用的JS代码片段,希望能对大家的学习以及工作上都能有所帮助,有所收获. HTML5 DOM 选择器 javascript 代码 // querySelector() 返回匹配到的第一个元素 var item = document.querySelector('.i

实际开发中,实用的辅助iOS开发的工具

就目前所知,开发iOS绝大部分都是用Xcode,除此工具之外,还有几个好用的可以辅助实际开发中遇到的问题,拥有这种辅助开发技能,在工作中,甚至是以后的面试中,都可能会有不小的帮助. 下面推荐三个实用的辅助iOS开发工具: 第一个:青花瓷(抓包软件) 我们知道,现在的开发一般是团队开发,我们iOS开发做的是前端,后端需要后台人员配合,有时候,后台人员回传的数据错误,或者接口文档写错导致我们在前台拿不到数据的时候,很可能发生争吵,后台人员说我回传给你数据了,前台的人说我拿不到你回传的数据,这样问题得

iOS开发中的第三方类库管理工具-CocoaPods-

转载请注明出处 : http://blog.csdn.net/whjForWork/article/details/44967891 CocoaPods是什么? 当iOS 项目中需要使用第三方开源类库时,或者已使用的类库需要更新时,再去一个个重新下载非常麻烦,但是通过CocoaPods,我们可以一行命令就解决这个问题 CocoaPods是一个负责管理iOS项目中第三方开源代码的工具,Cocoa使用Ruby开发,其源码在Github上开源https://github.com/CocoaPods/C

音频软件开发中的debug方法和工具

本文系作者原创.如转载,请注明出处. 谢谢! 音频软件开发同其他软件开发一样,都需要去调试.音频软件调试同其他软件调试方法有相同的地方,也有不同的地方,同时调试时还需要借助一些专门的工具,有了这些方法和工具,就能快速的定位问题和解决问题.下面我们就谈谈这些方法和工具. 1,方法 1)log 这是软件调试中最常用的方法,音频调试也不例外.在写代码时加上一定的log, 在出问题时就打开这些log,通过log分析问题出在什么地方.一个好的log体现在如下几点: a)    要有时间和日期,有时候时间戳

关于开发中的常用手段(个人建议)

由于最近在一家外包公司 做项目 (团队开发 3个人) 有个朋友一起 我们研究出一套 相对来说 速度和效率都比较高的开发方法. 1. 搭建界面 对于一个程序来说 无疑刚上来就要看原型 看UI 看切图 所以界面是首要做的 那么我来说下做界面的常用方法仅个人看法 不喜勿喷, >如果是比较死的界面(就是尺寸不是动态的改变的)那么尽量用storyBoard 和 Xib 进行开发  好处是冗长的创建UI,给UI加属性的的代码再也不用堆叠在类中了 >如果是动态改变比较频繁的界面建议 用代码编写 比较灵活 &

React在开发中的常用结构以及功能详解

一.React什么算法,什么虚拟DOM,什么核心内容网上一大堆,请自行google. 但是能把算法说清楚,虚拟DOM说清楚的聊聊无几.对开发又没卵用,还不如来点干货看看咋用. 二.结构如下: import reqwest from 'reqwest'; import React from 'react'; import ReactDOM from 'react-dom'; var Header = React.createClass({ handleClick:function(){ conso