[系统安全] Windbg Preview调试记录

Posted _Zer0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[系统安全] Windbg Preview调试记录相关的知识,希望对你有一定的参考价值。

本文为笔者从零基础学习系统安全相关内容的笔记,如果您对系统安全、逆向分析等内容感兴趣或者想要了解一些内容,欢迎关注。本系列文章将会随着笔者在未来三年的读研过程中持续更新。

前文链接
[系统安全] PE文件格式详解1
[系统安全] PE文件格式详解2


逆向调试工具介绍

windows下调试工具主要有Ollydbg、IDA、Windbg。调试的程序主要分成两类,一类是用户态下程序,一类是内核态下程序。Windbg的一个升级版是Windbg Preview,这个也是本篇文章记录的内容。

一般情况下用户态程序调试使用Ollydbg或者IDA,内核态程序调试使用Windbg。

需要注意的是Windbg调试器需要符号文件来获取有关代码模块的信息(函数名、变量名等)。也就是VS编译生成的一个.pdb后缀文件。


用户模式程序调试

先使用VS编译代码生成exe文件和pdb文件

void MyFunction(long p1, long p2, long p3)
    long x = p1 + p2 + p3;
    long y = 0;
    y = x / p2;

int main()
    long a = 2;
    long b = 0;
    MyFunction(a, b, 5);
    return 0;

从Windbg Preview中打开,并在main处设置断点

然后点击run之后就可以进行常规调试


内核模式程序调试

进行内核调试时,操作系统将被冻结,这种情况下不可能运行调试器。因此,调试内核的常用方法是使用VMware。

注意: 需要修改被调试机器的开机启动项和其他设置,windows XP下修改C:\\boot.ini文件,
Win7下因为没有C:\\boot.ini文件,就需要其他方式修改。这里以win7为实验环境。

第一步先配置虚拟机,添加一个硬件串行端口

设置管道名称

配置系统调试模式
补充: 引导配置数据 (BCD) 文件提供用于描述启动应用程序和启动应用程序设置的存储。 存储中的对象和元素会替换 Boot.ini内容。

设置端口com1

bcdedit /dbgsettings serial baudrate:115200 debugport:1

复制一个开机选项,取名DebugEntry

bcdedit /copy current /d DebugEntry

增加一个开机引导项

bcdedit /displayorder current 上面生成的id

激活debug

bcdedit /debug 上面生成的id ON


重启进入调试引导

配置调试器

然后过一分钟左右才能连上

以上是关于[系统安全] Windbg Preview调试记录的主要内容,如果未能解决你的问题,请参考以下文章

Windows内核调试器的WinDBG

如何使用WinDBG跟踪调试ASL/ACPI

如何使用WinDBG跟踪调试ASL/ACPI

windbg 调试lsass.exe 记录

windbg 怎么调试dmp文件

中小研发团队架构实践之WinDbg