08 2019 档案

WinDbg常用命令系列---?*
摘要:? (Command Help) 问号(?)字符显示所有命令和运算符的列表。问号本身显示命令帮助。 环境 模式 用户模式下,内核模式 目标 实时、 崩溃转储 平台 全部 ? (Evaluate Expression) 问号(?)命令计算并显示表达式的值。 参数 Expression指定要计算的表达式 阅读全文

posted @ 2019-08-31 14:38 活着的虫子 阅读(2286) 评论(0) 推荐(0) 编辑

记一次软件闪退的排查过程
该文被密码保护。

posted @ 2019-08-31 10:33 活着的虫子 阅读(1) 评论(0) 推荐(0) 编辑

使用WinDbg调试入门(内核模式)
摘要:windbg是一个内核模式和用户模式调试器,包含在Windows调试工具中。这里我们提供了一些实践练习,可以帮助您开始使用windbg作为内核模式调试器。 设置内核模式调试 内核模式调试环境通常有两台计算机:主机和目标计算机。调试器在主机上运行,正在调试的代码在目标计算机上运行。主机和目标通过调试电 阅读全文

posted @ 2019-08-29 12:41 活着的虫子 阅读(4084) 评论(5) 推荐(0) 编辑

通过USB 2.0电缆手动设置内核模式调试
摘要:Windows的调试工具支持通过USB 2.0电缆进行内核调试。本文介绍如何手动设置USB 2.0调试。通过USB 2.0电缆进行调试需要以下硬件: USB 2.0调试电缆。此电缆不是标准USB 2.0电缆,因为它有一个额外的硬件组件,使其与USB2调试设备功能规范兼容。您可以在Internet上搜 阅读全文

posted @ 2019-08-29 12:40 活着的虫子 阅读(987) 评论(0) 推荐(0) 编辑

通过网线手动设置内核模式调试
摘要:Windows的调试工具支持通过以太网进行内核调试。本主题介绍如何手动设置以太网调试。 运行调试器的计算机称为主机,被调试的计算机称为目标计算机。主机必须运行Windows XP或更高版本,目标计算机必须运行Windows 8或更高版本。与其他类型的电缆相比,通过网络进行调试具有以下优点。 主机和目 阅读全文

posted @ 2019-08-29 11:38 活着的虫子 阅读(1310) 评论(0) 推荐(0) 编辑

使用WinDbg调试入门(用户模式)
摘要:windbg是一个内核模式和用户模式调试器,包含在Windows调试工具中。在这里,提供个实践练习,帮助我们开始使用windbg作为用户模式调试器。 用WinDbg调试记事本 1、导航到安装目录,然后打开windbg.exe。 2、在“文件”菜单上,选择“打开可执行文件”。在“打开可执行文件”对话框 阅读全文

posted @ 2019-08-28 16:47 活着的虫子 阅读(12634) 评论(16) 推荐(1) 编辑

WinDbg的环境变量
摘要:有很多的环境变量,主要分为常规环境变量和内核模式环境变量。下面分别列出。 常规环境变量 下表列出了可在用户模式和内核模式调试的环境变量。 _NT_DEBUGGER_EXTENSION_PATH = Path 指定调试器将先搜索扩展 Dll 的路径。 路径可以包含驱动器号后, 接一个冒号 (:)。 用 阅读全文

posted @ 2019-08-28 08:42 活着的虫子 阅读(1141) 评论(0) 推荐(0) 编辑

WinDbg命令窗口的使用
摘要:调试器命令窗口是windbg中的主要调试信息窗口。可以在此窗口中输入调试程序命令并查看命令输出。Windbg的命令窗口是我们进行调试时,主要打交道的窗口。界面如下 对于windbg,“调试器命令窗口”是指标题栏中标记为“命令”的窗口。此窗口包含两个窗格: 在底部的小窗格中,输入命令。 在上面的大窗格 阅读全文

posted @ 2019-08-27 18:01 活着的虫子 阅读(1952) 评论(0) 推荐(0) 编辑

WinDbg扩展
摘要:WinDbg的扩展,也可以叫插件。它用于实现针对特定调试目标的调试功能,用于扩展某一方面的调试功能。扩展的实现是通过扩展模块(DLL)实现的。Windbg本身已经包含了很多扩展命令,这些扩展为这Windbg调试器提供了强大的功能和灵活性。调试器扩展命令的使用与标准调试器命令非常相似。但是,虽然内置调 阅读全文

posted @ 2019-08-27 16:24 活着的虫子 阅读(1833) 评论(0) 推荐(0) 编辑

Windbg命令脚本流程控制语句详解
摘要:在Windbg命令脚本一文里,我们介绍了命令脚本语言的的组成要素,在本文里将对语句进行展开的讲解。这些语句主要是流程控制的语句,比如我们常见的条件分子和循环语句等。 ; (命令分隔符) 分号(;)字符用于在一行中分隔多个命令。 参数 命令1,命令2,… 要执行的命令。 命令从左到右依次执行。除非另有 阅读全文

posted @ 2019-08-27 11:22 活着的虫子 阅读(874) 评论(0) 推荐(0) 编辑

Windbg命令脚本
摘要:命令脚本,就是将完成某个特定任务的相关命令组合在一起,保存在脚本文件里,加载到Windbg里执行,达到我们的目的。你可以理解为脚本就是一种语言,就像c或者汇编,但是他不需要编译器将其编译为可执行文件,而是由解释器将其内容翻译为对应的动作。而Windbg的脚本就是利用Windbg作为解释器,将脚本内容 阅读全文

posted @ 2019-08-26 17:13 活着的虫子 阅读(2306) 评论(0) 推荐(1) 编辑

Windbg命令的语法规则系列(三)
摘要:五、源文件行语法 可以将源文件行号指定为MASM表达式的全部或部分。这些数字计算出与该源代码行对应的可执行代码的偏移量。不能使用源代码行作为C++表达式的一部分。必须用重音符(`)将源文件和行号表达式括起来。以下示例显示源文件行号的完整格式。 如果有多个文件具有相同的文件名,则文件名应包括整个目录路 阅读全文

posted @ 2019-08-26 15:33 活着的虫子 阅读(509) 评论(0) 推荐(0) 编辑

Windbg命令的语法规则系列(二)
摘要:二、字符串通配符语法 一些调试器命令具有接受各种通配符的字符串参数。这些类型的参数支持以下语法功能: 星号(*)表示零个或多个字符。 问号(?)表示任何单个字符。 包含字符列表的括号([])表示列表中的任何单个字符。列表中只有一个字符匹配。在这些括号中,可以使用连字符(-)指定范围。例如,prog[ 阅读全文

posted @ 2019-08-26 11:54 活着的虫子 阅读(750) 评论(0) 推荐(0) 编辑

Windbg命令的语法规则系列(一)
摘要:本文介绍使用调试器命令必须遵循的语法规则。使用Windbg调试时,应遵守以下一般语法规则: 您可以在命令和参数中使用大小写字母的任意组合,除非在本节的主题中特别指出。 可以用一个或多个空格或逗号(,)分隔多个命令参数。 通常可以省略命令与其第一个参数之间的空格。如果这种省略不会造成任何歧义,则可以经 阅读全文

posted @ 2019-08-26 11:06 活着的虫子 阅读(1574) 评论(0) 推荐(0) 编辑

使用 DML 自定义调试器输出
摘要:调试器标记语言 (DML) 提供了一种机制增强来自调试器和扩展的输出。 与 HTML 类似,调试器的标记支持允许将输出包括显示指令和额外非显示的标记窗体中的信息。 调试器用户界面,WinDbg 等中分析出提供在 DML 来增强所显示的信息,并提供新行为,如网格显示和排序的额外信息。 本主题介绍如何自 阅读全文

posted @ 2019-08-23 15:49 活着的虫子 阅读(459) 评论(0) 推荐(1) 编辑

使用调试器标记语言
摘要:从6.6.07版的调试器开始,为了增强和扩展调试器的数据输出,将使用新的机制:debuggermarkup language (DML)。DML象HTML那样允许在一定格式的标记中包含指令和不显示的信息。调试器的用户界面将能分析额外的信息并提供新的特性。调试器命令可以以纯文本或使用调试器标记语言(D 阅读全文

posted @ 2019-08-23 14:53 活着的虫子 阅读(374) 评论(0) 推荐(0) 编辑

windbg命令行选项
摘要:我们不仅可以通过GUI的方式使用Windbg,还可以通过命令行的方式使用它,且在有些需求和使用场景下,只能使用命令行模式 windbg命令行使用以下语法: windbg [ -server ServerTransport | -remote ClientTransport ] [-lsrcpath 阅读全文

posted @ 2019-08-23 10:01 活着的虫子 阅读(1524) 评论(0) 推荐(0) 编辑

Windbg的命令
摘要:前面介绍了Windbg的UI功能,也基本上能完成基本的调试任务,但是WinDBG主要是以命令方式工作的,这些命令在Command Window里输入。WinDBG共支持三类命令:标准命令、元命令和扩展命令。某些命令仅在实时调试中可用,其他命令仅在调试转储文件时可用。某些命令仅在用户模式调试期间可用, 阅读全文

posted @ 2019-08-22 17:01 活着的虫子 阅读(1196) 评论(0) 推荐(0) 编辑

选择32位或64位调试工具
摘要:安装Windows调试工具时,您将同时获得32位工具集和64位工具集。如下图 如果使用的是Microsoft Visual Studio调试环境,则无需考虑是否使用32位或64位,因为Visual Studio会自动选择正确的调试工具。如果您使用的是其他调试环境(windbg、kd、cdb或ntsd 阅读全文

posted @ 2019-08-22 14:43 活着的虫子 阅读(777) 评论(0) 推荐(0) 编辑

Windbg的主题---Theme
摘要:主题是预配置的windbg工作区,其中包含调试信息窗口的有用配置。任何主题都可以保存为基本工作区。Windows调试工具包中的主题作为一组注册表文件(扩展名为.reg)提供。当您积累更多的调试会话时,会自动设置各种默认工作区。这些默认工作区使用基本工作区作为起点。有关默认工作区的详细信息,请参见Wi 阅读全文

posted @ 2019-08-22 11:06 活着的虫子 阅读(938) 评论(0) 推荐(1) 编辑

WinDbg的工作空间---Work Space
摘要:一、什么是工作空间 Windbg把和调试相关的所有配置称为workspace。WinDbg使用工作空间来描述和存储调试项目的属性、参数及调试器设置等信息。工作空间与vc中的项目文件很相似。退出windbg时,它会将会话配置保存在工作区中。工作区使您能够轻松地保留从一个会话到另一个会话的设置。您还可以 阅读全文

posted @ 2019-08-22 09:42 活着的虫子 阅读(1316) 评论(0) 推荐(0) 编辑

WinDbg 图形界面功能(四)
摘要:二、工具栏 除了断点按钮在工具栏上的每个按钮相当于菜单命令。 每个按钮的效果的完整说明,请参阅相应的菜单命令的页。 在工具栏上的按钮具有以下效果。 打开源文件为只读的文件。 等效于文件 |打开源文件。 从活动窗口中删除所选的文本并将其放到剪贴板上。 等效于编辑 |剪切。 将所选的文本从活动窗口复制到 阅读全文

posted @ 2019-08-21 16:02 活着的虫子 阅读(501) 评论(0) 推荐(0) 编辑

WinDbg 图形界面功能(三)
摘要:1.4、调试菜单 调试相关操作的功能菜单在这个下面,比如单步执行等。 Go 单击Go调试菜单恢复 (或开始) 在目标上的执行。 此执行将继续,直到抵达某个断点、 异常或事件发生时,该过程结束或调试器将中断目标。此命令相当于按 F5 或单击 (F5) 转按钮 () 工具栏上。 转到未经处理异常单击转未 阅读全文

posted @ 2019-08-21 15:56 活着的虫子 阅读(634) 评论(0) 推荐(0) 编辑

WinDbg 图形界面功能(二)
摘要:1.2、编辑菜单 这个菜单可以提供Windbg里的各功能窗口的可选文本的编辑功能,比如源代码窗口、命令窗口等提供选择、复制、剪切和黏贴等基础编辑功能。 剪切 单击剪切上编辑菜单中,删除所选的任何文本并将其移动到剪贴板。此命令是等效于按下 CTRL + X 或 SHIFT + DELETE,或单击剪切 阅读全文

posted @ 2019-08-21 14:44 活着的虫子 阅读(870) 评论(0) 推荐(0) 编辑

WinDbg 图形界面功能(一)
摘要:当我们启动windbg后,我们就能看到Windbg的样子了,如下: 本部分讨论 WinDbg 图形用户界面的元素。 这些元素包括以下各项:菜单、工具栏和快捷键。菜单有:文件菜单、编辑菜单、视图菜单、调试菜单、窗口菜单、帮助菜单。下面分别一 一简单介绍下。 一、菜单 1.1、文件菜单 打开源文件加载特 阅读全文

posted @ 2019-08-21 11:39 活着的虫子 阅读(2006) 评论(0) 推荐(0) 编辑

WinDbg的安装、配置和功能
摘要:一、WinDbg简介 WinDbg是微软发布的一款免费而十分强大的调试工具。既然是微软自己发布的调试工具,那它对微软产品的调试当然是十分的强大。Windows 调试器 (WinDbg) 可用于调试内核模式和用户模式代码,来分析故障转储,并检查代码时 CPU 寄存器执行,同时也是一款相当优秀的源码级( 阅读全文

posted @ 2019-08-20 17:31 活着的虫子 阅读(20534) 评论(2) 推荐(8) 编辑

windbg调试托管代码 .Net clr
摘要:现在很多的程序都是多语言混合编程的,比如我司的产品,就是用C++/.net clr混合编制的。那么当我们调试这样的程序时,一定要注意,比如有时我们只看到c++的栈和名称,而.net clr的代码确看不到。比如 那要怎样才能看到.net clr的代码和栈呢,下面简单讲一下。 一、SOS.DLL SOS 阅读全文

posted @ 2019-08-19 15:58 活着的虫子 阅读(1653) 评论(0) 推荐(2) 编辑

调试案例---一次真实的栈溢出
该文被密码保护。

posted @ 2019-08-17 14:18 活着的虫子 阅读(2) 评论(0) 推荐(0) 编辑

win32线程栈溢出问题 (二)
摘要:3.2、函数递归调用引发的栈溢出 写一段最简单的无穷递归代码,如下: 在VS编译,Debug模式下运行之,结果报错 观察下调用栈,发现栈没有破坏,但被大量的f()调用沾满,如下: 这也充分说明了,是递归调用引起了栈溢出 转到汇编,在地址栏里输入上面错误框里的地址0x011515C9 可以看到,程序是 阅读全文

posted @ 2019-08-17 13:55 活着的虫子 阅读(484) 评论(0) 推荐(0) 编辑

win32线程栈溢出问题 (一)
摘要:一、什么是线程栈溢出 我们都知道,每一个win32线程都会开辟一个空间,用来临时存储线程执行时所调用的一系列函数的参数、返回地址和局部变量及其他上下文信息。这个空间就是线程的栈区。栈区的容量是有限的,在程序编译链接时,就固定下来了。通过VC++编译的程序,默认的栈区大小是1MB。当我们程序执行时,访 阅读全文

posted @ 2019-08-16 00:31 活着的虫子 阅读(1786) 评论(0) 推荐(0) 编辑

WinDbg常用命令系列---查看线程调用栈命令K*简介
摘要:Windbg里的K*命令显示给定线程的堆栈帧以及相关信息,对于我们调试时,进行调用栈回溯有很大的帮助。 一、K*命令使用方式 在不同平台上,K*命令的使用组合如下 User-Mode, x86 Processor Kernel-Mode, x86 Processor User-Mode, x64 P 阅读全文

posted @ 2019-08-15 14:25 活着的虫子 阅读(8979) 评论(0) 推荐(0) 编辑

BCD码
摘要:BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计 阅读全文

posted @ 2019-08-10 13:52 活着的虫子 阅读(2323) 评论(0) 推荐(0) 编辑

Intel 80386 CPU
摘要:一、80386 概述 80386处理器被广泛应用在1980年代中期到1990年代中期的IBM PC相容机中。这些PC机称为「80386电脑」或「386电脑」,有时也简称「80386」或「386」。80386的广泛应用,将PC机从16位时代带入了32位时代。80386的强大运算能力也使PC机的应用领域 阅读全文

posted @ 2019-08-10 10:56 活着的虫子 阅读(6618) 评论(0) 推荐(1) 编辑

Intel 80286 CPU
摘要:一、80286概述 INTEL 1982年推出80286芯片,该芯片相比8086和8088有了飞跃式发展,虽然它仍是16位结构,但在CPU内部含有13.4万个晶体管,时钟频率由最初6MHz逐步提高到20MHz。内部和外部数据总线皆为16位,地址总线24位,可寻址内存大小达到16Mb。80286兼容了 阅读全文

posted @ 2019-08-09 15:23 活着的虫子 阅读(3204) 评论(0) 推荐(0) 编辑

Intel 8086 CPU
摘要:一、8086概述 Intel8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K8位元的输出输入(或32K16位元),以及固定的向量中断。大部分的指令只能够存取一个 阅读全文

posted @ 2019-08-08 16:32 活着的虫子 阅读(4142) 评论(0) 推荐(0) 编辑

导航