はじめに

複合条件

ブール演算子、And、Or、Not を使用して複雑な条件を作成できます。

<And>
  <Or>
    <SomeBasicCondition> … </SomeBasicCondition>
    <SomeBasicCondition> … </SomeBasicCondition>
    <Not>
      <SomeBasicCondition> … </SomeBasicCondition>
    </Not>
  </Or>
  <Not>
    <And>
      <SomeBasicCondition> … </SomeBasicCondition>
      <SomeBasicCondition> … </SomeBasicCondition>
    </And>
  </Not>
</And>

Extended Boolean Values

条件の結果は一旦評価され、Extended Boolean Values (拡張ブール値) になります。Extended Boolean Values は、true、unknown、false の何れかの値をとります。値 unknown は次のような場合になります。「現時点で評価できないが、さらにデータが利用できるようになったときに評価できる可能性がある」

これは、TcpRuleRecvProto および TcpRuleRecvUntil タイプのルールにとって重要です。TCP ルールの条件の結果が unknown 値の場合は、Recorder はスクリプト化を遅延し、よりデータがサーバーから受信した時点で条件を再評価します。

基本条件

チェックを実行し、結合して (ブール演算子 And、Or、Not を使用して) 複雑な複合条件を構築できる、いくつかの基本条件の種類があります。

基本条件の種類は次の通りです。
  • CheckRange:数値が指定した範囲内にあるかどうかをチェックします。
  • ResultLen:条件 CheckRange の特殊な形式です。
  • CompareData:データを比較します。
  • FindData:データを検索します。
  • Verify:条件 CompareData の特殊な形式です。
  • RegExpr:正規表現を適用します。
  • NoBlockSplit:ブロック境界をチェックします。
  • Scripting:スクリプト化される文字列のタイプをチェックします。

条件評価環境

条件はある環境内で評価されます。環境を通して、条件は、条件を適用できる多くの文字列を利用できます。環境構成は、各ルールの種類によって異なります。詳細は、「条件評価環境」の節を参照してください。

条件でのデータ操作方法

多くの条件 (Scripting 条件を除く) は特定のデータのブロックに特定のチェックを適用します。どのデータをチェックするかを指定する方法には柔軟性があります。詳細は、セクション「条件のデータを指定する」を参照してください。