VC6编程 如何让windows防火墙默认允许写的程序?

时间:2023-01-26 13:56:15
http://topic.csdn.net/u/20100907/00/945cf24d-1a92-4b9a-8b6e-11ce2df29d78.html?seed=1017103166&r=74679949#r_74679949
问题一:
http://topic.csdn.net/u/20100907/00/945cf24d-1a92-4b9a-8b6e-11ce2df29d78.html?seed=1017103166&r=74679949#r_74679949
看了这个贴,做了一个XP下自动写注册表值的函数,程序运行的时候就自动添加防火墙注册表项,在XP下,也是有些电脑有效,有些电脑无效,看了下注册表,对XP系统确实写进了注册表,而为啥有些电脑写进了注册表还是弹出windows防火墙阻止程序的提示呢?
问题二:
在Win7下,注册表位置貌似不一样?位置为
SYSTEM\\ControlSet001\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile\\logging,看不到列表,也不知道怎么写?有高手知道么?

14 个解决方案

#1


别直接修改注册表吧

1. 用HNetCfg.FwMgr这个COM试试

2. 试试命令 
%WINDIR%\system32\netsh.exe advfirewall firewall add rule name="[rule-name]" dir=[rule-direction] action=[rule-action] protocol=[rule-protocol] localport=[rule-port]

3. WMI里面不知道有没有FW的管理接口, 你可以找找

#2


直接把防火墙的服务给停止了。

#3


要直接把防火墙停止就没问么多问题了,设计目的是让防火墙识别为健康程序,不提示

#4


引用 1 楼 wangjia184 的回复:
别直接修改注册表吧

1. 用HNetCfg.FwMgr这个COM试试

2. 试试命令 
%WINDIR%\system32\netsh.exe advfirewall firewall add rule name="[rule-name]" dir=[rule-direction] action=[rule-action] protocol=[rule-protocol] loca……

那个COM口不知道怎么操作,第二种方法是netsh脚本操作吧,有具体的资料没?

#5


引用 4 楼 georgeshaw1 的回复:
引用 1 楼 wangjia184 的回复:

别直接修改注册表吧

1. 用HNetCfg.FwMgr这个COM试试

2. 试试命令
%WINDIR%\system32\netsh.exe advfirewall firewall add rule name="[rule-name]" dir=[rule-direction] action=[rule-action] prot……


google啊。。。  大热天的, 你还要人家手把手地教啊

#6


发个基础教程吧,呵呵,谢了,搜了半天也没弄明白咋用

#7


wangjia184
求怎么在VC程序中使用?
给个代码示例吧,谢谢了

#8


我以前做过 要开端口监听 直接写的注册表

#9


在XP中可以手动使用cmd命令《netsh firewall add allowedprogram E:\程序.exe 程序 ENABLE》配置防火墙例外列表,但是我在VC++程序中用system("netsh firewall add allowedprogram E:\程序.exe 程序 ENABLE"),
WinExec("netsh firewall add allowedprogram E:\程序.exe 程序 ENABLE",SW_HIDE),
都无法实现添加防火墙例外列表?这是为什么呢?

#10


该回复于2012-04-11 17:27:23被版主删除

#11


mark

#12


该回复于2012-04-11 17:27:38被版主删除

#13


这个问题最后也没有很好的解决,在有些安全性不是很高的XP下可以实现,但是在win7下就不能实现,应该是处于对系统安全性的考虑,无法通过程序自动添加防火墙例外,要添加只能手动的

#14


VC6编程 如何让windows防火墙默认允许写的程序?

#1


别直接修改注册表吧

1. 用HNetCfg.FwMgr这个COM试试

2. 试试命令 
%WINDIR%\system32\netsh.exe advfirewall firewall add rule name="[rule-name]" dir=[rule-direction] action=[rule-action] protocol=[rule-protocol] localport=[rule-port]

3. WMI里面不知道有没有FW的管理接口, 你可以找找

#2


直接把防火墙的服务给停止了。

#3


要直接把防火墙停止就没问么多问题了,设计目的是让防火墙识别为健康程序,不提示

#4


引用 1 楼 wangjia184 的回复:
别直接修改注册表吧

1. 用HNetCfg.FwMgr这个COM试试

2. 试试命令 
%WINDIR%\system32\netsh.exe advfirewall firewall add rule name="[rule-name]" dir=[rule-direction] action=[rule-action] protocol=[rule-protocol] loca……

那个COM口不知道怎么操作,第二种方法是netsh脚本操作吧,有具体的资料没?

#5


引用 4 楼 georgeshaw1 的回复:
引用 1 楼 wangjia184 的回复:

别直接修改注册表吧

1. 用HNetCfg.FwMgr这个COM试试

2. 试试命令
%WINDIR%\system32\netsh.exe advfirewall firewall add rule name="[rule-name]" dir=[rule-direction] action=[rule-action] prot……


google啊。。。  大热天的, 你还要人家手把手地教啊

#6


发个基础教程吧,呵呵,谢了,搜了半天也没弄明白咋用

#7


wangjia184
求怎么在VC程序中使用?
给个代码示例吧,谢谢了

#8


我以前做过 要开端口监听 直接写的注册表

#9


在XP中可以手动使用cmd命令《netsh firewall add allowedprogram E:\程序.exe 程序 ENABLE》配置防火墙例外列表,但是我在VC++程序中用system("netsh firewall add allowedprogram E:\程序.exe 程序 ENABLE"),
WinExec("netsh firewall add allowedprogram E:\程序.exe 程序 ENABLE",SW_HIDE),
都无法实现添加防火墙例外列表?这是为什么呢?

#10


该回复于2012-04-11 17:27:23被版主删除

#11


mark

#12


该回复于2012-04-11 17:27:38被版主删除

#13


这个问题最后也没有很好的解决,在有些安全性不是很高的XP下可以实现,但是在win7下就不能实现,应该是处于对系统安全性的考虑,无法通过程序自动添加防火墙例外,要添加只能手动的

#14


VC6编程 如何让windows防火墙默认允许写的程序?