我想尝试创建一个简单的防火墙,限制应用程序访问互联网,除了我允许的应用程序。像netlimiter一样。 因此,它必须允许列入白名单的应用程序的Internet访问,并删除其余的连接。 这可能用c#或vb.net吗? 如果有可能,请指出我正确的方向。
由于
答案 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这样的低级工具来实现这个防火墙的系统级层。