MacOSX: как захватить сетевые события? Или: как работает Private Eye?

Я наткнулся на Частный глаз и задаюсь вопросом, как это работает.

т.е. какие API-интерфейсы используются для получения этой информации (все входящие/исходящие сетевые подключения и приложение, использующее его)?

Он устанавливает kext. Это необходимо?

Ответ 1

Разработчик здесь.

Он использует kext, чтобы поймать соединения. Основная идея - установить фильтр сокетов, который вызывается всякий раз, когда есть сетевое событие. Затем kext захватит и сохранит всю необходимую информацию и передаст его через сокет управления ядра клиенту userland.

Здесь Apple замечательно рассказывает о создании расширения сетевого ядра. http://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/NKEConceptual/intro/intro.html

Почти все, что относится к Private Eye.

Ответ 2

chrome://net-internals/# события из google chrome могут помочь, вы можете попробовать