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

http://advdbg.org/books/swdbg/samples.aspx

一,本地内核调试( lkd ):

管理员权限启动windbg,ctrl + k --> Local

二,查看进程数据结构

1. 启动计算器

2. !process 0 0                    列出系统内的所有进程

3. dt _EPROCESS 88270030            (查看calc.exe 的EPROCESS结构)

4.!process 88270030          (查看calc.exe 的关键信息)

5. !token b1430a38         (查看calc.exe 的token信息)

6.查看peb (内核模式下,先设置隐式进程)

    .process 88270030                   (设置calc.exe 为隐式进程)

   

   dt _PEB 7ffde000                      (查看calc.exe peb)

   

7.!handle                       (查看calce.exe 句柄表 在calce.exe 进程环境)

.

8. !process 4 0            (查看system进程)

9. 查看 idle 进程

二 ,双机调试(kd) 环境配置:https://blog.csdn.net/huanongying131/article/details/90740286

1.查看双重错误 任务门(软件调试 p301)

2.查看当前任务门(tr)

3.产看中断描述表(idt)

三、UefSndThrd.exe练习(12章)

1.ctrl+e  打开执行文件

2.设置符号路径,源文件路径:

3.下bp断点

4.g 执行

5.继续:

6.从中可以看出:

 主函数插入了一层异常(_XcptFilter) 

四、dump练习

1.用everyting 搜.dmp 发现一堆 tim的dump OK 选一个来练习一下

2.ctrl+d 

3.随便选一个

4. .ecrx (显示异常环境记录,重要的是 该指令还会却换到发生异常的线程环境 

                比如(~ (线程号)s    .process EPROCESS地址) 都是确换环境,有了环境 kn 这些指令才能根据环境获取信息)

5. kv 查看栈回溯

五、蓝屏dump练习

1.本系统C:\Windows 目录下刚好有个MEMORY.dmp文件 直接用它

2.ctrl + d 打开dmp文件

2. BugCheck 7F     (从 debugger.chm(windbg帮助文档)搜索 Bug Check 0x7F)

3. {8, 807ca750, 0, 0}

第一个参数 8

4. 照着文档的流程 练习一下

5. !analyze

6. kv  (上面 可以知道 是哪个驱动导致的(Hooksys.sys)  看一下栈回溯 (分析一下驱动的哪一部分导致的))

7. .tss  0x28   查看任务状态段 (由上图可知是一个 tass gate 中断)

8. kv (上图  可以看出蓝屏是 nt!MiAllocatePoolPages+0x12  看一下哪一部分调到这里的)

 

9. .thread    !thread   (查看线程信息, 蓝屏环境是 当前线程  当前进程)

10. .process  !process (查看当前进程)

11. !analyze -v(一步到位)(1--8 很繁琐  但刚开始分析 需要 理解原理  分析过程)

FAILURE_BUCKET_ID:  0x7f_8_Hooksys+1b2f6     BUGCHECK_STR:  0x7f_8 

      UNEXPECTED_KERNEL_MODE_TRAP (7f)   Arg1: 00000008, EXCEPTION_DOUBLE_FAULT

12. ln   ( 查看最后跳转  LAST_CONTROL_TRANSFER:  from 83cabafe to 83d3247a)

ExpAllocateBigPool ---> MiAllocatePoolPages

六. TEB (24章)

打开计算器calc.exe,windbg F6 -->附加到calc.exe

1.dt ntdll!_NT_TIB

2. u ntdll!NtCurrentTeb

3.dd fs:[18] l1

4. dt ntdll!_NT_TIB 7ffd9000

5. dt _EXCEPTION_REGISTRATION_RECORD 0x0348f8c4

6. !exchain

7. u ntdll!RtlpGetRegistrationHead

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值