<2018年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

文章分类

导航

订阅

Windows Kernel Debug

Windows Kernel Mode Debugging
调试笔记:系统挂在DPC(上)
这是发生在我的笔记本电脑上的一次系统挂死,发生在唤醒过程中,屏幕没有任何显示,因为我的电脑始终是启用通过热键(Ctrl+ScrollLock)来触发蓝屏的,所以可以通过热键触发蓝屏和产生转储。 以下是分析转储文件的简要过程,转储的类型是内核转储。系统中只有一个CPU。 kd> !cpuinfoCP  F/M/S Manufacturer  MHz PRCB Signature    MSR 8B Signature Features 0  更多...

发布于 2009年8月10日 22:47Raymond4 篇评论

润物细无声——Windows Intermals第5版印象
前两天拿到了Windows Internals的第5版,把玩了一番后,这两天仔细读了部分章节,与大家分享如下。 以作者在鸣谢一节的落款中的时间来看,上一节的时间是2004年9月,这一版的时间是2009年5月。二者相差不四年半有余。与很多写书计划和软件项目类似,这一版也是延迟了多次。但是好饭不怕晚,看了书之后,的确觉得改动和新增的内容不少。 单单从页数来看,第4版是935页,包括书后的索引,而第5版是1232页,多了297,差不多是一本普通技术书的长度。 从副标题来看,上一版的副标题叫Micorosoft 更多...

发布于 2009年7月19日 15:29Raymond10 篇评论

调试笔记:LPC循环等待挂死
在XP SP2系统中,打开一个WORD文件时,WORD启动后便失去响应,而且无法杀掉这个进程。这种情况通常是挂在内核态了。 以下是使用Ctrl+ScrollLock触发蓝屏后,分析转储文件的概要信息。 观察WinWord进程的唯一线程,其情况如下: kd> !THREAD 885eb468THREAD 885eb468  Cid 11ac.106c  Teb: 7ffde000 Win32Thread: e248a770 WAIT: (Executive) KernelMode 更多...

发布于 2009年2月8日 18:08Raymond1 篇评论

《软件调试》导读之操作系统篇
在今天的计算机架构中,操作系统是整个系统的统治者,它指挥着系统中的软硬件。如果拿人类社会来类比,那么操作系统好比是国家机器,应用软件是公民,操作系统的各个执行体是国家机构。从这个角度来看,操作系统与应用软件之间是统治与被统治的关系。 对于最终用户来说,他们需要的是应用软件,大多用户说不清什么是操作系统,只知道没有它不行。用户之所以肯掏出钱买操作系统是因为有了它才能跑自己需要的应用软件。从这个角度来说,应用软件是操作系统从用户那里拿到钱的资本,应用软件是前台唱戏的主角,操作系统是藏在后面的支持者。 更多...

发布于 2008年12月30日 14:05Raymond3 篇评论

老雷看Win7(1)——序
Windows 7(Win7)是Windows操作系统的下一个客户端版本,计划在明年中正式发布。在前不久的WinHec上,每个参会者都得到了一份Win7的预览版本,是比Beta版本还早的所谓Milestone 3(M3)版本。 老雷曾经说过他是使用调试器来了解和学习操作系统的。但到底可以怎么用调试器来帮我们了解新的操作系统或者它的新版本呢?这个系列文章就想以这种方法来学习一下Win7。今天是第一个部分,到底写多少次还没有计划,如果大家喜欢,老雷写的高兴,那么就一直写下去,不然可能就这一篇。 首先该介绍一下道具(工具),第一,当然少不了WinDBG,老雷机器上有从WinDBG2.x开始的n个版本,但大多数时候用的还是6.X。第二,要有目标机来运行Win7,为了可以随时唤出来把玩,我还是把它运行在虚拟机里,用的是VPC2007。第三,要有一些附属的小工具,比如观察符号的SymView小工具,触发异常的I'm 更多...

发布于 2008年12月22日 21:48Raymond9 篇评论

正心诚意,格物致知
今天想和高端调试的朋友们做一个深层次的分享。如何在坚持技术方向的前提下做的很成功。 第一、要倡导技术氛围。这个道理很简单,因为你是做技术的,只有提高技术方面的话语权和影响力,你才有话语权。这个社会中,有些人贡献了80%,但只得到了20%,有些人贡献了20%,但是得到了80%。大多数做技术的,都是属于贡献80%的这一类。如何让做技术的得到的更多,需要所有做技术的人来努力,为自己,为同行争取更多的权利。 第二、不要做印度青蛙,要推动你的朋友,而不是看到他即将成功的时候把他拉下来。现实生活中,真的看到很多印度青蛙。他们自我膨胀,容不得身边的人比自己强,想方设法打击自己的战友。 更多...

发布于 2008年11月20日 22:44Raymond7 篇评论

在内核调试会话中设置用户态断点
使用内核调试会话也可以执行一些用户态调试任务,比如向位于用户态的模块设置断点。但这样做与使用用户态调试器有什么不同呢?我们就以向NTDLL.dll模块的ZwTerminateProcess函数(Stub)为例谈谈二者的区别。 区别一、在内核调试会话中设置这个断点的“难度”略大些。这是因为NTDLL不属于内核态的模块,所以内核会话通常不会加载这个模块(的符号),因此当执行bp命令时很可能被自动蜕化为bu命令。 0: kd> bp ntdll!ZwTerminateProcessBp expression 更多...

发布于 2008年11月18日 22:19Raymond7 篇评论

感受伟大
他1979年加入英特尔,是286和386设计团队的关键成员,80486的最初架构师。 1986-1989年他担任80486团队的设计经理。1989-1992年,担任负责设计Pentium Pro的部门(division)的总经理。 目前他是英特尔公司的高级副总裁(VP),DEG(Digital Enterprise Group)Group的总经理。 他便是帕特·基辛格(Pat Gelsinger)。很多人可能听说过Programming the 80386这本书。他的两位作者之一便是帕特。 更多...

发布于 2008年11月14日 21:37Raymond4 篇评论

海森伯效应一例
我们把调试过程对被调试程序所产生的影响称为海森伯效应(详见《软件调试》28.6.1)。设计调试工具时,当然应该努力降低可能的海森伯效应,以便可以在调试器中调试时看到的症状与没有被调试时是一样的。 但正像这个名字的由来(海森伯的测不准原理)那样,海森伯效应一定是存在的。只不过是很小,大多数时候都不会对我们的调试造成明显的影响。 前两天,jlflyfox提出了一个问题,这个问题其实是一种非常典型的海森伯效应。 为了讨论简单,可以使用下面的代码来重现jlflyfox所提出的问题。 /*-------------------------------------------------------------- 更多...

发布于 2008年10月31日 22:13Raymond5 篇评论

调试笔记之GMail挂死
在GMail进入Inbox前,挂死在Loading页面,数分钟后仍纹丝不动。唤WinDBG附身,远程中断方法不能工作: Break-in sent, waiting 30 seconds...WARNING: Break-in timed out, suspending. 挂起方法可以开始非入侵式调试会话:(1374.1134): Wake debugger - code 80000007 (first chance)eax=00a22d68 ebx=00000000 ecx=0000002a 更多...

发布于 2008年10月19日 9:57Raymond1 篇评论

WinDBG扩展命令的工作原理
要理解WinDBG扩展命令的原理应该先理解WinDBG软件的架构,下图是以模块为单位所画出的架构示意图。最上层是四个EXE模块,它们提供了不同形式的用户接口,简称UI层。中间是调试引擎模块,它是WinDBG调试器的核心模块,大多数调试器的工作逻辑都包含在这个模块中。调试引擎下面是几个支撑模块。内核态的部分是操作系统提供的调试支持。 因此以调试引擎为中心,向上看是调试器与用户的接口,向下看便是与系统的接口。调试器作为一种相对独立的软件产品,保持其核心代码的稳定性和广泛的适用性是很重要的。像WinDBG这样的调试器,它要支持很多种版本的内核和应用程序,因此,保持这两个接口的稳定性是很重要的。向下的接口基本上是靠API的稳定性来保证的。 更多...

发布于 2008年10月13日 20:41Raymond7 篇评论

亲历误删......
昨天中午,一个朋友打电话给我说他的XP系统“开始”菜单不见了。询问了他一番后,感觉确实出了什么问题,可能是explorer程序(explorer.exe)被插件搞乱了,或者中其它招了。 晚上又收到他的电话,显然比中午更加焦急,说系统进不去了。完整的故事是,他使用了某种【隐去真名,不想引来不必要的争议】杀毒软件,杀毒软件“确实”发现了问题,并提示要执行删除动作,他发出确认命令同意这么做了,而后重启,但是再也起不来了,XP的启动进度条滚了一阵后,是杀毒软件的Splash,而后便是黑屏,黑屏持续几秒后,自动重新启动,如此往复不已。 更多...

发布于 2008年9月25日 22:22tudouni3 篇评论