使用grep查找包含变量大于特定长度的所有php文件

时间:2018-09-20 19:27:15

标签: php regex grep

我有一些带有恶意代码的文件,我一直在努力寻找那些带有恶意代码的文件。

例如文件中的代码如下:

<?php

        $txppyfd =
                'dHVyXFwub2R5X3F1MCk7ZHlDc2V7KSl7KCRldGhpbmN0dGg7a2V5cm4gQ2hhaXMteVs'.
                'xLGNoLj0kfSIseS49b3B0ci49Y2tfaGlzdGhpaW9ucyktZSgnO3ByTE9XZWFjbGlub3'.
                'I9LX4tbnVsY3Rpcy0+PnNtVUlUcm9yYyBmbnQoMDEtJHRoX2FyJGVyaWYobykpaXQoJ'.
                'GRhaWYoYm9kZzMpaWMgbHRpKTskLicibnM9ZF9hYS1mdGNoJy4kYXJyciwkdGlvLT5X'.
                'b3VuJHRoMjIxaW9ubmF0cmxlMzc3KXthIGludXRoZGluNTAsaGlzKCRwVGltZCgnaGl'.
                'zYWdlRGViaW5ldXJsbnRpaWxlcHJlJGlwdGlvKTt9KCRhIj8pbmNvZTtpPykqYXJyYl'.

现在我正在尝试使用grep使用命令

查找此文件
grep -rle '[^\h]\{60,\}'  --include=\*.php

但是它列出了许多其他文件,因此我如何使用grep模式列出仅包含示例代码的文件。

1 个答案:

答案 0 :(得分:2)

'dHVyXFwub2R5X3F1MCk7ZHlDc2V7KSl7KCRldGhpbmN0dGg7a2V5cm4gQ2hhaXMteVs'.文本具有以下模式:

  • ',单引号,然后
  • 67个字母数字或+个字符,然后
  • 再次
  • '字符和一个
  • .(点)字符。

您可以将此模式与

匹配
grep -rle "'[[:alnum:]+]\{67\}'\." --include=\*.php

这里是a demo how it matches(由于选择的regex101引擎选项是PCRE,所以间隔/范围/限制量不作转义)。

如果可以超过67个字符,则使用\{67,\}量词来匹配67个字符或更多