Zápis filtru PATTERNMATCH
Filtr shody vzorů upozorní řidiče, aby přijímal snímky, které mají určitý vzor na určitém posunu. Můžete zadat maximálně čtyři podrobné shody vzorů, které lze kombinovat v logických příkazech AND nebo OR pro vyhodnocení ovladačů služby Network Monitor.
K implementaci shody vzorů použijte následující struktury monitorování sítě:
Pokud chcete vyhodnotit příkaz OR, zkombinujte dva až čtyři vzory, které odpovídají struktuře ANDEXP (PatternMatch1 || PatternMatch2 || PatternMatch3). Pokud chcete vyhodnotit příkaz AND, zkombinujte jednu až čtyři struktury ANDEXP a strukturu VÝRAZ (AndExp1 && AndExp2).
Definice shody vzorů
Shodu s jedním vzorem definuje struktura PATTERNMATCH. Jednotlivý zápas může probíhat jedním ze dvou způsobů.
Za normálních okolností ovladač vezme odsazení (což může být OFFSET_BASIS_RELATIVE_TO_FRAME, OFFSET_BASIS_RELATIVE_TO_EFFECTIVE_PROTOCOL, OFFSET_BASIS_RELATIVE_TO_IPX nebo OFFSET_BASIS_RELATIVE_TO_IP) a začne tam počítat. Ovladač spočítá odstup bajtů odtud a pak porovná data, která najde, s prvními bajty délky v PatternToMatch. Pokud jsou stejné a příznak PATTERN_MATCH_FLAGS_NOT není nastavený, tento vzor se předá. Pokud se liší a PATTERN_MATCH_FLAGS_NOT bylo nastaveno, vzor se předá. Jinak tento model selže.
Nebo:
Pokud je nastaven příznak PATTERN_MATCH_FLAGS_PORT_SPECIFIED a základ je nastaven na OFFSET_BASIS_RELATIVE_TO_IPX nebo OFFSET_BASIS_RELATIVE_TO_IP, porovnání je složitější. Nejprve ovladač zajistí, že je tam základní protokol posunu, pak ovladač ověří, že zadaný port odpovídá portu v rámci. Nakonec ovladač zařízení zajistí, aby člen PatternToMatch odpovídal stejně jako dříve, s výjimkou, že posun začíná od konce IP nebo IPX. Všimněte si, že pokud základ není jednou z těchto dvou, bude příznak PATTERN_MATCH_FLAGS_PORT_SPECIFIED ignorován a vzor bude vyhodnocen jako výše.
Pokud chcete vyhodnotit shodu s jedním vzorem, musí mít strukturavýrazujeden AndExp člen obsahující shodu s jedním vzorem.
Vytvoření filtru shody vzorů zahrnuje vytváření struktur PATTERNMATCH a jejich logické kombinování se strukturami EXPRESSION a ANDEXP.
Jak napsat filtr PATTERNMATCH
- Ve struktuře ANDEXP naplňte pole shodnými vzory.
- Zaplňte strukturu EXPRESSION polem členů AndExp.
- Nepřekračujte celkový počet čtyř shod vzorů pro záchytný filtr.
- Ve struktuře PATTERNMATCH vyberte typ příznaku.
- Vyberte základ odsazení.
- Vytvořte výčet hodnoty portu.
- Definujte hodnotu posunu.
- Definujte délku vzorku.
- Seřadit hodnotu vzoru.
Příklady: PATTERNMATCH
Tento rámeček představuje standardní posun.
Fragment kódu se implementuje takto:
Basis -> IP
Offset -> 4 (bytes)
Length -> 2 (bytes)
PatternToMatch[ ] = {x00, x00}
Tento rámec znázorňuje offset specifikovaný portem ve vztahu k IPX.
Ukázkový kód se implementuje takto:
Port -> 544
Basis -> IPX
Offset -> 2 (bytes)
Length -> 2 (bytes)
PatternToMatch[ ] = {x00, x00}