0

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

谢谢

4

3 回答 3

1

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

如果您想坚持使用 .NET,您的选择非常有限。一方面,您需要大量使用 WinApi,这在 .NET 中不是很方便(尽管肯定不是不可能)——您可能需要考虑使用 VC++ .NET——并且您可以尝试使用EasyHook进行托管挂钩。请注意,这肯定不是一个好的解决方案教程实际上警告您不要在安全软件中使用它:

与某些(商业)挂钩库为促进销售而做的广告不同,用户模式挂钩永远不能以任何安全的方式应用额外的安全检查。如果你只想“沙箱化”一个专用进程,你很了解,而进程实际上并不了解 EasyHook,这可能会成功!但永远不要尝试编写任何基于用户模式挂钩的安全软件。它不会工作,我向你保证……这也是 EasyHook 不支持所谓的“系统范围”注入的原因,这实际上只是一种错觉,因为正如我所说,使用用户模式挂钩将永远不可能. 但如果你想保持这种错觉,你可能会坚持尝试这样做的其他(商业)库......</p>

教程中的一些其他提示:

您应该考虑购买 PatchGuard API,它允许您编写基于内核模式拦截的安全应用程序。内核模式挂钩(或 PatchGuard API)是应用额外安全检查的唯一选项。从 Windows Vista 开始,Windows 过滤平台和其他 Vista 特定 API 也将有助于编写安全软件!

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

于 2010-12-18T11:56:27.193 回答
0

PacketX是一个简单的小库来嗅探数据包。不确定您是否可以完全阻止网络。您必须想出一种方法来禁用网络适配器,然后让您的程序显示为网络适配器,以便根据需要转发数据包。

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

于 2009-10-26T11:50:35.610 回答
0

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

于 2009-11-24T08:37:02.330 回答