sniffer - funkcja Listen w TClientSocket

0

Chcialbym napisac prostego sniffera, cos w stylu httplook, program ktory bedzie przechwytywal wszystko, co sie dzieje na danym porcie. Wydaje mi sie to niemozliwe, ale najlepiej, gdyby przechwytywal tylko komunikaty wysylane i odbierane za posrednictwem kontrolki ActiveX TCppWebBrowser. Pierwsze, czego sprobowalem, to funkcja Listen w TClientSocket, a raczej w TCustomWinSocket dostepnym we wlasciwosci Socket ww komponentu. Niestety nie mam pojecia jak ja obslugiwac... help, google, forum, nigdzie nic nie znalazlem. A moze uzywam zlej funkcji?? Z gory dziekuje za pomoc.

0

Aby przechwytywać wszystkie pakiety musiałbyś otworzyć surowe gnizadko, które przechwytywało by ruch na karcie sieciowej (RAV?)...
Raczej żaden komponent nie będzie do tego odpowiedni, możesz spróbować zrobić to używając WinSock... Ja kiedyś próbowałem, ale dałem sobie spokój:)

1

winpcap..
tym sie zainteresuj
http://winpcap.polito.it/
z tym ze ze sie tak wyraze: "zagadnienie o wysokim stopniu trudnosci"...
winsock ma bardzo ograniczone sockety, i SOCK_RAW sie do niczego nie przyda...
gritz
Gynvael

0

Hmm... studiowanie tak zlozonych bibliotek mi sie nie usmiecha, wiec moze sformuuje pytanie inaczej: Czy jest jakas mozliwosc na ogladanie pakietow wysylanych i odbieranych przez TCppWebBrowser albo inny komponent spelniajacy funkcje przegladarki internetowej? Wiem, ze to inna nazwa dla tego samego problemu, ale moze ktos sie spotkal z czyms takim.

0

Mi przychodza na mysl trzy rzeczy..

o jednej juz wspomnialem wyzej (winpcap)

druga jest ustawienie Hooka na polecenia z winsocka lub podmiane owych na procki logujace (swoja droga bodajze microsoft nawet zaopatrzyl systemy w jakas dllke logujaca do winsocka afair.. ale zupelnie nie kojarze jak sie zwala.. w MSDN powinno cos wiecej pisac)

trzecia jest zrobienie tunelu/proxy z logowaniem.. przegladarka by najpiew sie laczyla z tunelem, a tunel by sie laczyl z czym trzeba i przerzucal dane z jednego konca na drugi przy okazji je zapisujac

Hm.. w kazdym badz razie, jezeli przez przypadek chodzi ci jedynie o informacje o protokole HTTP 1.0/1.1, tyo po prostu odwiedz RFC, nie ma sensu w tym wypadku odkrywac niczego na nowo...
http://www.faqs.org/rfcs/rfc2616.html HTTP/1.1
http://www.faqs.org/rfcs/rfc1945.html HTTP/1.0

Pokoj, Gynv

0

Tak chodzi o pakiety przesylane przez protokol http, ale chyba nie do konca rozumiem, co to zmienia? W RFC bede zagladal, gdy juz te pakiety beda gdzies widoczne. Chce po prostu napisac przegladarke internetowa z oknem po lewej, gdzie beda pokazywane wysylane i odbierane przez nia pakiety... Dziekuje za pomoc, winpcap ma tutorial na stronie, wiec nie powinno byc problemow, a jak beda, to faktycznie poszperam w msdn, teraz przynajmniej wiem czego szukac.

0

Udalo mi sie napisac sniffera z pomoca WinpCap, do c++buildera sa nawet odpowiednie komponenty, ale je troche przerobilem i ladnie dziala, jednak mam pytanie. Ustawilem filtr na port 80, zeby przechwytywac tylko http. Kiedy juz przechwyce pakiet w ascii wychodza krzaki. Jak doprowadzic pakiet do postaci, jaka pokazuje np httplook? Czyli normalny naglowek http, potem np. zrodlo strony. Bede wdzieczny za wszelka pomoc.

0

O ile się nie mylę, to WinpCap (nigdy nie korzystałem z tej biblioteki) przechwytuje pakiet razem z jego nagłówkiem... Czyli adres MAC, IP, Rozmiar, itp... Musisz chyba najpierw przekształcić ten nagłówek, a potem pozostałe bajty będą treścią pakietu.
Dane na temat tego nagłówka znajdziesz w Internecie.

PS> Mogę nie mieć racji, bo nigdy nie używałem gotowych bibliotek do sniffowania.
PS2> IMHO sniffer jest dość głupim sposobem na zrobienie paska postępu ładowania strony przez komponent, ale to tylko moje zdanie ;)

0

A kto mowil, ze on ma zastepowac pasek postepu?? Po prostu chce wiedziec, co wysylam i co dostaje, bo z httplook wielu ciekawych rzeczy sie mozna dowiedziec... To przeksztalcenie to wlasnie problem, zupelnie nie wiem jak sie do tego zabrac... caly czas szukam z miernymi rezultatami, bede wiec wdzieczny za podpowiedzi.

1

Hmm nom z tego co kojarze to pcapy lapia wszystko lacznie ze smieciami, headerami IP, TCP etc.. polecam w tym wypadku RFC tych protokolow

Hmm a temu slynnemu "httplook" nie mozesz jakos na tacy podawac danych ? wtedy ty bys byl odpowiedzialny za to co robi...
ew jesli jest opensource to wez dopisz odpowiednie procki do niego
ew jesli wiesz jak (RE RE RE ;p) to podmien w pamieci programu pointer do send/recv tych od socketow na wlasne funkcje logujace a nastepnei je wywolujace... (ja chyba bym tak zrobil jesli nie mogl bym z winsocka skorzystac ani ow komponent nie byl by opensrc).. jesli wiecej chcesz o tym to odsylam do ksiazki Windows 95 Sytem Programming Secrets albo do jakiejkolwiek lepszej stronki z tutorialami o RE/crackingu..

tyle pomyslow ode mnie...
Pokoj, Gynv

0

, i SOCK_RAW sie do niczego nie przyda...

napisalem sniffer oparty na raw sockets... ale fakt, ze obsluguje ten tryb tylko nt

1 użytkowników online, w tym zalogowanych: 0, gości: 1