我有一个NDIS过滤器驱动程序(WinPcap的更新)并在Windows1010586x64VM上对其进行了测试。我启用了验证器,它在启动Wireshark时导致IRQL_NOT_LESS_OR_EQUALBSoD(也就是使用我的驱动程序的功能)。这是转储:1:kd>!analyze-v**********************************************************************************BugcheckAnalysis******************************************************
这个难倒我了。我的驱动程序在所有guest虚拟系统(Windowsxp/7x86和x64)以及一些特定主机中工作得非常好。但是,在我的PC上,当我在OSRLoader中启动驱动程序时,我收到了一个0x7E停止代码。是的,测试签名和Debug模式都已启用。这是一些转储信息(警告,巨大):0:kd>!analyze-v**********************************************************************************BugcheckAnalysis****************************************
我目前使用的是64位Windows7,我正在使用Windows7。我正在玩一些PSAPI(ProcessStatusAPI)函数来了解更多关于Windows如何管理内存的信息。但是,我注意到QueryWorkingSet包括我无法阅读的条目(例如第0页,您无法阅读0x00000000)。在64位上尝试时,很明显为什么会出现这种情况:QueryWorkingSet在32位上存在错误,因为地址被截断(因此出现多个第0页条目)。不过,QueryWorkingSet在64位上返回的一些条目也不可访问。为什么这个明显不可访问的内存显示为可访问?这是QueryWorkingSet中的另一个错误吗?
我正在开发一个名为Npcap的Windows数据包捕获软件。并且它需要发送基于Windows内核的环回原始IP套接字。但是WskSocket->Dispatch->WskSendTo总是导致DRIVER_IRQL_NOT_LESS_OR_EQUALWin7SP1上的蓝屏。奇怪的是,我的代码不会在Win8、Win10等其他系统上触发此BSoD。它只发生在Win7。所以我什至怀疑这是Windows本身的错误还是只是我的错误?谢谢!重现步骤为:安装Npcap0.07r17使用默认选项安装Nmap7.20Beta5(不要安装随附的Npcap)在CMD中,运行nmap-v-O-6localhos
一:背景1.讲故事在给各位朋友免费分析.NET程序各种故障的同时,往往也会收到各种其他类型的dump,比如:Windows崩溃,C++崩溃,Mono崩溃,真的是啥都有,由于基础知识的相对缺乏,分析起来并不是那么的顺利,今天就聊一个 Windows 崩溃的内核dump吧,这个dump是前几天有位朋友给到我的,让我帮忙看一下,有了dump之后上windbg分析。二:WinDbg分析1.从哪里入手只要是Windows平台上的崩溃,操作系统都会维护一个 EXCEPTION_POINTERS 结构体,这个结构体的解读对分析问题非常重要,使用 !analyze-v 命令简要输出如下:2:kd>!analy
我目前正在尝试调试系统死锁,但我很难理解这一点。Child-SPRetAddr:ArgstoChild:CallSitefffff880`035cb760fffff800`02ecef72:00000000`00000002fffffa80`066e8b5000000000`00000000fffffa80`066a16e0:nt!KiSwapContext+0x7afffff880`035cb8a0fffff800`02ee039f:fffffa80`0b9256b000000000`000007ff00000000`0000000000000000`00000000:nt!KiCo
在笔者上一篇文章《驱动开发:内核枚举IoTimer定时器》中我们通过IoInitializeTimer这个API函数为跳板,向下扫描特征码获取到了IopTimerQueueHead也就是IO定时器的队列头,本章学习的枚举DPC定时器依然使用特征码扫描,唯一不同的是在新版系统中DPC是被异或加密的,想要找到正确的地址,只是需要在找到DPC表头时进行解密操作即可。DPC定时器的作用是什么?在内核中可以使用DPC定时器设置任意定时任务,当到达某个节点时自动触发定时回调,定时器的内部使用KTIMER对象,当设置任务时会自动插入到DPC队列,由操作系统循环读取DPC队列并执行任务,枚举DPC定时器可得知
在笔者上一篇文章《驱动开发:内核枚举IoTimer定时器》中我们通过IoInitializeTimer这个API函数为跳板,向下扫描特征码获取到了IopTimerQueueHead也就是IO定时器的队列头,本章学习的枚举DPC定时器依然使用特征码扫描,唯一不同的是在新版系统中DPC是被异或加密的,想要找到正确的地址,只是需要在找到DPC表头时进行解密操作即可。DPC定时器的作用是什么?在内核中可以使用DPC定时器设置任意定时任务,当到达某个节点时自动触发定时回调,定时器的内部使用KTIMER对象,当设置任务时会自动插入到DPC队列,由操作系统循环读取DPC队列并执行任务,枚举DPC定时器可得知
在上一篇文章《驱动开发:内核枚举DpcTimer定时器》中我们通过枚举特征码的方式找到了DPC定时器基址并输出了内核中存在的定时器列表,本章将学习如何通过特征码定位的方式寻找Windows10系统下面的PspCidTable内核句柄表地址。首先引入一段基础概念;1.在windows下所有的资源都是用对象的方式进行管理的(文件、进程、设备等都是对象),当要访问一个对象时,如打开一个文件,系统就会创建一个对象句柄,通过这个句柄可以对这个文件进行各种操作。2.句柄和对象的联系是通过句柄表来进行的,准确来说一个句柄就是它所对应的对象在句柄表中的索引。3.通过句柄可以在句柄表中找到对象的指针,通过指针就
在上一篇文章《驱动开发:内核枚举DpcTimer定时器》中我们通过枚举特征码的方式找到了DPC定时器基址并输出了内核中存在的定时器列表,本章将学习如何通过特征码定位的方式寻找Windows10系统下面的PspCidTable内核句柄表地址。首先引入一段基础概念;1.在windows下所有的资源都是用对象的方式进行管理的(文件、进程、设备等都是对象),当要访问一个对象时,如打开一个文件,系统就会创建一个对象句柄,通过这个句柄可以对这个文件进行各种操作。2.句柄和对象的联系是通过句柄表来进行的,准确来说一个句柄就是它所对应的对象在句柄表中的索引。3.通过句柄可以在句柄表中找到对象的指针,通过指针就