我正在尝试找出难以用单一模式匹配的恶意软件的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:]]*\]'

与使用范围相比,使用字符类要安全得多。另外,我建议您使用-print0xargs -0,这样带空格的文件名就不会弄乱您的命令。另请参见explaination

关于shell - 针对特定php恶意软件模式的Grep,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52323485/

10-13 07:40