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

我正在使用OS X 10.5,我正在寻找一种方法来检测应用程序是否尝试访问Internet.在这一点上,我想阻止应用程序,如果它符合我将定义的一组规则.

有ipfw Unix命令,我意识到可以阻止访问某些端口,但影响所有应用程序.我阅读了手册页,并没有看到使用ipfw来阻止访问的方式,但是限制它到一个特定的应用程序.

我的主要问题在于检测哪个应用程序试图获得对网络的访问.通过编程,必须有办法做到这一点,无论是通过使用某些Mac OS X API还是Unix命令来实现呢?

更新:
本质上我想做Little Snitch做的,但我想从头开始自己写,因为我不喜欢Little Snitch.我只需要知道什么API可以让我完成应用程序网络沙箱,以及Little Snitch如何做到这一点?

解决方法

我意识到这是一年之后,但我正在挖掘类似的东西,并发现我认为是答案.希望这可以帮助别人下线.

Little Snitch似乎使用Network Kernel Extensions来过滤进入系统的流量.我已经通过发现它在框上安装了内核扩展来验证这一点:

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

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

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...