我正在尝试找出难以用单一模式匹配的恶意软件的grep。恶意文件中的一行如下所示:
$bhbwjhu[11].$bhbwjhu[15].$bhbwjhu[34].$bhbwjhu[23].$bhbwjhu[30].$bhbwjhu[6].$bhbwjhu[3].$bhbwjhu[34].$bhbwjhu[31]
尝试过类似的方法,但是很明显,我的grep技能很差(这会导致无效的范围结束错误):find . -type f | xargs grep -s -l "\$[A-z]*\[[0-9]*\]\.\$[A-z]*\[[0-9]*\]\.\$[A-z]*\[[0-9]*\]"
有什么方法可以搜索文件中的数组元素吗?Grep版本是
最佳答案
我建议使用以下内容:
find . -type f -print0 | xargs -0 grep -s -l '\$[[:alpha:]]*\[[[:digit:]]*\]\.\$[[:alpha:]]*\[[[:digit:]]*\]\.\$[[:alpha:]]*\[[[:digit:]]*\]'
与使用范围相比,使用字符类要安全得多。另外,我建议您使用
-print0
和xargs -0
,这样带空格的文件名就不会弄乱您的命令。另请参见explaination。关于shell - 针对特定php恶意软件模式的Grep,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52323485/