如何阻止选定的应用程序访问Internet(C++,Win32)

Mar*_*rkS 5 c++ winapi windows-xp tcp windows-vista

我希望有一个正在运行的应用程序或服务,根据某些计划,可以禁用除特定应用程序之外的所有应用程序的Internet访问.

我正在尝试创建一个可以在程序控制下打开或关闭的过滤器.不仅仅是IP地址和端口,而且我希望能够阻止特定的应用程序,就像Zone Alarm和其他软件防火墙让你阻止一样.

例如,iexplore.exe,skype.exe,firefox.exe,aim.exe.但仍需要允许其他应用程序根据需要进行连接.

它必须适用于Vista和XP,但我希望这些方法在每个平台上都有所不同.

基本上,过滤器必须将网络通信绑定回发出请求的可执行文件,然后允许或拒绝它.

更新:

至少在Vista上,看起来我想在WFPALE层使用过滤器.

XP上,我仍然在寻找最好的方法.我真的需要编写设备驱动程序和处理内核的东西吗?我只是一个卑微的应用程序开发人员.现在杀了我.

更新2:

目前正在寻找用于Vista之前系统的PfCreateInterface和相关的Pf*API.

Jes*_*per 0

我不确定,但我认为您需要通过让程序以具有有限权限的用户身份运行来实现这一点,问题是,您可以创建一个用户帐户来阻止此类事情吗?