软件调试实战: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
软件调试实战:windbg 内核调试 (lkd kd )相关推荐
- Windbg内核调试之四: Dump文件分析
Dump 文件分析很大程度上就是分析蓝屏产生的原因.这种系统级的错误算是Windows提示错误中比较严重的一种(更严重的还有启动黑屏等硬件或软件兼容性错误等等).说它是比较严重,是因为毕竟Window ...
- 使用WinDbg内核调试
WINDOWS调试工具很强大,但是学习使用它们并不容易.特别对于驱动开发者使用的WinDbg和KD这两个内核调试器(CDB和NTSD是用户态调试器). 本教程的目标是给予一个已经有其他调试工具使用经验 ...
- Windbg内核调试之一: Vista Boot Config设置
Windbg进行内核调试,需要一些基本的技巧和设置,在这个系列文章中,我将使用Windbg过程中所遇到的一些问题和经验记录下来,算是对Kernel调试的一个总结,同时也是学习Windows系统内核的另 ...
- Windbg 内核调试,寄存器窗口没有数据
之前在使用Windbg进行内核调试的时候,想要查看寄存器的值,结果发现打开寄存器窗口之后,不显示数据,但是执行r命令可以正常查看寄存器的值,网上搜索了一下相关资料,记录一下. 环境:Windbg.ex ...
- 使用Windbg内核调试连接调试用户态程序的方法
1. 中断目标计算机: 2. kd>!process 0 0 3. 找到要调试的程序对应进程: 4. kd>.process /i TARGETPROCESSADDRESS 5. kd&g ...
- linux内核printk调试手段,[Mini2440] 内核调试手段之 printk
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 一. 内核打印函数 printk 介绍 1.1 前言 内核提供了 printk 函数在内核运行时打印信息,类似于 C 语 ...
- 拍案惊奇——软件调试实战训练营
随着软件复杂度的不断增加,软件调试的难度越来越大.以调试器为核心的调试技术是征服软件世界的一把利剑.要想成为软件高手,认真修炼软件调试这门剑法是再多也不为过的.本训练营通过12个精选案例让参与者在实战 ...
- 拍案惊奇——软件调试实战训练营暑期特别班(v2.1)
随着软件复杂度的不断增加,软件调试的难度越来越大.以调试器为核心的调试技术是征服软件世界的一把利剑.要想成为软件高手,认真修炼软件调试这门剑法是再多也不为过的.本训练营通过12个精选案例让参与者在实战 ...
- 用网络进行内核调试 VMware+windbg
准备 下载vmware,安装需要调试的版本的操作系统,虚拟机->设置->网络适配器选择NAT即可,这个时候虽然虚拟机和电脑的IP不一致,但是也是可以ping通的,注意如果ping不通,需要 ...
最新文章
- iptables-save和iptables-restore
- oel6mysql_Linux7(CentOS,RHEL,OEL)和 Oracle RAC环境系列4:target(图形
- mysql在mac下的data目录_Mysql在mac中目录结构用法命令
- java comparable接口作用_Java Comparable 接口
- 最简单的教程:在Ubuntu操作系统里安装Docker
- python2版本异常_Python to.exe引发异常:此项目的版本控制需要sdisttarb
- vnc 树莓派 链接_树莓派 VNC Viewer 远程桌面配置教程
- 服务器如果选用CPU
- 2020年考研准考证打印下载及注意事项
- 各大视频网站下载神器
- c语言小车程序,循迹小车程序C语言
- 计算机硬盘的常用分区工具,常用的几款分区合并工具推荐,合理使用电脑硬盘...
- Linux_安装modelsim10_2
- 服务器运维的日常工作,运维工作人员日常工作重点有哪些?
- Java——io项目(快递分拣系统)
- android vendor下的属性值
- 对接第三方系统实操经验分享
- c语言 dict数据类型,Python开发基础之Python常用的数据类型
- 多核计算机是指有多个cpu,多核和多个CPU有什么区别?
- 智能手机的发展有多猛?