1

それで、私は過去数時間正規表現を構築しようとしてきましたが、これが可能であるか、野生に値するかどうかを考えるのに夢中になり始めています。

既知の悪意のあるファイルと特定の文字列の MD5 サムをチェックする PHP ファイルをスキャンするスクリプトがあります。ごく最近、PHP ファイルで base64_decode を使用する代わりに、変数を使用して連結しているファイルに遭遇したため、スキャナーはそれを検出しません。

例として、これが私が見つけた最新のものです:

$a='bas'.'e6'.'4_d'.'ecode';eval($a

そのため、スキャナーは base64_decode を検索するため、PHP を使用して base64_decode を変数に連結し、変数を呼び出すため、このファイルは取得されませんでした。

正規表現を始めたばかりなので許してください。しかし、正規表現を使用してこのようなものを検索することは可能ですか? つまり、私は理解し、その正確な正規表現に一致する正規表現を取得できましたが、代わりにこれを使用した場合はどうなりますか:

$a='b'.'ase'.'64_d'.'ecode';eval($a

正規表現が '、b、a などを探していたため、取得されませんでした。

私はすでに追加しました

(eval)\(\$[a-z]

ファイルを確認するための通知としてメールを送信するには、ファイルを数日間実行して、誤検知がいくつ表示されるかを確認する必要がありますが、私の主な関心事は base64_decode です。

誰かが私のためにこれに光を当てて、おそらく私を正しい方向に向けることができれば、私はそれを大いに感謝します.

ありがとう!!

4

1 に答える 1

1

次の正規表現を使用できます。

b\W*a\W*s\W*e\W*6\W*4\W*_\W*d\W*e\W*c\W*o\W*d\W*e

base64_decode英数字以外の文字が混在して検索されます。

于 2013-10-10T22:15:13.723 に答える