共用方式為


撰寫 PATTERNMATCH 篩選

模式比對篩選會通知驅動程式接受在特定位移具有特定模式的畫面。 您可以指定最多四個詳細的模式比對,這可以在邏輯 AND 或 OR 語句中結合,以進行網路監視器驅動程式評估。

若要實作模式比對,請使用下列網路監視器結構:

若要評估 OR 語句,請結合兩到四個模式符合 ANDEXP 結構 (PatternMatch1 ||PatternMatch2 ||PatternMatch3)。 若要評估 AND 語句,請結合一到四個 ANDEXP 結構和 EXPRESSION 結構 (AndExp1 & AndExp2)。

模式比對定義

單一模式比對是由 PATTERNMATCH 結構所定義。 個別比對可以透過兩種方式之一運作。

通常,驅動程式會採用位移基礎(可以是OFFSET_BASIS_RELATIVE_TO_FRAME、OFFSET_BASIS_RELATIVE_TO_EFFECTIVE_PROTOCOL、OFFSET_BASIS_RELATIVE_TO_IPX或OFFSET_BASIS_RELATIVE_TO_IP),然後開始計算該處。 驅動程式會計算來自該處的位移位元組,然後比對其找到的數據與 PatternToMatch 中的第一個長度位元組。 如果它們相同,且未設定PATTERN_MATCH_FLAGS_NOT旗標,則此模式會通過。 如果兩者不同且已設定PATTERN_MATCH_FLAGS_NOT,則模式會通過。 否則,此模式會失敗。

或:

如果已設定PATTERN_MATCH_FLAGS_PORT_SPECIFIED旗標,且基礎設定為OFFSET_BASIS_RELATIVE_TO_IPX或OFFSET_BASIS_RELATIVE_TO_IP,比較會更加複雜。 首先,驅動程式會確保位移基礎通訊協定存在,然後驅動程式會確認指定的埠符合框架中的埠。 最後,驅動程式可確保 PatternToMatch 成員與之前一樣相符,但例外狀況是位移來自 IP 或 IPX 結尾。 請注意,如果基礎不是這兩者之一,則會忽略PATTERN_MATCH_FLAGS_PORT_SPECIFIED旗標,並將模式評估為上述。

若要評估單一模式比對,EXPRESSION 結構必須有一個 AndExp 成員,其中包含單一模式比對。

建置模式比對篩選器牽涉到建立 PATTERNMATCH 結構,並以邏輯方式將它們與 EXPRESSION ANDEXP 結構結合。

若要撰寫 PATTERNMATCH 篩選

  1. 在 ANDEXP 結構中,使用模式相符專案填入數位。
  2. 使用 AndExp 成員陣列填入 EXPRESSION 結構。
  3. 請勿超過擷取篩選條件的四個模式比對總數。
  4. 在 PATTERNMATCH 結構中,選取旗標類型。
  5. 選取位移基礎。
  6. 列舉埠值。
  7. 定義位移值。
  8. 定義模式長度。
  9. 列舉模式值。

PATTERNMATCH 範例

此框架代表標準位移。

standard offset frame

代碼段會實作為:

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

此框架描述埠指定的位移(針對IPX)。

port-specified offset frame

範例程式代碼會實作為:

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