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






2.63/5 (19投票s)
2005 年 1 月 18 日
1分钟阅读

177396

2643
如何以编程方式启用和禁用 Windows XP SP2 防火墙。
引言
自从 Windows XP 发布以来,微软一直对其操作系统感到自豪。XP 确实是一个强大的操作系统。在该产品的服务包 2 中,微软引入了一项名为“安全中心”的优秀功能,以提高用户安全性,提供防火墙、弹出窗口阻止程序等。所有这些对所有用户都非常有用。例如,防火墙可以防止其他应用程序在未经用户许可的情况下访问 FTP 服务等服务。要访问防火墙,可以使用防火墙的 API,但对于只想启用/禁用 XP 防火墙的人来说...
我编写了一个应用程序(只有几行代码)来完成它!!!
让我们看看防火墙在系统中的运作方式:当用户选择“启用”或“禁用”时,它会将信息作为 1 或 0 保存到注册表中,在以下键下
HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\
Parameters\FirewallPolicy\StandardProfile
使用名为 EnableFirewall
的 REG_DWORD
值,0 表示禁用,1 表示启用!但是,此时,如果您在安全中心中选择“禁用”,系统会通过红色通知图标和气泡文本通知您,试图向您传达此消息
这是因为此时,SVCHOST.EXE 会在注册表中的更改后,加载另一个名为“wscntfy.exe”的应用程序,该应用程序属于 XP SP2,位于系统根目录 %system32% 中。而 wscntfy.exe 通过此消息通知用户!!!
如果您运行自己的应用程序来更改注册表中的 EnableFirewall
值,然后将您的应用程序文件重命名为“wscntfy.exe”,那么您就成功地禁用了防火墙,用户将一无所知!!!
我在微软最新的 SP2 更新版本中测试了我的应用程序。我的源代码是 MFC,一个非常小的应用程序。