ვხსნით ბლოკნოტს და ბლოკნოტში ვწერთ შემდეგ კოდს:
<? ### Удаление фреймов и скриптов из новостей DLE ### Версия 1.3 (08.06.2011) @set_time_limit(0); @error_reporting(E_ALL ^ E_NOTICE); define ("DATALIFEENGINE", "1"); define ( 'ROOT_DIR', dirname ( __FILE__ ) ); define ( 'ENGINE_DIR', ROOT_DIR . '/engine' ); require_once ROOT_DIR . '/engine/init.php'; # Что удалять $delete = array('<[^<]*frame[^<]*>','<[^<]*script[^<]*>'); $limit = 100; // по 100 новостей за шаг. $count = $db->super_query("SELECT COUNT(*) as count FROM `".PREFIX."_post`;"); echo '<title>Удаление вредоносного кода из новостей на DLE сайтах ver. 1.3</title>'; if ( !$_POST['submit'] ) { echo ' <div align="center"> <div align="center" style="width: 400px; border: 1px dotted black;"> <form action="" method="POST"> Будет обработано '.intval($count['count']).' новостей.<br /> Начать с <input name="start" value="0" style="width: 100px;"><br /> <input name="submit" value="Начать" type="submit" style="text-align: center;"> </form> </div> </div> '; } else { $_limit = ( isset($_POST['start']) and is_numeric($_POST['start']) and $_POST['start'] > 0 ) ? $_POST['start'] : 0; $count['count'] = $count['count']-$_limit; echo ' <script src="http://code.jquery.com/jquery-1.4.4.min.js" type="text/javascript"></script> <style> #percent { position:relative; left:200px; top:15px; color: #2d2b2b; font-family: tahoma; font-size: 11px; } #Left { float:left; height: 16px; border-top: 1px solid #5d5d5d; border-bottom: 1px solid #5d5d5d; border-left: 1px solid #5d5d5d; background-color:#27c71b; } #Right { float:left; height: 16px; border-top: 1px solid #5d5d5d; border-bottom: 1px solid #5d5d5d; border-right: 1px solid #5d5d5d; background-color:#e1e1e1; } #rate { margin: -12px 0px 12px 0px; } </style> <script type="text/javascript"> setInterval("update();", 2000); var percent; var del; var count; var left; var right; function update () { $(\'#Right\').css(\'width\',right); $(\'#Left\').css(\'width\',left); $(\'#percent\').html(percent+\'%\'); $(\'#count\').html(count); $(\'#del\').html(del); } </script> <div id="percent">0%</div> <div id="Left" style="width: 0px;"> </div> <div id="Right" style="width: 400px;"> </div> <br><br> <b>Результат:</b> <font id="count">0</font>/'.intval($count['count']).'.<br> <b>Удалено вредоносного кода:</b> <font id="del">0</font><br> '; $i = 1; for( $p=0;$p<=ceil(intval($count['count'])/$limit);$p++ ) { $sql = $db->query("SELECT id,full_story,short_story,title,descr,keywords FROM `".PREFIX."_post` LIMIT {$_limit},{$limit};"); while ( $row = $db->get_row($sql) ) { $save = array(); foreach ( $row as $name=>$value ) { if ( $name == 'id' ) continue; foreach ( $delete as $code ) { preg_match_all('#('.$code.')#Uis',$value,$del_code); if ( isset($del_code[1]) and count($del_code[1]) > 0 ) { foreach ( $del_code[1] as $dc ) { $value = str_replace($dc,'',$value); } $save[] = "`{$name}` = '".$db->safesql(stripslashes($value))."'"; $del++; } } } if ( is_array($save) and count($save) > 0 ) { $save = implode(', ',$save); $db->query("UPDATE `".PREFIX."_post` SET {$save} WHERE `id` = '{$row['id']}';"); } $i++; } $per = round(100/$count['count']*$i,1); $left = 4*$per; $right = 400-$left; echo ' <script type="text/javascript"> count = "'.intval($i).'"; del = "'.intval($del).'"; percent = "'.intval($per).'"; left = "'.intval($left).'"; right = "'.intval($right).'"; </script> '; flush(); $db->free($sql); $_limit += $limit; } } ?>
შევინახოთ და ფაილს დავარქვათ fix.php
შემდეგ შევიდეთ საიტის ფტპზე და ავტვირთოთ fix.php,
გახსენით ბრაუზერში თქვენი საიტი. მაგ. http://saiti.com/fix.php და დააჭირეთ ნაჩატ. სკრიპტი დაიწყებს სიახლეების სკანირებას და თუ ნახავს ფრაიმებს ან ვირუსულ კოდებს სიახლეებში ყველას ამოშლის