网友 es3n1n 开发了一个叫做 defendnot 的程序。简单来说,这个程序的作用就是禁用 Windows Defender。
仓库地址:https://github.com/es3n1n/defendnot
它是作者大约一年前开发的一个名为 no-defender 的程序的改进版本。之前那个程序 no-defender 是怎么禁用 Defender 的呢?它是利用了 Windows 系统中一个叫做 Windows Security Center (WSC) 的部分。你可以把 WSC 理解成一个负责管理你电脑安全软件(比如杀毒软件)的中心。正规的杀毒软件会通过一套特定的接口(API)向 WSC 注册自己,告诉系统“我在这里,我在工作”。通常,WSC 会让一个杀毒软件工作,如果检测到有其他杀毒软件在运行,就会让 Windows Defender 停止扫描,避免冲突。之前的 no-defender 就是借用了某个现有杀毒软件的一部分代码,欺骗 WSC 让它以为有另一个杀毒软件注册了,从而让 Defender 停下来。
而 defendnot 这个新程序呢,作者的目标是做得更“干净”,不依赖任何现有杀毒软件的代码来实现同样的效果。
那 defendnot 是怎么做到的呢?它同样是与 Windows Security Center (WSC) 进行交互。但是,WSC 并不是随便哪个程序都能注册成杀毒软件的。它会检查调用它的程序是不是“合法”的。
根据作者的研究,WSC 会进行一些验证。它会检查调用程序是否拥有一个非常特殊的“身份标识”(类似 Windows Defender 自己才有的那种身份)。如果这个身份标识检查不通过,WSC 还会检查调用它的程序是否是高权限运行的,并且它的程序文件本身是否有微软的数字签名,以及是否带有一个叫做 ForceIntegrity 的特定内部标记。
作者最初尝试去模拟那个特殊的身份标识,但发现并不能直接起作用。所以他转而研究如何通过第二种验证方式。通过分析 WSC 的验证代码,他发现 Windows 系统中有一些自带的、合法的程序(比如我们平时打开的任务管理器 Taskmgr.exe),这些程序因为是微软自己开发的,天然就符合 WSC 所要求的拥有微软签名和 ForceIntegrity 标记这些条件。
所以 defendnot 的核心思路是:利用这些系统自带的、符合 WSC 验证要求的程序作为“跳板”或者“代理”,让它们去执行与 WSC 交互的代码。这样一来,WSC 就会认为是一个“合法”的系统程序在进行注册等操作,从而允许 defendnot 达到禁用 Windows Defender 的目的。
程序本身分成了两部分:一个启动程序(加载器 defendnot-loader)和一个主要工作的程序库(defendnot.dll),它们之间通过一个文件来传递信息。作者还为这个程序实现了自动运行的功能,这样设置好后,它就可以在电脑启动时自动工作。
总的来说,es3n1n 开发的 defendnot 是一个通过利用 Windows 系统自带的一些合法程序,来与 Windows Security Center 交互,最终达到禁用 Windows Defender 目的的工具。作者在开发过程中也经历了各种环境和调试上的困难。
原文始发于微信公众号(独眼情报):如何优雅关闭 windows 默认杀毒软件?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论