65.9K
CodeProject 正在变化。 阅读更多。
Home

如何以编程方式启用和禁用 Windows XP SP2 防火墙

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.63/5 (19投票s)

2005 年 1 月 18 日

1分钟阅读

viewsIcon

177396

downloadIcon

2643

如何以编程方式启用和禁用 Windows XP SP2 防火墙。

引言

自从 Windows XP 发布以来,微软一直对其操作系统感到自豪。XP 确实是一个强大的操作系统。在该产品的服务包 2 中,微软引入了一项名为“安全中心”的优秀功能,以提高用户安全性,提供防火墙、弹出窗口阻止程序等。所有这些对所有用户都非常有用。例如,防火墙可以防止其他应用程序在未经用户许可的情况下访问 FTP 服务等服务。要访问防火墙,可以使用防火墙的 API,但对于只想启用/禁用 XP 防火墙的人来说...

我编写了一个应用程序(只有几行代码)来完成它!!!

让我们看看防火墙在系统中的运作方式:当用户选择“启用”或“禁用”时,它会将信息作为 1 或 0 保存到注册表中,在以下键下

HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\ 
                            Parameters\FirewallPolicy\StandardProfile

使用名为 EnableFirewallREG_DWORD 值,0 表示禁用,1 表示启用!但是,此时,如果您在安全中心中选择“禁用”,系统会通过红色通知图标和气泡文本通知您,试图向您传达此消息

这是因为此时,SVCHOST.EXE 会在注册表中的更改后,加载另一个名为“wscntfy.exe”的应用程序,该应用程序属于 XP SP2,位于系统根目录 %system32% 中。而 wscntfy.exe 通过此消息通知用户!!!

如果您运行自己的应用程序来更改注册表中的 EnableFirewall 值,然后将您的应用程序文件重命名为“wscntfy.exe”,那么您就成功地禁用了防火墙,用户将一无所知!!!

我在微软最新的 SP2 更新版本中测试了我的应用程序。我的源代码是 MFC,一个非常小的应用程序。

© . All rights reserved.