2010-09-02 2 views
4

Хорошо, так что я хочу создать фоновый агент, который отслеживает трафик http в/из определенного приложения и выполняет действия, когда есть запросы и ответы на определенный сайт. Есть ли хороший способ сделать это в какао? Я бы хотел избежать использования на самом деле низкоуровневого нюхания и/или потребовать доступа root для этого (доступ администратора - это нормально).Как перехватить HTTP-трафик в приложении Cocoa?

ответ

7

Если приложение, которое вы пытаетесь контролировать, поддерживает прокси-серверы, вы можете написать его и использовать в своем приложении. Вероятно, это самое простое решение.

Если это не работает, вы можете использовать что-то вроде mach_inject и mach_override перезаписать некоторые системные вызовы сокета (socket и write, вероятно, являются достаточно) в программе вы собираетесь контролировать. Это что-то вроде темного искусства, так что вам, вероятно, лучше использовать пакетный сниффер, например tcpdump, и управлять этим использованием трубы.

Для всего этого необходимы права администратора (которые почти совпадают с правами root), за исключением прокси-решения.

1

Вот tcpdump и это библиотека Libpcap:

http://www.tcpdump.org/tcpdump_man.html

и

http://www.tcpdump.org/pcap3_man.html

Там в учебник здесь:

http://www.tcpdump.org/pcap.htm

Как и Свен, вам понадобятся привилегии администратора, чтобы сделать что-нибудь захватывающее.

+0

Мне нужно отслеживать входящий исходящий HTTP/https запрос. будет ли это делать? Я делаю свой проект на obj-c какао –

Смежные вопросы