Megosztás a következőn keresztül:


A PATTERNMATCH szűrő írása

A mintaillesztő szűrő értesíti az illesztőprogramot, hogy fogadja el azokat a kereteket, amelyek egy adott mintával rendelkeznek egy meghatározott eltolásnál. Legfeljebb négy részletes minta egyezést adhat meg, amelyek logikai ÉS vagy OR utasításokkal kombinálhatók a Network Monitor-illesztőprogramok kiértékelése során.

Minta egyezések implementálásához használja a következő Network Monitor-struktúrákat:

Egy VAGY utasítás kiértékeléséhez kombináljon két-négy mintát egy ANDEXP struktúrával (PatternMatch1 || PatternMatch2 || PatternMatch3). Az AND utasítás kiértékeléséhez egyesíthet egy-négy ANDEXP struktúrát és egy EXPRESSION struktúrát (AndExp1 && AndExp2).

Mintaegyezés definíciói

Egyetlen mintaegyezést a PATTERNMATCH struktúra határoz meg. Az egyes mérkőzés kétféleképpen működhet.

Általában a meghajtó veszi az eltolás alapját (ami lehet OFFSET_BASIS_RELATIVE_TO_FRAME, OFFSET_BASIS_RELATIVE_TO_EFFECTIVE_PROTOCOL, OFFSET_BASIS_RELATIVE_TO_IPX vagy OFFSET_BASIS_RELATIVE_TO_IP), és ott kezdi el a számolást. Az illesztőprogram onnan számolja az eltolt bájtokat, majd összeveti a megtalált adatokat a PatternToMatchelső hosszbájtjaival. Ha azonosak, és a PATTERN_MATCH_FLAGS_NOT jelző nincs beállítva, akkor ez a minta áthalad. Ha különbözőek, és a PATTERN_MATCH_FLAGS_NOT be lett állítva, a minta elfogadható. Ellenkező esetben ez a minta meghiúsul.

Vagy:

Ha a PATTERN_MATCH_FLAGS_PORT_SPECIFIED jelölő be van állítva, és az alap értéke OFFSET_BASIS_RELATIVE_TO_IPX vagy OFFSET_BASIS_RELATIVE_TO_IP, az összehasonlítás összetettebb. Először az illesztőprogram biztosítja, hogy az eltolási alap protokoll ott legyen, majd az illesztőprogram ellenőrzi, hogy a megadott port megfelel-e a keretben lévő portnak. Végül az illesztő biztosítja, hogy a PatternToMatch tag a korábbiakhoz hasonlóan egyezzen, azzal a kivétellel, hogy az eltolás az IP-cím vagy az IPX végéről származik. Vegye figyelembe, hogy ha az alap nem tartozik a kettő közé, akkor a PATTERN_MATCH_FLAGS_PORT_SPECIFIED jelző figyelmen kívül lesz hagyva, és a minta a fenti módon lesz kiértékelve.

Egyetlen mintaegyezés kiértékeléséhez az EXPRESSION struktúrának egy AndExp tagot kell tartalmaznia, amely egyetlen mintaegyezést tartalmaz.

A mintaegyeztetési szűrő létrehozásához létre kell hoznia PATTERNMATCH struktúrákat, és logikailag kombinálni kell őket EXPRESSION és ANDEXP struktúrákkal.

PATTERNMATCH szűrő írása

  1. Az ANDEXP struktúrában töltse ki a tömböt mintaegyezésekkel.
  2. Töltse fel a EXPRESSION struktúrát a AndExp tagok tömbjével.
  3. Ne lépje túl a rögzítési szűrőhöz tartozó négy minta egyezést.
  4. A PATTERNMATCH struktúrában válasszon egy jelölőtípust.
  5. Válassza ki az eltolás alapját.
  6. Portérték számbavétele.
  7. Eltolási érték meghatározása.
  8. Adja meg a minta hosszát.
  9. Számolja fel a mintaértéket.

PATTERNMATCH példák

Ez a keret egy szabványos eltolást jelöl.

szabványos eltolási keret

A kódrészlet a következő módon implementálva van:

Basis  ->   IP
Offset ->   4 (bytes)
Length ->   2 (bytes)
PatternToMatch[ ] = {x00, x00}

Ez a keret egy port által megadott eltolást ábrázol (IPX-hez képest).

port által megadott eltolási keret

A példakód a következő módon implementálva van:

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