[Cpp] Sniffer

Emtecc

Użytkownik
Dołączył
Maj 15, 2011
Posty
2
Witam wszystkich,
mam mały problem, potrzebuje napisać sniffer który będzie nasłuchiwał przychodzące/wychodzące pakiety ale dla danej aplikacji/procesu. Wiem że są biblioteki jak WinpCap / TcpDump itp. Już korzystałem z nich, nasłuchiwanie działa itp. Tylko potrzebuje naprowadzenia tylko (nie potrzebuje gotowych rowiązań) na to by snifować konkretny proces.

Pozdrawiam
 

adiblol

Użytkownik
Dołączył
Kwiecień 24, 2009
Posty
49
Zależy pod jakim OSem ma działać. Jak jądro Linux to popatrz do źródeł programu strace. Służy on do śledzenia wywołań systemowych. Posiłkując się tą metodą można przy każdym wywołaniu funkcji connect, listen, send, recv czy innych (nie pamiętam dokładnie) dopisywać do logu odpowiednie dane. Pod Windowsem też na pewno się da, jakiś program SysInternals potrafił AFAIR śledzić wywołania systemowe ale był closed source więc wykorzystanie kodu odpada.
 

Emtecc

Użytkownik
Dołączył
Maj 15, 2011
Posty
2
Jedyny pomysł jaki mi przychodzi to taki, żeby przed rozpoczęciem snifowania - sprawdzić czy process jest aktywny i pobrać od niego porty jakie wykorzystuje. Później przy samym nasłuchiwaniu filtrować porty. Innego pomysłu nie mam. Co do OS - to chce zrobić żeby działał na każdym OS.
 
Do góry Bottom