cmdline フィールド (process_cmdline
、childproc_cmdline
、parent_cmdline
、fileless_scriptload_cmdline
) は、他のフィールドと同様に単一語句のワイルドカードをサポートします。
ただし、検索対象の語句にエスケープされた空白文字またはトークン化中に空白として扱われる特殊文字が含まれている場合、これを正しく機能させるために特別なルールに従う必要があります。
たとえば、次のプロセス コマンド ラインでは、次のようになります:
C:\Program Files\Windows Defender\mpcmdrun.exe -wddisable
- これらの語句はそれぞれトークン「C:」「Program Files」になります。ただし、これらのトークンの一部を検索するには、
:
、\
、-
などの一部の文字をエスケープする必要があります。 :
または\
などのトークン化の境界をまたがる語句のグループは、「C:\Program Files」、「Program Files\Windows Defender」、「mpcmdrun.exe -wddisable」などの語句と見なされます。- 語句でのワイルドカードの使用には制限があります。
- 先頭のワイルドカードは使用できません。
- cmdline 値のスペースはエスケープする必要があります。
- 2 文字以上の英数字を前に付けると、末尾のワイルドカードを使用できます。
- ワイルドカード付きの値を引用符で囲むことはできません。引用符「*」で囲まれている場合、* 文字は ASCII 文字として文字通り解釈されます。
- 語句にワイルドカードを使用して検索すると、スペースと文字「\ ( ) [ ] { } ; " ' < > & | , = 」がトークン化されます
- これらの文字のいずれかがコマンド ラインにある場合、スペースに変換され、その検索が語句になります。これらの文字は、元の文字とともに API 応答データで引き続き返されます。
- コマンド ラインのどこにあるかに応じて、
/
と:
の文字を空白に変換できます。そのため、検索結果を絞り込む必要がない限り、ターゲット コマンド ラインのスペースで区切られた部分(他のコマンド ライン文字など)を含める必要はありません。
- コマンド ラインでこれらの文字の有無を特別に検索することはできません。たとえば、
process_cmdline:\>\>
では、>
文字は区切り文字と見なされ、空白に変換されます。
[例 1:]
これは検索中のプロセス コマンド ラインです。
process123.exe -parameterA somewordabcd -parameterB word1\word234
たとえば、process_cmdline:someword*
のように、末尾のワイルドカードを使用して、制限のない単一の用語をいつでも検索することができます。ただし、検索対象に空白または空白として扱われる文字が含まれている場合、末尾のワイルドカードは、空白でない文字または空白に相当しない 2 文字の後にのみ指定できます。
機能する | process_cmdline:word1\\word2* |
機能しない | process_cmdline:word1\\w* |
このルールには 1 つの例外があります。このパーサーが、特殊文字の直後にワイルドカードを置くことを認識し、その特殊文字を削除して単一語句を生成する場合、クエリが修正され、正しく機能するようになります。
パーサーがこれを自動的に修正するため、機能します | process_cmdline:word1\\* |
[例 2:]
これは、検索中の別のプロセス コマンド ラインです。
process123.exe -version 4.1
4.0 や 4.2 などの -version
のすべての変数を検索するには、次を検索します。
process_name:process123.exe AND process_cmdline:\-version\ 4.*
次の検索クエリは、先頭文字が不足しているため失敗します。少なくとも 2 文字必要です。
process_name:process123.exe AND process_cmdline:4*
この検索クエリも、先頭のワイルドカードを使用しているために失敗します。
process_name:process123.exe AND process_cmdline:*\-version\ 4.*