PL | EN (UC!)
Strona główna | Pliki | Wsparcie | Kontakt | O mnie
- BrainWasher
Informacje

- AmiGG
Informacje
Galeria
Forum
(zew. link)
Bugtracker
(zew. link)
Grupa dyskusyjna
(zew. link)
Podziękowania

- NetworkSnoop
Informacje
Galeria

- MUI-WIN Wrapper
Informacje

- Spock
Informacje

Galeria
Copyright (c) 2007-08 by Marcin "MiniQ" Kielesiński

BrainWasher bazuje na źródłach AmiGG (c) 2003-04 by Piotr Wegnerowski, (c) 2004-08 by Marcin "MiniQ" Kielesiński

Site design by alpine
free counters

Rotacja buttonów:
NetworkSnoop - Co to jest i do czego służy?
NetworkSnoop to program typu "transparentna łata", w założeniu pełniający podobną funkcję jak SnoopDos, z tą różnicą że jest kierunkowany na śledzenie wywołań biblioteki bsdsocket.library. Nie jest to raczej program dla "zwykłego" użytkownika - w sensie nie służy on np. do poprawy funkcjonalności stosu TCP/IP - nic z tych rzeczy. To program raczej dla developerów, którzy pisząc program korzystający z bsdsocket.library będą mogli na bieżąco np. podejrzeć zawartość buforów funkcji recv(), send(), zawartość struktur systemowych których używa bsdsocket.library, sprawdzić czy dana funkcja otrzymuje odpowiednie parametry (lub jakie), etc.

Program może również służyć jako monitor dla "niepewnego" oprogramowania - takiego co do którego zachodzą podejrzenia o spam, wysyłanie niepożądanych informacji w bliżej niezidentyfikowane miejsca w sieci, etc.
NetworkSnoop - Jak to działa i co mogę zrobić za jego pomocą?
Jak zostało wspomniane wcześniej program zakłada łaty na funkcje bsdsocket.library, oraz exec.library (OldOpenLibrary(), OpenLibrary(), CloseLibrary()). Łaty te przechwytują wszystkie wywołania podstawowego API biblioteki bsdsocket.library (aktualnie program śledzi wywołania procedur od offsetu -30 w tablicy skoków biblioteki, do offsetu -300). Jak wiadomo każdy proces używający bsdsocket.library musi otworzyć tą bibliotekę tylko i wyłącznie na własny użytek - baza biblioteki jest powiązana z danym procesem, i nie może być dzielona z innymi procesami. W związku z tym niemożliwe jest założenie pojedyńczej łaty na bsdsocket.library, i proste monitorowanie wywołań tej biblioteki, tak jak to jest możliwe w przypadku wszystkich innych bibliotek AmigaOS. Rozwiązaniem tego problemu jest dynamiczne zakładanie łat na każdą nową bazę bsdsocket.library, stworzoną poprzez wywołanie exec.library/OpenLibrary() w kontekście danego procesu który jej zamierza użyć. W praktyce skutkuje to tym, że NetworkSnoop musi być uruchomiony PRZED uruchomieniem programu który ma być śledzony.

Dzięki NetworkSnoop można na bieżąco obserwować wywołania funkcji, oraz ich parametrów (górna lista). W dolnej ląduje zawartość struktur lub buforów funkcji, które przyjmują bardziej złożone parametry. W drugiej zakładce można włączać/wyłączać łaty na poszczególne funkcje bsdsocket.library, wybrać nazwę procesu do śledzenia (defaultowo program śledzi wszystkie procesy które w jakikolwiek sposób dotykają bsdsocket.library), właczyć/wyłączyć zapisywanie buforów funkcji recv()/send() itp. na dysk (do wyboru jest możliwość zapisywania ich w katalogu NetworkSnoop, lub w katalogu śledzonego procesu). Program oczywiście potrafi logować daną sesję z bsdsocket.library do pliku tekstowego. Wszystkie zmiany przeprowadzane są natychmiastowo i w realtime, włącznie z zapisem preferencji.
NetworkSnoop - Wymagania
Program działa bezproblemowo na systemach AmigaOS 3.x, 4.x, oraz MorphOS. W niedługim czasie powstaną również wersje natywne dedykowane wszystkim systemom amigopodobnym (AmigaOS 4.x, MorphOS, AROS).

Do działania programu oprócz amigowego systemu operacyjnego potrzebne są również następujące składniki:
- Dowolny stos TCP/IP kompatybilny z bsdsocket.library (w praktyce wsystkie, program działa również z emulowaną bsdsocket.library pod WinUAE),
- MUI 3.x lub nowsze,
- Klasa MUI NList,
- Dowolny program korzystający z bsdsocket.library do śledzenia.

Może być również konieczne zwiększenie stosu dla aplikacji która korzysta z bsdsocket.library, by uniknąć konsekwencji z dodatkowego zapotrzebowania na stos w kontekście łat, które zakłada NetworkSnoop.