Electronic Joint Business

Solution for E-Business

windbg

用 IDA Windbg 调试器实现 VMWare 上的 Windows 内核调试

文章评价:
IDA 是交互式反汇编器(Interactive Disassembler)的简称,它由总部位于比利时列日市(Liège)的 Hex-Rays 公司的一款产品。IDA是一种递归下降反汇编器。其主要优势在于呈现尽可能接近源代码的代码。它不仅使用数据类型信息,而且通过派生的变量和函数名称来尽其所能地注释生成的反汇编代码。这些注释将原始十六进制代码的数量减到最少,并显著增加了向用户提供的符号化信息的数量。

和 Windows 原生的调试器 windbg 相比, IDA 可以将程序结构和算法的核心以类似 C 语言的形式呈现,因此更容易通过阅读代码来定位问题的所在。

本文将介绍如何透过 IDA 的 Windbg 插件来实现 Windows 内核调试。

使用 WinDbg 进行 Windows 内核调试通常需要两台计算机,一台称为Debuggee,即目标机,另一台作为 Debugger,也称为主机 HOST。

目标机可以是物理机或虚拟机。如果是物理机,那么该机器至少需要一个串口、1394口或者支持 USB 调试的 USB 端口,另外你还需要与对应的调试连接线,如串口线、1394总线、USB 2.0 或 3.0 调试线等等。 Windows 8 之后的操作系统,普遍使用 USB 3.0 端口进行调试,通过 USBView 工具查看目标机,可以确定机器上哪一个 USB 端口支持调试。

>>> 阅读全文

 

, , , ,

Windows 调试教程 (一) 用 CDB 和 NTSD 开始调试

对于软件开发和维护来说,调试是最有价值的技能之一。它贯穿于产品整个生命周期中的每个阶段。从创建项目伊始开发人员就会遇到 bug,bug 可能是逻辑错误、语法错误又或者是编译器错误,bug 随处可见。在软件质量验收阶段也可能会遇到 bug ,因为这时引入了更多高级测试场景,还需要和其他环境进行交互。最后,产品发布后还需获得技术支持。即使用户拿到软件后,调试还要继续,因为用户一旦遇到 bug 就会上报给公司,这时还是要再次进行调试。

本教程的目的是什么?
本教程只是对调试做一些简单介绍,可以归类为”初级教程”,如果大家的反映还不错,我会续写更多的章节。

对于调试这个话题来说,实在有太多复杂技术,所以很难知道要从哪里开始着手。我会试着从基础讲起,带着你熟悉调试。希望这样能将初、中级程序员带到高级调试的世界中。所谓 “高级”调试,是指调试时基本上无需重编译,也无需用对话框或 printf 语句来输出调试信息。

调试器与操作系统
微软随着每版 Windows SDK 都提供了最新的调试器,目前最新版本是 Windows 8.1 SDK ,你可以从微软站点上下载。

CDB, NTSD 和 Windbg
本文适用于 Windows 2000 以上的操作系统。我们将谈论三种调试器: CDB、 NTSD 和 WinDbg。一旦安装完 SDK 之后,这三个调试器也就随之安装。

>>> 阅读全文

 

, , , , ,