Sdílet prostřednictvím


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

  1. Ve struktuře ANDEXP naplňte pole shodnými vzory.
  2. Zaplňte strukturu EXPRESSION polem členů AndExp.
  3. Nepřekračujte celkový počet čtyř shod vzorů pro záchytný filtr.
  4. Ve struktuře PATTERNMATCH vyberte typ příznaku.
  5. Vyberte základ odsazení.
  6. Vytvořte výčet hodnoty portu.
  7. Definujte hodnotu posunu.
  8. Definujte délku vzorku.
  9. Seřadit hodnotu vzoru.

Příklady: PATTERNMATCH

Tento rámeček představuje standardní posun.

standardní rámec posunu

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.

rám zadaného portu posunu

Ukázkový kód se implementuje takto:

Port   ->   544
Basis  ->   IPX
Offset ->   2 (bytes)
Length ->   2 (bytes)
PatternToMatch[ ] = {x00, x00}