精华内容
下载资源
问答
  • windows调试

    2012-10-10 17:33:17
    windows软件调试人员的必备工具书,里面包含了详尽的windows调试方法。
  • Windows调试工具集Part2

    2010-04-22 08:14:38
    Windows调试工具集Windows调试工具集Windows调试工具集Windows调试工具集Windows调试工具集Windows调试工具集
  • 原创文章 Windows调试工具入门-1(Windows调试工具介绍) 更多内容请访问http://www.DbgTech.net/
  • Windows 调试工具官方帮助文档,工具集包括 WinDbg 和其他调试程序。Windbg是Microsoft公司免费调试调试集合中的GUI的调试器,支持Source和Assembly两种模式的调试。Windbg不仅可以调试应用程序,还可以进行Kernel...
  • Windows调试工具入门—1 NetRochttp://www.DbgTech.net一、 引子Debugging Tools for Windows是微软发布的一套用于软件调试的工具包(后面如果没有指明,那么我会使用WinDbg来作为这一套调试工具的简称)。...

    Windows调试工具入门—1

     

     

     

    NetRoc

    http://www.DbgTech.net

    一、       引子

    Debugging Tools for Windows是微软发布的一套用于软件调试的工具包(后面如果没有指明,那么我会使用WinDbg来作为这一套调试工具的简称)。我第一次接触是在三年前的一个内核驱动项目,由于进行了IDT中键盘鼠标中断的Hook,使用Softice调试时造成会造成影响,只得使用WinDbg通过串口进行双机调试。自此之后这个Windows平台下最为强大的调试工具一直是开发过程中的必备。这里我毫不掩饰的说“最强”,可能很多通过逆向工作而接触调试的朋友不会认同,但是我相信随着对WinDbg了解的加深,以及对这套工具在软件开发中应用的了解,他们也会和我有一样的观点。

    一直以来,软件调试技术在软件开发者中都没有得到足够的普及和重视,互联网上能找到的系统描述的资料也较少。随着国内软件行业整体的发展和进步,这些技术慢慢开始得到推广。2008年出版的有关调试的数据比以往都要多。我有幸拜读了Raymond的《软件调试》,以及熊力的《Windows用户态程序高效排错》,获益良多。 这几年的工作中也积累了一些关于Windows调试工具的知识,希望能够将这些东西进行一些分享。因此,利用几个月空闲时间翻译了WinDbg文档中上半部调试器配置、使用和命令介绍的内容,同时准备写一些关于WinDbg调试工具的初级文章。希望能够为对调试技术感兴趣而又苦于没有资料的朋友提供一些帮助。

    特别感谢我的前同事小喂。虽然他第一条串口线还是我焊的,但是他对于WinDbg的使用和了解程度很快就超过了我。在相当长时间的共事和讨论中,让我学到了很多。

    二、       Windows调试工具的简介和组成

    WinDbg是专门为Windows NT系列操作系统设计的调试器,最早是作为Windows NT 3.1的工具发布的。其后也一直跟随NT操作系统的发展而不断发展完善。如果用一句话来概括,可以说WinDbg是为了软件开发而存在的调试工具。软件包中的调试器和小工具的各种功能都是为了配合软件的开发而设计的,并且覆盖到了Windows平台下各种不同类型项目的调试(传统的SDKMFC应用程序、.NET平台应用、COM应用、软硬件驱动程序等等)

    Windows调试工具包中的调试器包括WinDbgKDCDBNTSD。其中, KD用于内核调试;CDBNTSD用于用户态调试,在功能和使用上几乎完全一致;WinDbg是内核调试器和用户态调试器的综合体,由于功能完善并且具有图形界面,所以是最常用的工具。它们能够在x86Itaniumx64机器上的所有NT平台操作系统中运行。

    另外,工具包中还有一些小工具,下面是常用的几个:

    l  KDbgCtrl:用于控制和配置内核调试的一些参数。例如是否只有当发生异常时才会启用内核调试、设置DbgPrint缓冲区大小、如何处理用户模式异常等等。

    l  ADPlus:这是一个VB脚本,可以为一个或多个进程自动创建内存dump

    l  SymStore:用于创建符号存储。当需要创建自己的符号存储时就要用到它了。

    l  SymProxy:用于在网络中创建单独的HTTP符号服务器,以供所有调试器使用。该工具特别适合企业级应用的环境,可以将多个符号存储通过单一的接入点提供使用。

    l  DbgSrvKdSrvRemote.exe:用于远程调试。

    l  GFlags:用于编辑Global Flags

    l  UMDH:用于对用户模式堆分配的情况进行转储和分析。

    l  USBView:这是WinDbg 6.10.3版本才加入到软件包中的工具,可以查看当前连接到系统中的USB设备信息。

    另外,Application Verifier虽然没有包含在软件包中,但是也是一个非常强大的工具。可以对程序运行时的很多状态进行监控,以发现一些普通调试难以找到的错误。下面是Application Verifier配置界面的一个截图:

    Application Verifier可以在这个页面下载:http://go.microsoft.com/fwlink/?linkid=108353

    三、       Windows调试器和其他熟知的调试器比较

    可能很多已经习惯使用SoftICEOllyDbgIDE调试器的朋友会提出这样的疑问:在这么多调试器中,为什么要选择WinDbg?它究竟有什么特点?

    设想一下下面几个场景:

    l  公司的软件针对企业级用户,该客户在地球另一半的美国。有一天客户抱怨了一个BUG,但是从抓取的dump又没办法看出个所以然,想进行动态调试查找原因。公司预算有限,不能让你过去出差顺便旅游、对方公司有防火墙,不允许外部连接,等等等等。。。怎么办?

    l  项目规模很大,涉及到的模块多,版本也多,并且是由不同部门开发的。这些部门可能遍布五湖四海。如何在调试其中某个模块时,能够快速获得它的符号和源文件,而不用每次都从一大堆不同版本的文件中辛苦找寻?调试到某个阶段,突然发现这不是自己的模块出现问题,如何快速知道这个问题应该找谁解决?项目某些重要模块有保密需要,如何控制调试人员访问符号和源文件的权限?

    l  驱动程序怎么才能源码调试?SoftICE不支持新系统,我要在Vista上调试怎么办?

    l  软件中包含一个Windows服务组件,但是每次还没有登陆到桌面之前就崩溃了,怎么进行动态调试?

    l  我想调试Explorer,调试IE,调试CSRSS,调试……,但是调试器一附加上去,系统就会出问题。怎么办?

    l  公司发布的软件,有用户反馈和XXX安全软件冲突老是造成系统崩溃,但是搭建环境之后却又没有办法重现;对方是个普通用户,鼠标都抓得不太稳。用户很火大,闹着要抓个老虎到公司来找你上司做俯卧撑,后果很严重,怎么办?

    在现实环境中,有很多复杂的调试场景,我们需要专业级的调试器来解决这些问题。而WinDbg恰恰提供了这种商业软件环境下的专业级软件调试功能,它和其他很多我们熟知的调试器的区别也在于此。

    我们将WinDbg和其他调试器分作内核调试器和用户态调试器两类来进行比较。

    内核调试方面:

     

    WinDbg

    SoftICE

    原理

    Windows操作系统内置调试支持

    Hook中断,接管系统

    系统和平台支持

    x86Itaniumx64机器上的所有NT平台操作系统

    x86,由于已停止更新,新版本操作系统中支持不佳,老系统中也常常遇到兼容性问题

    符号和源码支持

    完美支持符号调试和源码调试,可直接使用微软公共符号

    支持符号调试和源码调试,但是需要先转换符号格式

    远程调试

    通过和远程工具、转发器的配合,实现各种灵活的远程调试方式,以支持不同的网络环境

    通过Virtual SoftICE支持基于网络的远程调试

    硬件需求

    通过串口、1394USB 2.0接口的双机调试;通过Pipe连接的虚拟机调试;或者功能有诸多限制的本地内核调试

    单机或者通过Virtual SoftICE的双机调试

    用户界面

    由于是双机调试,调试器只是主控机上运行的一个普通软件。拥有GUI界面,可以同时进行其他应用。

    单机调试时完全接管系统,字符界面,操作不是很方便。

    扩展性

    支持脚本和插件,并且软件包本身提供了大量非常有用的插件

    支持插件

    由于SoftICE已经停止更新,WinDbg可以说是现在Windows平台上唯一好用的进行内核调试的工具,并且随着新版本的不断推出,不断地添加对新版操作系统的支持以及完善功能。强大的符号支持,方便的源码调试,使得内核级调试能够事半功倍。

    用户态调试方面:

     

    Windows调试工具包

    OllyDbg

    Visual Studio调试器

    原理

    Windows的用户程序调试支持

    Windows的用户程序调试支持

    Windows的用户程序调试支持

    系统和平台支持

    主要基于NT系统,9x内核下支持不佳并且需要安装附加模块

    主要支持NT系统,9x下也可以使用

    新版本的VisualStudio不支持在9x系统下安装。VC6之前可以在9x下调试

    符号和源码支持

    完美支持符号调试和源码调试,可直接使用微软公共符号

    支持符号调试和源码调试

    支持。VS2008开始可以直接使用微软公共符号

    远程调试

    通过和远程工具、转发器的配合,实现各种灵活的远程调试方式,以支持不同的网络环境

    不支持

    较新版本Visual Studio中支持

    无源码调试

    反汇编分析能力较弱,GUI界面偏弱,无源码时调试比较困难

    强大的代码分析能力,无符号和源码时也能很好的进行调试

    无源码调试的支持很弱,使用不便

    用户界面

    GUI界面不是很丰富,大量操作需要通过命令

    GUI界面强大,能够实现大多数调试操作

    介于WinDbgOllyDbg之间。

    扩展性

    支持脚本和插件,并且软件包本身提供了大量非常有用的插件

    支持脚本和插件,有大量可用的资源

    支持插件扩展

    Dump文件调试

    支持,分析功能强大

    不支持

    支持,但是不够强大

    .NET调试

    通过SOS.dll支持,进行高级调试比较方便

    不能直接支持

    功能强大易用,绝大多数情况下都能解决问题

    由于WinDbg功能相当复杂,有很多方面并不能一一比较,例如非侵入式调试、通过WinDbg控制CDBNTSD来调试系统服务、创建和分析Dump文件等等。

    总体来说,WinDbg更适合作为软件项目开发和维护过程中的调试工具使用,而OllyDbg更适合逆向工程。

    四、       何时使用Windows调试工具

    根据我个人对WinDbg的使用经验来说,它更适合作为开发维护的辅助工具来使用。

    如果要进行用户态的逆向工程,推荐使用OllyDbgIDA这些拥有强大汇编程序分析能力的工具。

    WinDbg更适用于以下这些场合:

    l  商业软件的Debug和客户支持

    l  内核驱动的调试,以及对驱动进行逆向工程时进行动态调试

    l  研究Windows本身的内核或者软件

    l  疑难BUG的调试,如死锁、COM调用、资源泄露、堆栈或者堆溢出

    l  以性能优化为目的的调试

    对调试目标基本不造成影响的非侵入式调试

    展开全文
  • Windows调试工具入门pdf文档,1-7全。
  • 下载和安装 Windows 调试工具 http://msdn.microsoft.com/zh-CN/windows/hardware/gg463009 这里有具体的版本可以选择。 在这个页面点进去会发现下载的其实是在线安装器。 如果想要ISO离线安装包的话,需要很...

    下载和安装 Windows 调试工具

    这里有具体的版本可以选择。

    在这个页面点进去会发现下载的其实是在线安装器。

    如果想要ISO离线安装包的话,需要很麻烦地找来找去,这里提供一些主要的离线ISO包,免去大家的麻烦了:

    Windows Driver Kit Version 7.1.0

    Download Windows Driver Kit Version 7.1.0 from Official Microsoft Download Center

    Microsoft Windows SDK for Windows 7 and .NET Framework 4 (ISO)

    Download Microsoft Windows SDK for Windows 7 and .NET Framework 4 (ISO) from Official Microsoft Download Center

    附:Win8上用的工具没找到离线版的。

    展开全文
  • Windows调试工具集

    千次阅读 2009-06-06 21:44:00
    1.2 Windows调试工具集应用场合一组调试器和工具当前版本6.6.0007.5下载地址http://www.microsoft.com/whdc/ddk/debugging/ Windows调试工具集(Debugging ToolsforWindows)

    1.2 Windows调试工具集

    应用场合

    一组调试器和工具

    当前版本

    6.6.0007.5

    下载地址

    http://www.microsoft.com/whdc/ddk/debugging/

     

    Windows调试工具集(Debugging ToolsforWindows)是一个内容丰富的软件包,它包含了一些功能强大的调试器和工具,可以极大地提高开发人员的工作效率。

    在下载地址中可以选择32位或者64位(Itanium和x64)等不同版本。软件包的安装过程非常简单,选择“Express”安装模式将安装所有必要的工具。这里需要提醒一点:如果你打算开发定制的调试扩展(DebuggerExtension,我们将在第11章“编写定制的调试扩展”中看到相关的内容),那么必须选择“Custom”安装模式,并且选中安装SDK。在表1.1中给出了在这个软件包中包含的所有工具。

    表 1.1 在Windows调试工具集中包含的工具

    程序名

    描述

    agestore.exe

    一个很方便的文件删除工具,它能够根据最近访问日期来删除文件。

    cdb.exe

    基于控制台(Console)的用户态调试器。基本上等同于NTSD

    dbengprx.exe

    一个轻量级的代理服务器,用于在两台不同的机器之间转发数据。

    dbgrpc.exe

    用于查询和显示Microsoft远程过程调用(RemoteProcedureCallRPC)信息的工具。

    dbgsrv.exe

    用于远程调试的进程服务器。

    dumpchk.exe

    用于验证内存转储文件(DumpFile)的工具。

    gflags.exe

    用于启用或者禁止系统配置信息的工具。

    kd.exe

    一个内核态的调试器。

    kdbgctrl.exe

    用于控制和配置内核态调试连接的工具。

    kdsrv.exe

    在内核态调试中使用的连接服务器。

    kill.exe

    一个基于控制台的工具,用于终止进程。

    logger.exe

    记录进程行为(例如函数调用)的工具。

    logviewer.exe

    用于查看logger.exe生成的日志文件的工具。

    ntsd.exe

    一个基于控制台的用户态调试器。基本上等同于CDB

    remote.exe

    用于远程操纵控制台程序的工具。

    rtlist.exe

    远程进程列表查看器。

    symchk.exe

    用于验证符号文件或者从符号服务器上下载符号文件的工具。

    symstore.exe

    用于创建和维护符号库的工具。

    tlist.exe

    列出所有正在运行的进程的工具。

    umdh.exe

    用于检测内存泄漏的工具。

    windbg.exe

    带有图形用户界面的用户态和内核态调试器。

     

    显然,最重要的工具就是调试器本身。在第2章“调试器简介”和第3章“调试器揭密”中,我们将详细阐述调试器的工作原理,配置过程,以及最有效的使用方式。

    在本章中,我们将详细介绍在本书中使用的所有工具。如果在工具的“下载地址”列中包含的信息是“Windows调试工具集的一部分”,那么就表示需要安装Windows调试工具集。

    请注意,在撰写本书的时候,Windows调试工具集的最新版本为6.6.0007.5。在你阅读本书时,很可能已经发布了一个更新的版本。尽管版本可能不同,但在调试器的输出结果中可能只是存在细微的差异,因此本书的所有内容仍然是适用的。在调试器的下载地址中还包含了一组之前的版本(前2到3个版本)。如果你希望使用与本书中相同的版本,那么可以下载版本号为6.6.0007.5的Windows调试工具集。

    展开全文
  • windows调试器的原理

    2015-08-06 15:26:32
    关于windows平台下用户模式调试器的原理.doc
  • Windows调试符号配置

    千次阅读 2008-07-26 13:58:00
    对于Windows系统内核级调试,需要从Windows调试符号器上把当前使用Windows内核版本对应的调试符号下载,并成功配置。调试时目前可参考的工具有WinDbg和net2005平台一、Windbg的配置1、首先下载成

     近来准备学习一些软件调试技术方面的知识。

    调试是一个实践性非常强的技术,没有亲身经历一番,不会有真实的感受。

    调试可分为系统内核调试和用户应用层面两种情况。

    对于Windows系统内核级调试,需要从Windows调试符号器上把当前使用Windows内核版本对应的调试符号下载,并成功配置。

    调试时目前可参考的工具有WinDbg和net2005平台

    一、Windbg的配置

    1、首先下载成功Windbg

    2、再下载livekd.exe,该工具用来调试内核,似乎是调用KD和Windbg来操作的,属命令行态运行程序。

    3、在系统环境变量下配置:

    _NT_SYMBOL_PATH=srv*D:/WINDOWS/Symbols*http://msdl.microsoft.com/download/symbols

    其中"D:/WINDOWS/Symbols"目录是存放Kernel内核调试符号的文件夹

     

    4、此时运行windbg并选择kernel debug...后揭示:

    Microsoft (R) Windows Debugger Version 6.9.0003.113 X86
    Copyright (c) Microsoft Corporation. All rights reserved.

    Unable to read head of debugger data list
    Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
    Symbol search path is: srv*D:/WINDOWS/Symbols*http://msdl.microsoft.com/download/symbols
    Executable search path is:
    *******************************************************************************
    WARNING: Local kernel debugging requires booting with kernel
    debugging support (/debug or bcdedit -debug on) to work optimally.
    *******************************************************************************
    Windows XP Kernel Version 2600 (Service Pack 2) MP (2 procs) Free x86 compatible
    Product: WinNt, suite: TerminalServer SingleUserTS
    Built by: 2600.xpsp_sp2_gdr.070227-2254
    Kernel base = 0x804d8000 PsLoadedModuleList = 0x8055d700
    Debug session time: Sat Jul 26 14:12:45.875 2008 (GMT+8)
    System Uptime: 0 days 4:41:53.583

     

    此时光标处于 lkd>  命令符状态,应是符号表配置成功状态

     

    二、net2005的调试符号配置

    1、net2005运行后,选择 工具->选项

    2、选择调试->符号 属性页

    三、在符号文件(.pdb)位置(L):  中输入:

            http://msdl.microsoft.com/download/symbols

           在“将符号从符号服务器缓存到此目录(C):”中配置本机符号存放目录

           D:/WINDOWS/SYMBOLS

     

    注:网络上搜到的net配置似乎是visual studio net2003及以前的配置方法,用到的srv*的语法在net2005环境下不需使用,若使用net会提示:指定符号服务器时不必使用“srv*”语法。只需输入UNC路径或URL

     

     


     

     

     

    展开全文
  • 下载和安装 Windows 调试工具   http://msdn.microsoft.com/zh-CN/windows/hardware/gg463009 这里有具体的版本可以选择。   在这个页面点进去会发现下载的其实是在线安装器。 如果想要ISO离线安装包的话,需要...
  • windows调试器设置

    千次阅读 2007-12-29 15:33:00
    本文就windows调试器的设置问题,根据个人在windbg上的使用经验进行总结,既算是对自己的总结,也算是份大家一起分享自愿吧。本文的前提是windbg已经安装完毕,适合对windbg有一定了解的读者。1.JIT设置。通过JIT...
  • Windows调试 - 如何使用dump文件

    万次阅读 2014-03-26 18:53:58
    Windows调试 - 如何使用dump文件 2013-02-04 16:05 445人阅读 评论(0) 收藏 举报 dmp dump debug visua 如何使用dump文件 我最近在开发一个windows下的程序(win7/win8),有一些case下会crash,...
  • Windows调试命令 NTSD

    千次阅读 2006-06-05 22:30:00
    Windows调试命令 NTSD问:怎么才能关掉一个用任务管理器关不了的进程?我前段时间发现我的机子里多了一个进程,只要开机就在,我用任务管理器却怎么关也关不了 答1:杀进程很容易,随便找个工具都行。比如IceSword。...
  • windows调试器之windbg

    千次阅读 2013-04-21 21:37:12
    windbg由于其丰富的命令和对windows的原生支持还有其易用性,是其他其他调试器望尘莫及的。 不过,如果你只是想通过源码调试应用层程序,应该首选vc调试器。 windbg特色功能: 1. 支持应用层程序调试(可以源码...
  • 编写一个初级的Windows调试

    千次阅读 2011-01-28 11:13:00
    这是用Live Writer写的,很多原来的格式信息都没了,杯具 Writing a basic Windows debugger 编写一个初级的Windows调试器 By Ajay Vijayvargiya | 24 Jan 2011 作者:Ajay Vijayvar
  • 问题讲述:利用visualstudio打开网上down下来的代码,点击本地windows调试器,弹出窗口,说“无法启动程序,系统找不到指定的exe文件”。 原因:未对项目生成解决方案。 解决方法:在资源管理器,选中该项目,右键...
  • 为处理windows程序崩溃问题,有必要引入异常捕获模块。本资源主要讲述如何配置产生dump文件的环境以及dump文件产生后的分析定位。
  • Windows调试工具入门 — windebug

    千次阅读 2018-05-17 19:41:57
    转载自https://blog.csdn.net/zmqblog/article/details/17334637一、 引子Debugging Tools for Windows是微软发布的一套用于软件调试的工具包(后面如果没有指明,那么我会使用WinDbg来作为这一套调试工具的简称)...
  • Windows调试技术基础

    千次阅读 2012-02-21 13:14:08
    软件调试技术的意义: 1. 在调试上花费时间很多  2. 调试可以解决很多问题,是强大的工具  3. 调试是有稳定的生命周期  4. 调试也是学习技术的好工具  调试窗口: BreakPoints. Watch, Local, Call...
  • [调试]_[初级]_[VS本地Windows调试器]

    千次阅读 2014-11-28 10:32:48
    条件断点培训.
  • windows调试器之Visual C++

    千次阅读 2013-04-21 19:22:22
    我打算给大家介绍一些windows下常用的调试器: visual c++ ollydbg windbg visual c++作为我们的开发工具,当做调试器当然也不逊色,那他与别的调试器相比有哪些优劣点呢? visual c++调试
  • 离线下载Windows 调试符号 Symbols

    千次阅读 2015-06-24 12:37:00
    调试程序时那些Windows模块(如ntdll.dll)不能加载符号,而程序总是崩在这些模块里。想看一眼到底崩在了什么地方。 需要把对应的符号下载下来。 使用工具symchk: /om /im 需要添加环境变量: _NT_SYMBOL_...
  • Windows调试工具入门 — 1

    千次阅读 2012-11-28 20:55:22
    Debugging Tools for Windows是微软发布的一套用于软件调试的工具包(后面如果没有指明,那么我会使用WinDbg来作为这一套调试工具的简称)。我第一次接触是在三年前的一个内核驱动项目,由于进行了IDT中键盘鼠标...
  • 内核调试主要用来调试驱动代码、分析内核结构等。 WinDbg通过两台电脑可以实现内核调试,其中一台电脑运 行WinDbg,被称为主机;另外一台电脑运行被调试的程序或系统,被称为目标机。一般情况下两台电脑都是真实机 ...
  • VSCode在Linux和Windows调试C/C++程序

    千次阅读 2017-02-21 12:17:20
    VSCODE是一个文本编辑器,不具备编译功能,但是可以调用外部编译器调试器来实现调试功能
  • 工程中引用了几个第三方库libxml 、cjson以及其他的DLL,VS2010单步调试时提示如下: Windows已经在XXX.exe中触发一个断点。 其原因可能是堆被损坏,这说明XXX.exe或它所加载的任何DLL中有BUG。 原因也可能是用在XXX...
  • 环境搭建系统环境:Windows7 Mono版本:4.4 依赖编辑器:Xamarin Studio 如果已经折腾好了可以跳过本步骤。截至2017-2-7日,Xamarin Studio最新版本为6.1.2.44,教程中也是使用本版本进行调试开发的。依次下载安装...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 403,286
精华内容 161,314
关键字:

windows调试