Windows中主流的调试器介绍

调试器,顾名思义,就是用于调试的工具。为什么要调试呢?这得从一条虫子(bug)说起。江湖中传说还是在第一代真空管电子计算机时代,有一次研究人员发现计算机的行为不正常。于是他们就开始检查每个环节想找到原因,最终他们在机器里找到了条虫子(bug)从而解决了问题。于是后来便把发现并解决程序中与预期不符的行为称之为捉虫或除虫,也就bug加个De-前缀,即Debug。

 

火星人开发的程序是不是绝对没有bug,我不清楚,因为没见过。但是地球人的话,我个人认为鉴于自身思维上的不完备性注定了地球人开发的稍具规模的程序要完全正确几乎不可能。那么既然程序出现了bug,就要除掉它。修正的方法很多,比如检视代码、察看日志、借助调试工具等等。这里重点要介绍的就是Windows系统中使用的较多的一些调试工具,它们各有特点,也各有用途。更多地了解它们,就能更好的利用它们高效的查错。

 

Visual Studio系列集成开发环境提供的调试器:Visual Studio系列作为微软提供的专业开发工具,配合其集成的可视化调试器,强大的能力那是可圈可点。尤其是VC++6.0(Visual Studio 98带的,因为重点是c++程序的调试,所以干脆就直接提VC6好了)之后提供的Edit and Continue功能,太爽了,太爽了!从此开发人员简直就变成了猫头鹰,如虎添翼哈~。VC6最大的特点就是开发功能和调试功能完美结合,察看内存、调用堆栈、寄存器,调试动态库,调试多线程,甚至直接进行汇编级的调试,功能可谓是琳琅满目,应有尽有。一定要好好掌握,这是基础。

 

ntsd.exe:这是Windows系统自带的一个小巧的用户态调试器。到底是从Windows的哪个版本开始有的,我不清楚。但是Win2k之后的系统都有了。ntsd是NT Symbolic Debugger的简写。既然名字中都有Symbolic,那自然是表示带有符号调试的功能,这一点很有用,以后会提到。ntsd因为是系统自带的调试器,所以用来在程序发布后出现问题时收集信息时非常方便。只需要一个命令(先睹为快:ntsd -pv -pn app.exe -c ".dump /ma app.dmp;-q")就能把进程的信息dump下来分析,相当实用。

 

强大的Windbg:这是ntsd的增强版,更确切的说,ntsd是WindDbg的精简版。它提供了极为强大的调试功能,支持用户态和内核态源码级的调试,图形化的界面,使用起来还是挺方便的。关键是它可以很轻松的调试一些平常不容易解决的问题,比如死锁,CPU占用率100%,内存对破坏,堆栈破坏,程序崩溃等错误。如果你遇到这种棘手问题无法解决,那还等什么呢,赶紧祭出WinDbg吧。当然,强大的调试器命令自然也比较多一点,必须承认学好它还是有点费时的。但是,想一想学好它后可以解决的问题,相信我,绝对值回票价。WinDbg可以在微软官方网站下载,免费噢~

 

OllyDbg:这是一款提供可视化界面的Win32汇编级的调试器。尽管你可以用它调试任何Win32用户态的程序,但是它的主要用户都是在破解界和病毒木马界。因为它最大的特点是能够自动的识别出大量的系统函数及函数参数、句柄对象、甚至直接修改二进制代码,所以如果想要分析竞争对手的特色功能的话,嗯嗯。。。。学习OllyDbg的使用,可以去一些专业的破解技术的网站(或者说安全技术的网站),比如国内最专业的网站:看雪,www.pediy.com

 

Softice:尽管我已经多年没有再用过它了,但可以肯定的是,这绝对是我用过的最强大的调试器,以至于我都不打算在这里介绍它。对于每个想深入研究Windows操作系统的人,都应该学会使用它。google上有大量的相关信息。

包含以下工具 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、付费专栏及课程。

余额充值