|
|
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 |
|
|
|
|

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. |
|
|
|
|
|