学习WinDbg - (1)查看内核数据结构

使用Windbg定位内存泄露 在网上看了两篇文章,整理一下,大致内容如下:   场景一:运行Debug版本程序,用Windbg attach 上去,等程序退出时,基于内存泄露报告,定位内存泄露的位置。   首先使用windbg工具gflags.exe设置内存启动跟踪内存泄露进程的user stack 启动方法就是运行下面指令gflags.exe /i test.exe +ust 需要通过gflags.exe工具打 阅读详情

学习WinDbg - (1)查看内核数据结构
darkbasic 2007.05.03

首先进入本地内核调试,菜单“File” -- “Kernel Debug..”,选“Local”项,确定。

然后要设定好符号文件,WinDbg就是通过符号文件才能显出内核数据结构。
对于查看内核数据结构,我们只要设定好ntoskrnl.exe的符号文件就可以了。
  
//设定符号文件路径到本地及微软服务器:
lkd> .sympath SRV*H:/Symbols*http://msdl.microsoft.com/download/symbols
  
//下载ntoskrnl.exe的符号文件:
lkd> .reload /f nt
WinDbg将会从微软的符号文件服务器去下载ntoskrnl.exe的符号文件到本地。
  
//查看详细的模块信息:
lkd> !lmi nt
Loaded Module Info: [nt]
          Module: ntkrnlpa
    Base Address: 804d8000
      Image Name: ntkrnlpa.exe
    Machine Type: 332 (I386)
      Time Stamp: 45e53f9c Wed Feb 28 16:38:52 2007
            Size: 1f6400
        CheckSum: 1facf5
Characteristics: 12e  
Debug Data Dirs: Type   Size      VA   Pointer
              CODEVIEW     25,   9540,     9540 RSDS - GUID: {F612363D-B38C-423C-B085-59DDBCA9F2F7}
                Age: 1, Pdb: ntkrnlpa.pdb
      Image Type: MEMORY    - Image read successfully from loaded memory.
     Symbol Type: PDB       - Symbols loaded successfully from symbol server.
                  H:/Symbols/ntkrnlpa.pdb/F612363DB38C423CB08559DDBCA9F2F71/ntkrnlpa.pdb
     Load Report: public symbols , not source indexed
                  H:/Symbols/ntkrnlpa.pdb/F612363DB38C423CB08559DDBCA9F2F71/ntkrnlpa.pdb

可以看到,ntoskrnl的符号文件已经成功加载了,现在就可以用dt (Display Type)命令来查看内核数据结构了。

//列出所有的内核数据结构的名称:
lkd> dt nt!_*
           nt!_LIST_ENTRY
           nt!_LIST_ENTRY
           nt!_IMAGE_NT_HEADERS
           nt!_IMAGE_FILE_HEADER
           nt!_IMAGE_OPTIONAL_HEADER
           nt!_IMAGE_NT_HEADERS
           nt!_LARGE_INTEGER

//列出DRIVER_OBJECT的结构
lkd> dt nt!_DRIVER_OBJECT
    +0x000 Type              : Int2B
    +0x002 Size              : Int2B
    +0x004 DeviceObject      : Ptr32 _DEVICE_OBJECT
    +0x008 Flags             : Uint4B
    +0x00c DriverStart       : Ptr32 Void
    +0x010 DriverSize        : Uint4B
    +0x014 DriverSection     : Ptr32 Void
    +0x018 DriverExtension   : Ptr32 _DRIVER_EXTENSION
    +0x01c DriverName        : _UNICODE_STRING
    +0x024 HardwareDatabase : Ptr32 _UNICODE_STRING
    +0x028 FastIoDispatch    : Ptr32 _FAST_IO_DISPATCH
    +0x02c DriverInit        : Ptr32    
    +0x030 DriverStartIo     : Ptr32    
    +0x034 DriverUnload      : Ptr32    
    +0x038 MajorFunction     : [28] Ptr32
      
   
//清屏
.cls

WinDBG查看内核数据结构 查看详细的模块信息:!lmi nt 枚举所有内核数据结构:dt nt!_* 查看数据结构详细信息:dt nt!_xxx // !lmi nt [查看详细的模块信息] kd> !lmi nt Loaded Module Info: [nt] Module: ntkrnlpa Base Address: 804d8000 Image Name: n 阅读详情

相关推荐

Windows 内核之双机调试与windbg命令大全

在今后会有相当的实验环节,对于windows内核实验,调试环境是必不可少的,本章讲解双机调试的环境搭建与常见的WINDBG指令。 准备材料: VMware workstation : [https://www.vmware.com/go/downloadworkstation-cn] windows 7 x64 ISO (请使用种子下载工具进行下载): [ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|34205573

玄道的网安博客 1340

Windbg调试----Windbg入门

Windbg简单来说就是一个Windows下对用户态/内核态的程序进行调试,以及对Core Dump文件的分析。对于Crash,资源泄露,死锁等问题的分析,Windbg是一个强有力的利器。

Lce的专栏 3865

windbg+vmware+win7 内核

一. vmware 下安装:windows 7 ultimate x86 中文版1、vmware (请使用尽可能新的版本以对tools的支持) 的设置  打开相应 vmware 虚拟机上的 “Virtaul Machine Settings”---> “Hardware”选项中 ----> 点击 “Add” 添加一个串口设备 Seiall Port ----> “Next” ----> 在 Serial Port 里选中“Output to named pipe” ----> “next” ----> “F

G_Spider的专栏 8072

1. WinDbg概述

授之以鱼不如授之以渔,我们用一篇文章介绍了WinDbg的基本使用。我们并没有一个命令一个命令去讲解命令含义,相反,我们介绍了如何查所有的基本命令、元命令和扩展命令,介绍了如何使用帮助来查各个命令的使用方法。知道了方法以后,大家完全可以自学WinDbg软件的使用了,遇到问题就查帮助。相信随着使用次数的增加,对WinDbg功能的领会就会越来越深,逐步实现量变到质变。以后的文章中,除非特别必要,否则我不会再介绍WinDbg的具体命令含义了,而会聚焦于如何使用各种工具去调试、分析和学习.NET程序。

Login255的博客 7703

在winxp环境下,用windbg查看GDT表、IDT表、TSS描述符

转载请注明出处:http://blog.youkuaiyun.com/mengzhongfeixueyi/article/details/78033244 一开始什么都不会,不知道如何下手,看ppt上面有个kd>,都不知道kd怎么出来的,自己打开windbg照着网上的选择attach to ……,随便找了个进程打开也不是kd开头的。网上搜索了一圈,才觉得查看GDT、IDT、TSS这些应该是属于内核调

mengzhongfeixueyi的博客 5644

WinDbg学习笔记六 - 内核调试配置

内核调试可以分为三种情况: 本机内核调试,双机内核调试 - 真机双机内核调试,虚拟机双机内核调试。本篇将介绍本机内核调试以及虚拟机内核调试的配置。 本机内核调试配置: 本机内核调试功能比较单一,只能读写内存,没有基本的单步断点等功能, 可以主要用来查看系统内核信息。目前主要是通过WinDbg自带的kldbgdrv.sys驱动调用nt!KdSystemDebugControl函数来提供支

imJaron的博客 1043

Windows开发入门:工具-WinDbg的安装和使用教程

序言 目录序言安装1)下载2)配置环境变量3)重启并测试使用 参考文档: WinDbg的安装 安装 1)下载 点我跳转下载链接 直接点击页面里的 Download WinDbg Preview from the Microsoft Store就会自动打开windows应用商城下载。 安装完成后,可以从c盘搜索WinDbg找到安装目录,默认的是在C:\Users\你的用户名\AppData\Local\Microsoft\WindowsApps 2)配置环境变量 安装好之后就需要配环境变量,打开环境变量配置

锕琅的博客 10万+

WinDbg Preview查看内核栈回溯:通俗解释关键步骤

通过WinDbg Preview轻松掌握内核栈回溯的关键操作步骤,深入理解函数调用流程。结合windbg preview的强大调试能力,快速定位系统级问题,提升排查效率。

weixin_36213081的博客 637

用WINBDG 查看 IIS7.5 CPU 100% 原因

服务器:CPU 4 核,WIN2008 R2 64位 .NET MVC 的程序在压力测试(20个用户无思考时间)下,CPU 总是莫名的100%,数据库 CPU 为0,w3wp.exe *32的CPU为100% 判断:程序出现的死循环,由于在压力下才出现,所以可以断定 多线程访问对象是出的问题。 在任务管理器中看到的线程为:w3wp.exe *32(通过应用程序池-“启用32位应用程序”...

weixin_30753873的博客 357

Copula函数

Copula是处理统计中随机变量相关性问题的一种方法。本文是对Copula函数的各种定义,Copula函数的思想,Copula函数的性质,Copula函数的类型等理论资料总结

Explore 5万+

新疆地形数据下载:30米、12.5米、5米DEM地形数据

新疆是我国陆地面积最大的省级行政区,总面积达166万平方公里。新疆的地形也十分的复杂,新疆的地形呈山脉与盆地相间排列,盆地被高山环抱,,俗称“三山夹两盆”。三山指阿尔泰山、昆仑山、天山,两盆是指塔里木盆地和准噶尔盆地。 对精度要求不高的话,可以直接使用图新地球下载 新疆30米地形数据 大小:9.26GB 来自ASTER v3的新疆30米地形数据 30米地形数据下载 新疆12.5米地形数据 12.5米DEM数据由于精度比较高,一般不会用到全省的数据,通常用的是一个地区的,因此,可以单独分

LocaSpace的博客 3495

【转帖】学习WinDbg - (1)查看内核数据结构

首先进入本地内核调试,菜单“File” -- “Kernel Debug..”,选“Local”项,确定。然后要设定好符号文件,WinDbg就是通过符号文件才能显出内核数据结构。对于查看内核数据结构,我们只要设定好ntoskrnl.exe的符号文件就可以了。  //设定符号文件路径到本地及微软服务器:lkd> .sympath SRV*H:/Symbols*http://msdl.micr

floweronwarmbed的专栏 1231

贴片二极管SOD封装详解:SOD-123/323/523尺寸焊盘设计要点

表面贴装技术中,二极管封装尺寸直接决定PCB布局与焊接可靠性。SOD封装作为小外形二极管的主流形态,其SOD-123、SOD-323、SOD-523三种规格分别对应不同的功耗与占板面积权衡。理解封装尺寸、焊盘设计计算逻辑和钢网开窗原理,是避免立碑、虚焊等工艺缺陷的关键。在可穿戴设备、电源保护等空间受限场景中,合理选择封装不仅能优化散热路径,还能提升量产良率。本文从焊盘计算、工艺要点到选型策略,全面解析SOD封装的工程实践。

weixin_42520780的博客 307

设置WINDBG本机内核调试

之前使用过WINDBG+虚拟机进行双机内核调试,这次需要直接使用本机内核调试的功能,在设置的时候遇到的一些问题即解决方法来分享一下。 下面是借鉴的别人的博客里的步骤 ** 1. 下载/安装windbg   2. 找到windbg的安装路径,windbg访问符号需要两个文件(SYMSRV.DLL 和 SYMSTORE.EXE)所以添加主path环境变量中它们的路径进去,即:你的windbg安

Lawliet_233的博客 2302

AI 大模型在电商精准营销中的应用

例如,对于用户 A 和用户 B,通过比较他们对共同评价过的商品的评分差异来确定相似度。其中,(Gain(D,a))表示特征(a)对数据集(D)的信息增益,(Ent(D))表示数据集(D)的信息熵,(V)表示特征(a)的取值个数,(D^{v})表示特征(a)取值为(v)的样本子集。其中,(sim(A,B))表示用户 A 和用户 B 的相似度,(I)表示用户 A 和用户 B 共同评价过的商品集合,(R_{A,i})和(R_{B,i})分别表示用户 A 和用户 B 对商品(i)的评分。(三)营销活动效果预测。

alittlehippo的博客 1627

WPF数据绑定Binding对数据的转换与效验(四)

Binding的作用就是架在Source与Target之间的桥梁,数据可以在这座桥梁的帮助下来流通。就像现实世界中的桥梁会设置一些关卡进行安检一样,Binding这座桥上也可以设置关卡对数据的有效性进行检验,不仅如此,当Binding的两端要求使用不同的数据类型时,我们还可以为数据设置转换器。Binding用于数据有效性检验的关卡是它的ValidationRules属性,用于数据类型转换的关卡是它的Converter属性。

qq_30725967的博客 1630

免杀对抗—WinDbg查看Windows内存

简单记录了一下如何查看进程内容是否写入了shellcode,以及如何判断exe是否伪造了PEB。

2301_76227305的博客 1004

RFC 字符码转换深度解析:Unicode、非 Unicode 与 MDMP 系统的协奏

老版本 MDMP 系统不上传自定义映射时,Unicode 端会落回“预配置列表”。列表里可见西欧 1100、日文 8000、中文 8400 等经典编号。若需强制覆写映射,可在 SM59 ➡Unicode页签启用,或直接勾选作为兜底。字符编码问题常“潜伏”多年,一旦旧系统升级或新增语种便集中爆发。掌握 RFC code page 转换机理、灵活运用 SM59 选项、在早期对 LANG 字段和字段长度进行治理,是根治乱码与 short dump 的关键。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

软件调试实战:windbg 内核调试 (lkd kd )

http://advdbg.org/books/swdbg/samples.aspx 一,本地内核调试( lkd ): 管理员权限启动windbg,ctrl + k --> Local 二,查看进程数据结构 1.启动计算器 2. !process 0 0 列出系统内的所有进程 3. dt _EPROCESS 88270030 ...

huanongying131的博客 5682

华为OD机试真题2026双机位C卷 Python&JS 实现【明日之星选举】

给定一组选票votes。votes[i]代表第 i 张选票的内容,包含一个字符串"zhangsan,hanmei",表示推荐zhangsan为明日之星,反对 hanmei 称为明日之星。赞成或反对使用逗号(,)分割。 给定一个数组n,表示最后将筛选出赞成票最多的n个人,如果赞成票相同,则反对票越少,排序越靠前;如果赞成票和反对票都相同,则按照姓名字典序升序排序。

MISAYAONE的博客 319

从零到精通:BLDC电机驱动电路详解与设计思路

这套电机驱动电路从核心控制器到反馈采集模块,涉及了BLDC电机驱动的方方面面。每一个模块的设计和选择都需要综合考虑系统需求和实际使用环境。在实际应用中,很多细微的设计改进都会显著影响电机的运行性能。

weixin_43199439的博客 3102

使用WinDbg调试内核

知识点 WinDbg是微软提供的一个免费调试器,支持内核调试,也具有监控Windows系统交互的功能。 **驱动与内核代码:**Windows设备驱动简称为驱动,他让第三方开发商在Windows内核模式下运行代码。驱动程序常驻与内存,并且负责响应用户态程序的请求,而且应用程序不直接与驱动程序通信,而是直接访问设备对象,向具体的物理设备发送请求。设备对象由驱动程序创建和销毁,可以被用户态的程序直接访...

Hvnt3r的博客 3547

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Windbg 内核态调试用户态进程

之前写过双机调试环境的搭建,一般用来调试驱动这样内核态的东西,今天遇到一个问题,就是在内核态的情况下怎么给用户态的程序下断点?也就是在内核态怎么调试用户态的程序,比如想要给CreateProcessW这个API下断点怎么整?因为CreateProcessW这个API是位于Kernel32.dll这个模块里边的,但是这个模块是属于用户态的模块,内核会话不会加载这个模块。 使用的示例:自己写的Demo,用OD附加之后,给CreateProcessW下断点(其实没必要使用OD附加) 接下来开始展示: 1、搭建双机

4SecNet团队专栏 2963

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

WinDBG 配置内核双机调试

WinDBG 是在 windows 平台下,强大的用户态和内核态调试工具,相比较于 Visual Studio 它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大,WinDBG由于是微软的产品所以能够调试Windows系统的内核,另外一个用途是可以用来分析dump数据,本笔记用于记录WinDBG内核调试的配置过程,并附有常用命令的使用方法。6.接着回到物理机上面,我们在命令行中切换到WinDBG的根目录下,并执行以下命令,即可连接虚拟机串口进行调试了。

微软技术分享 8994

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

驱动开发:WinDBG 配置内核双机调试

WinDBG 是在 windows 平台下,强大的用户态和内核态调试工具,相比较于 Visual Studio 它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大,WinDBG由于是微软的产品所以能够调试Windows系统的内核,另外一个用途是可以用来分析dump数据,本笔记用于记录WinDBG内核调试的配置过程,并附有常用命令的使用方法。6.接着回到物理机上面,我们在命令行中切换到WinDBG的根目录下,并执行以下命令,即可连接虚拟机串口进行调试了。

微软技术分享 1万+

windbg linux内核调试,使用Windbg调试window内核

也许很多人早就知道了,但是我不知道,以前一直抓住softice大腿不放,但是由于在我的HyberThread处理器上,Softice实在是运行的太不理想了。故而只能利用WinDbg了。不过听牛人说过,WinDbg可以把内核的全部结构都显示出来,要比Softice强。等我以后测试看看。首先,最好先下载符号表,然后安装到真实系统中。再下载WinDbg程序的最新版本,同样也安装到真实系统中。接下来我...

weixin_35414887的博客 416
上一篇: 让RadASM支持中文
下一篇: 学编程1
DarkBasic
博客等级 码龄23年 3粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值