.net中的简单防火墙


昵称不能为空
2025-03-18 08:45:48 (3天前)
  1. 我想尝试创建一个简单的


火墙
</跨度>
这限制了应用程序访问

互联网
</跨度>
除了我允许的申请。像netlimiter一样。
所以它必须允许

互联网
</跨度>
访问

4 条回复
  1. 0# 那年 | 2019-08-31 10-32




    PacketX

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




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


  2. 1# 岁爵 | 2019-08-31 10-32



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



    如果你想坚持使用.NET,那么你的选择非常有限。首先,你需要大量使用WinApi,这在.NET中不是很方便(虽然当然不是不可能) - 你可能想考虑使用VC ++ .NET - 你可以尝试使用

    EasyHook

    用于管理挂钩。

    请注意,它肯定不是一个好的解决方案
    </强>


    教程

    实际上警告你在安全软件中使用它:




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




    本教程中的其他一些提示:




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




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


  3. 2# 那月静好 | 2019-08-31 10-32



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


登录 后才能参与评论