Windows 开发 辅助调试工具 和 方法

本文精选了一系列Windows开发中常用的辅助工具,包括Spy++、WinSpy、ProcessExplorer等,旨在帮助开发者更好地理解和解决程序中的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

资料2

资料

资料:
http://baike.baidu.com/link?url=oCDe5ey3hAL-NJiMhn1lcqZao4KCmYsqJLCEuejBXEJvYWbLphYMeuh4n704Ms30tIuuCUZ-RbMyU_YbJ9mHpq

参考:http://msdn.microsoft.com/zh-cn/library/f7dy01k1.aspx

参考:http://baike.baidu.com/link?url=EmO7DoJwemz_rmzDgSf3Xfshsrt-7iAHJ0xwX3zm0p839n-igSGD3nEhn30hUdFDA3TWRbkRMgPhx4y6JnbJq_

参考:http://blog.163.com/tao198352__4232/blog/static/85020645201072872317808/

Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu  转载请标明来源 DotFuscator:混淆工具

(词根:fuscate 变暗色的)

混淆工具,VS自带的的工具,官方解释是:“PreEmptive Solutions 的生成后检测服务提供模糊处理、篡改防御、存储期限和运行时智能等功能。”

C#和java,比较容易被反编译,vs自带了一个反编译的工具。打开 Visual Studio, “工具”->“ILDASM”,就可以直接看到所有的变量,结构体,函数名称,都和你的源码里一模一样,甚至有更强大的Reflector,直接看到C#源码,这时,如果之前使用了混淆工具,应该就可以一定程度避免,不至于所有代码细节都被反编译出来。

ILDASM/Ildasm.exe:反汇编工具

(词根:assemble/asm 聚集,汇编语言的后缀采用.asm) (dasm: de assemble 姑且理解为反汇编)

MSIL 反汇编程序是 MSIL 汇编程序 (Ilasm.exe) 的伙伴工具。 Ildasm.exe 采用包含 Microsoft 中间语言 (MSIL) 代码的可迁移可执行 (PE) 文件,并创建相应的文本文件作为 Ilasm.exe 的输入。

在这个里面有详细介绍的使用方法

http://msdn.microsoft.com/zh-cn/library/f7dy01k1.aspx

VisutalStdio远程调试器:

实现效果:在另一个PC环境上运行的Debug程序,可以在本地的PC上远程调试、单步跟踪等。

方法:

a. 在远程的PC上运行VisutalStdio远程调试器,配置 工具-〉选项 配置 连接信息,通常可以使用相对简单的 无身份验证。// 注意:不能关闭VisutalStdio远程调试器

b. 在本地PC上运行VC,然后选择 调试->附加到进程,传输选择:远程(无身份验证时仅限本机) 限定符输入远程调试的IP-例如IP为\192.168.113,输入完毕就可以刷新出远程PC的进程,然后就可以进行附加了

Spy++进程/线程/消息查看:

(词根:Spy n.间谍, 侦探 v.侦察, 发现)

Spy++ (SPYXX.EXE) 是一个基于 Win32(最新版本支持Win64) 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。

查询窗口中:通过手动输入HWND信息,然后鼠标定位,可以找到窗口;

查询窗口中:通过探测器指针选中按钮,可以定位HWND,查到该按钮的相关信息/消息。

SpyLite工具:

附加介绍非VC的工具,是一个的功能更加强大Spy工具,一方面可以显示进程/线程/消息,更重要的方面是可以向HWND发送消息,例如向窗口/button发送最大化/显示/隐藏/Enable/Disable消息,
参考

http://baike.baidu.com/link?url=EmO7DoJwemz_rmzDgSf3Xfshsrt-7iAHJ0xwX3zm0p839n-igSGD3nEhn30hUdFDA3TWRbkRMgPhx4y6JnbJq_

最后介绍的两种:激活灰色按钮/监视IE上网记录

包含以下工具 accesschk.exe accesschk64.exe AccessEnum.exe AdExplorer.chm ADExplorer.exe ADInsight.chm ADInsight.exe adrestore.exe Autologon.exe autoruns.chm Autoruns.exe Autoruns64.exe autorunsc.exe autorunsc64.exe Bginfo.exe Cacheset.exe Clockres.exe Clockres64.exe Contig.exe Contig64.exe Coreinfo.exe ctrl2cap.amd.sys ctrl2cap.exe ctrl2cap.nt4.sys ctrl2cap.nt5.sys dbgview.chm Dbgview.exe Desktops.exe Disk2vhd.chm disk2vhd.exe diskext.exe diskext64.exe Diskmon.exe DISKMON.HLP DiskView.exe DMON.SYS du.exe du64.exe efsdump.exe Eula.txt FindLinks.exe FindLinks64.exe handle.exe handle64.exe hex2dec.exe hex2dec64.exe junction.exe junction64.exe ldmdump.exe Listdlls.exe Listdlls64.exe livekd.exe LoadOrd.exe LoadOrd64.exe LoadOrdC.exe LoadOrdC64.exe logonsessions.exe logonsessions64.exe movefile.exe movefile64.exe notmyfault.exe notmyfault64.exe notmyfaultc.exe notmyfaultc64.exe ntfsinfo.exe ntfsinfo64.exe pagedfrg.exe pagedfrg.hlp pendmoves.exe pendmoves64.exe pipelist.exe pipelist64.exe PORTMON.CNT portmon.exe PORTMON.HLP procdump.exe procdump64.exe procexp.chm procexp.exe procmon.chm Procmon.exe PsExec.exe PsExec64.exe psfile.exe psfile64.exe PsGetsid.exe PsGetsid64.exe PsInfo.exe PsInfo64.exe pskill.exe pskill64.exe pslist.exe pslist64.exe PsLoggedon.exe PsLoggedon64.exe psloglist.exe pspasswd.exe pspasswd64.exe psping.exe psping64.exe PsService.exe PsService64.exe psshutdown.exe pssuspend.exe pssuspend64.exe Pstools.chm psversion.txt RAMMap.exe readme.txt RegDelNull.exe RegDelNull64.exe regjump.exe RootkitRevealer.chm RootkitRevealer.exe ru.exe ru64.exe sdelete.exe sdelete64.exe ShareEnum.exe ShellRunas.exe sigcheck.exe sigcheck64.exe streams.exe streams64.exe strings.exe strings64.exe sync.exe sync64.exe Sysmon.exe Sysmon64.exe Tcpvcon.exe tcpview.chm Tcpview.exe TCPVIEW.HLP Testlimit.exe Testlimit64.exe Vmmap.chm vmmap.exe Volumeid.exe Volumeid64.exe whois.exe whois64.exe Winobj.exe WINOBJ.HLP ZoomIt.exe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值