阻止应用程序通过 Cocoa API (LittleSnitch API) 访问网络?

2024-03-30

我正在使用 OS X 10.5,我正在寻找一种方法来检测应用程序是否尝试访问互联网。此时,如果应用程序与我将定义的一组规则匹配,我想阻止该应用程序。

有的是ipfw我意识到可以使用 Unix 命令来阻止对某些端口的访问,但这会影响所有应用程序。我阅读了手册页,但没有看到使用 ipfw 阻止访问但将其限制为specific应用。

我的主要问题在于检测哪个应用程序正在尝试获得对网络的外部访问权限。从编程角度来说,必须有一种方法可以做到这一点,无论是通过使用某些 Mac OS X API 还是 Unix 命令,如何才能实现这一点?

Update:本质上我想做《Little Snitch》所做的事情,但我想自己从头开始编写它,因为我不喜欢《Little Snitch》。我只需要知道哪些 API 可以让我完成应用程序网络沙箱,以及 Little Snitch 到底是如何做到这一点的?


我意识到这已经晚了一年,但我正在挖掘类似的东西并找到了我认为的答案。希望这可以帮助其他人。

小飞贼似乎使用网络内核扩展 http://developer.apple.com/mac/library/documentation/Darwin/Conceptual/NKEConceptual/intro/intro.html过滤进入系统的流量。我通过发现它在盒子上安装了一个内核扩展来验证了这一点:

[~] kextstat
...
55 0 0x687000 0x2b000 0x2a000 at.obdev.nke.LittleSnitch (2.0.46) <7 6 5 4 2>
...

如果您希望以编程方式阻止网络访问另一个应用程序,这似乎是您最好的选择。但是,如果您只是想监控其他应用程序的网络使用情况,您还有其他选择,例如libpcap.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阻止应用程序通过 Cocoa API (LittleSnitch API) 访问网络? 的相关文章

随机推荐