.net中的简单防火墙

时间:2009-10-26 10:49:59

标签: .net firewall

我想尝试创建一个简单的防火墙,限制应用程序访问互联网,除了我允许的应用程序。像netlimiter一样。 因此,它必须允许列入白名单的应用程序的Internet访问,并删除其余的连接。 这可能用c#或vb.net吗? 如果有可能,请指出我正确的方向。

由于

3 个答案:

答案 0 :(得分:1)

好吧,正如terR0Q所说,你需要使用C ++或其他低级编程语言(低级别我的意思是它接近机器代码)。

如果您想坚持使用.NET,那么您的选择非常有限。首先,你需要大量使用WinApi,这在.NET中不是很方便(虽然当然不是不可能) - 你可能想考虑使用VC ++ .NET - 你可以尝试使用EasyHook管理挂钩。 请注意,它肯定不是一个好的解决方案tutorial实际上警告您在安全软件中使用它:

  

与某些(商业)挂钩不同   图书馆里面有广告   提升销量,用户模式挂钩即可   永远不应该申请额外的   安全检查以任何安全的方式。如果   你只想要“沙盒”专用   过程,你知道的,以及   过程实际上并不了解   EasyHook,这可能会成功!但   不要试图写任何   基于用户模式的安全软件   挂钩。这不行,我向你保证......   这也是EasyHook没有的原因   支持所谓的“系统范围”   注射,实际上只是一个   幻觉,因为正如我所说的那样   用户模式挂钩这将永远是   不可能。但如果你想保留   这种错觉你可能会坚持其他   (商业)图书馆试图   这样做......

教程中的其他一些提示:

  

你应该考虑购买   PatchGuard API将允许您   编写基于内核的安全应用程序   模式拦截。内核模式   挂钩(或PatchGuard API)是   只有选择申请额外的   安全检查。自Windows Vista以来,   也是Windows过滤平台   和其他Vista特定的API将是   有助于编写安全软件!

正如您所看到的,使用.NET在这里不会真正起作用。如果您仍想尝试EasyHook,请继续,但要记住危险。我建议你去学习C ++,并在尝试防火墙之前深入了解WinApi。

答案 1 :(得分:0)

PacketX是一个简单的小库来嗅探数据包。不确定你是否可以完全阻止网络。你必须找到一种方法来禁用网络适配器&然后使您的程序显示为网络适配器,以便在适当的时候转发数据包。

编辑:我的不好。 “PacketX不能用于阻止网络流量来构建防火墙。”

答案 2 :(得分:0)

AFAIK你需要像C ++和WIN API这样的低级工具来实现这个防火墙的系统级层。