- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
当Windows操作系统遇到严重错误导致系统崩溃时,屏幕显示为蓝色,通常伴有错误代码和信息,这被称为“蓝屏死机”(Blue Screen of Death,简称BSOD) 。
https://www.thepaper.cn/newsDetail_forward_28126297 这次蓝屏事件影响非常广泛,主要原因是CrowdStrike 的内核驱动升级导致的,CrowdStrike是国外广泛使用的一个安全防护软件厂商,类似于国内的毒霸 360之类.
Microsoft says 8.5M systems hit by CrowdStrike BSOD, releases USB recovery tool When reboots don't work, bootable USB sticks may help ease fixes for some PCs.
微软为此发布了一个修复说明,核心意思是说,你用一个PE工具进入系统,然后把CrowdStrike 的内核驱动 C-00000291*.sys删掉,然后就可以了.
https://support.microsoft.com/en-us/topic/kb5042421-crowdstrike-issue-impacting-windows-endpoints-causing-an-0x50-or-0x7e-error-message-on-a-blue-screen-b1c700e0-7317-4e95-aeee-5d67dd35b92f 。
.sys格式的文件实际上是window 的内核驱动文件,做软件开发的工程师多少都会有些了解。内核驱动直接访问了操作系统的底层资源,如果这个文件有bug,系统很容易蓝屏,且无法恢复,因为重启的时候它又会自动加载.
先来看看.sys在widnows操作系统所处的层级,非常的low level 。
需要操作系统内核资源的任务或者设备,本质上都可以写一个内核驱动来调用内核资源。通常windows的外设,比如显卡、USB设备、自研PCIe设备、串口设备 都需要对应的内核驱动去实现与硬件的交互,尤其是pcie 设备,只有用内核驱动代码才能访问对应资源,从而驱动外设.
强制数字签名.
数字签名在Windows操作系统中扮演着重要角色,尤其是为了增强系统稳定性和安全性。数字签名是一种加密技术,用于验证软件的来源和完整性。在Windows环境下,数字签名用于确保驱动程序和其他软件来自可信赖的发布者,并且自发布以来未被篡改.
以下是数字签名在Windows系统中的几个关键作用:
Windows设备安装利用数字签名来验证驱动程序包的完整性和确认提供驱动程序包的供应商(软件发布者)的身份。此外,64位版本的Windows Vista及其后续Windows版本的内核模式代码签名策略规定,内核模式驱动程序必须经过签名才能加载.
Windows 10桌面版(家庭版、专业版、企业版和教育版)以及Windows Server 2016的内核模式驱动程序必须由Windows硬件开发者中心Windows Hardware Quality Labs (WHQL)进行签名,这要求具备扩展验证(EV)证书。详情请参阅驱动程序签名策略.
所有为Windows 10(从版本1507,Threshold 1开始)由硬件开发者中心签名的驱动程序都是使用SHA2算法签名的。有关特定操作系统版本的详细签名要求,请参阅按版本划分的签名要求.
在WIN10之前,用户的内核驱动只要有EV证书签名就可以被操作系统认可,但是实际上这个策略非常不安全,因为EV证书签名很容易获取,即使不是出于非法目的,随意的内核驱动EV签名也可能频繁导致系统BSOD故障或者卡死,因为驱动开发人员不能保证它的测试项覆盖了所有必要的情况.
https://learn.microsoft.com/en-us/windows-hardware/drivers/dashboard/get-started-dashboard-submissions 。
我们看一下经过认证的驱动签名是什么样子的.
后续会记录如何为驱动进行测试和签名.
这大概率是CrowdStrike 钻了微软的空子,因为数字签名的测试步骤非常繁琐,做1个测试至少要1天的时间,并且微软签名并不检查当前驱动打包文件的日期,只要你曾经做过一次成功的测试,保留了日志文件,那么理论上你可以跳过测试让微软签名.
这大概率会导致出现问题。当前市面上有些中介机构,号称可以做WHQL认证,实际上也是这个策略,它根本不会给你做测试,只是偷偷把你的驱动打包到已经做了测试的文件中,然后签名,没有任何成本.
最后此篇关于微软CrowdStrike驱动蓝屏以及内核签名的文章就讲到这里了,如果你想了解更多关于微软CrowdStrike驱动蓝屏以及内核签名的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我得到了这个printHashKey函数,它运行良好。 fun printHashKey() { try { val info : PackageInfo = packageM
如何使用正确的签名 key 为我的 Android 应用包签名? 最佳答案 我尝试在此处和 this question 中使用多个答案, 但不知何故我收到了这个错误,因为我的 android/app/
我的 gradle 文件中有这个: android { signingConfigs { mySigningConfig { keyAlias 'the
请至少选择一个签名版本以在 Android Studio 2.3 中使用 现在在 Android Studio 中生成一个签名的 APK 时,它显示了两个选项(复选框),即 1. V1(Jar 签名)
我想表示一些标量值(例如整数或字符串)通过它的实际值或一些 NA 值,然后存储它们在集合中(例如列表)。目的是处理缺失值。 为此,我实现了一个签名 module type Scalar = sig
为什么这不完全有效? sum :: (Num a, Num b) => a -> b -> c sum a b = a + b 当然,错误消息与签名有关,但我仍然不明白原因。 Couldn't mat
谢谢帮助,我的问题是关于从下面的代码中收到的 ax 值? mov al,22h mov cl,0fdh imul cl 真机结果:ff9a 我的预期:00:9a(通过二进制相乘) 第一个数字是 22h
我有一个注释: import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.
我从对物体的思考中得出了一个术语。当我们扩展一个类时,扩展类将具有与父类相同的签名,因此术语 IS-A 来自...示例 class Foo{ } class Foo2 extends Foo{ } c
我需要在有符号整数和它们作为字节序列的内部表示之间进行转换。在 C 中,我使用的函数如下: unsigned char hibyte(unsigned short i) {return i>>8;}
我正在尝试使用给定的 RSA 参数对一些数据进行签名。 我给出了模数、指数、D、DP、DQ、P、Q 和 InverseQ。什么库或方法最容易使用来计算此签名。在 C# 中,一旦您提供参数,它们就会有一
这些签名之间有什么区别? T * f(T & identifier); T & f(T & identifier); T f(T & identifier); void f(T * identifie
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Where and why do I have to put the “template” and “typ
我有一个签名,我需要在签名旁边添加图片。但我不确定 css 的确切程度和内容。目前它显示在文字下方,我应该把图片放在哪里?在相同的 tr 或 td 中?
查看 LinkedHashMap 的 JDK 源代码,我注意到这个类被声明为: public class LinkedHashMap extends HashMap im
背景:我继承了一个基于 linux 的嵌入式系统,其中包含一个 SMTP 代理和一些我不得不忍受的古怪限制。它位于 SMTP 客户端和服务器之间。当 SMTP 客户端连接时,代理会打开与服务器的连接,
这是 C++17 形式的规则 ([basic.lval]/8),但它在其他标准中看起来很相似(在 C++98 中是“lvalue”而不是“glvalue”): 8 If a program attem
我有一个注释: import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.
我即将开展一个项目,希望使用电子签名板使用 C# 捕获客户的签名、在设备上显示文本等。 现在,在我开始做进一步的研究之前,我想向你们征求一些意见/建议,我应该使用哪些设备.. 我现在的要求非常笼统:我
呢喃自己在心中开始扩张地盘,仿佛制式地广播了三次。 漾起的涟绮,用谈不上精腻的手段。 拒绝天亮,却又贪恋着贪恋多情的日光。 川流不息的画面是他们,而我的落幕停在右脚,它渴望着下台,而我只剩自言
我是一名优秀的程序员,十分优秀!