我正在寻找一种在C#中启用(不禁用)Windows Defender的方法。
我在msdn上找到了这个功能
HRESULT WDEnable(
_In_ BOOL fEnable
);
我可以使用它但它的部分MpClient.dll,我在我的系统上找不到,所以我不能使用LoadLibrary / GetProcAddress / GetDelegateForFunctionPointer
有谁知道另一种方法吗?
我应该指出,对于需要检查Windows Defender是否已启用(已经编码并正常工作)以及是否启用它的合法软件。
由于
答案 0 :(得分:0)
注册表项具有一些访问限制,可防止在用户上下文中运行的任何进程将其关闭。对于病毒来说,很容易阻止它被检测到。要启用它,您必须在管理员上下文中运行。尝试以管理员身份运行您的流程,看看您是否可以通过这种方式更改注册表项。
来自msdn文档: 备注
调用此函数的应用程序必须与管理员一起运行 本地计算机上的权限。 Windows Defender也验证(1) 正确签署调用进程和所有已加载的模块和 (2)IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY标志设置为on 允许调用之前调用进程和所有已加载的模块 申请改变状态。如果调用过程图像(或任何 已加载的模块)未被Windows签名或被标记为威胁 后卫签名,然后调用失败并带有相应的错误 代码。
答案 1 :(得分:0)
没有简单的方法可以通过您的程序打开或关闭Windows Defender。如果它如此简单,Windows Defender将无法保护您的计算机,因为任何恶意软件都会将其关闭。
有一些注册表项可以定义是否启用了Windows Defender的实时保护。您可以读取这些值以了解它是否处于活动状态。但是你不能修改这些密钥,甚至不能在SYSTEM用户的服务中运行。这些注册表项受Windows保护,禁止篡改。
打开或关闭Windows Defender的唯一方法:
如果您对注册表项感兴趣,请在另一个主题中阅读我的答案: Find out if Windows Defender disc scan is running?
答案 2 :(得分:0)
第一步是通过按“ Windows”键和“ R”键打开“运行”对话框 然后在“打开”对话框中键入“ services.msc” 按Enter键或单击“确定”按钮 在服务列表中检查“安全中心” 右键单击“安全中心” 点击重启