В данной теме обсуждаются вопросы связанные с обфускацией кода, а также осуществлется помощь с обфускацией/деобфускацией скриптов. Ссылки на утилиты и ресурсы, которые могут помочь в деобфускации: JavaScript: http://jsbeautifier.org/ http://matthewfl.com/unPacker.html https://addons.mozilla.org/en-us/firefox/addon/javascript-deobfuscator/ (расширение для Firefox) PHP: http://ctrlq.org/beautifier/ http://beta.phpformatter.com/ Методика деобфускации PHP-скриптов для чайников. PHP Generic Eval Unpacker ByteRun PHP Decoder DeIONizer Batch (.bat-файлы Windows): Статический деобфускатор .bat-файлов.
Помогите пожалуйста распутать веревку вроде этой: PHP: <?php $OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'); $OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16}; $OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5}; $OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15}; $O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14}.$OOO000000{3}; $O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16}; $OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8}; $OOO0O0O00=__FILE__; $OO00O0000=2504; eval($OOO0000O0('aWYoITApJE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwME8wMCgkTzAwME8wTzAwLDEwMjQpOyRPME8wMDBPMDAoJE8wMDBPME8wMCw0MDk2KTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMzgwKSwnVmlBcnRTaG9wUlVMY2tLZXlZRUNPbHVQSHNUYUl2QmJEZEZmR2dKak1tTm5RcVd3WHhaejAxMjM0NTY3ODkrLz0nLCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJykpO2V2YWwoJE9PMDBPMDBPMCk7')); return;?> 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
morpeh007: после снятия обфускации \ .. остается кусок кода: Code: AFY2Hl9qa2Y1ahlbTuyD...Hu1gvhlZP25dauOjLAYXHPRdaul0sPRbaJSqsEG7AFY0LC5zsPYbvJSZUAvXHPRdaul0sPRbvJSQvuOjLAYXHPRdaul0sPRbvJSQvuOmKXMGvA0+IhSZI2OMR3idIJSqsPYgIjcjLoYZvuOmKXm9AFY0LC5zIhSZI2OMR3k1HJ1mvS9XHPgqsu50RZxJHuxzsEG7AFY0LC5XIhSZI2OMR21dTu4jUCQUsPdmvrQU скрипт его расшифровывает так: PHP: strtr(..., 'ViArtShopRULckKeyYECOluPHsTaIvBbDdFfGgJjMmNnQqWwXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'); в результате дешифровки получаем скрипт (модуль оплаты по вебмани): PHP: $va_module_id = 'WebMoneyPayment'; $va_module_func = 'process'; include_once ('./va_payment_process.php'); $purse_type = Array ( 'Z'=>'USD', 'R'=>'RUR', 'E'=>'EUR', 'C'=>'USD', 'D'=>'USD', 'U'=>'UAH', 'Y'=>'UZS', 'B'=>'BYR' ); $selected_purse = substr($pass_data['LMI_PAYEE_PURSE'],0,1); foreach ($purse_type as $type =>$currency) { if ($selected_purse == $type) { $sql = ' SELECT currency_code, exchange_rate FROM '.$table_prefix .'currencies '; $sql .= ' WHERE currency_code='.$db->tosql($currency,''); $db->query($sql); if ($db->next_record()) { $c_rate = strtoupper($db->f('exchange_rate')); } else { echo 'Извините, но у Вас нет валюты '.$currency.' в системе для проведения платежей в системе WebMoney на кошельки типа WM'.$type; return; } } } $pass_data['LMI_PAYMENT_AMOUNT'] = round($pass_data['LMI_PAYMENT_AMOUNT'] * $c_rate,2); $pass_data['LMI_RESULT_URL'] = $variables['site_url'].'payments/webmoney_response.php'; $pass_data['LMI_SUCCESS_METHOD'] = 1; $pass_data['LMI_SUCCESS_URL'] = $variables['site_url'].'order_final.php'; $pass_data['LMI_FAIL_METHOD'] = 1; $pass_data['LMI_FAIL_URL'] = $variables['site_url'].'order_final.php'; $t = new VA_Template('.'.$settings['templates_dir']); $t->set_file('main','payment.html'); $payment_name = $variables['payment_name']; $goto_payment_message = str_replace('{payment_system}',$payment_name,GOTO_PAYMENT_MSG); $goto_payment_message = str_replace('{button_name}',CONTINUE_BUTTON,$goto_payment_message); $t->set_var('GOTO_PAYMENT_MSG',$goto_payment_message); $t->set_var('payment_url','https://merchant.webmoney.ru/lmi/payment.asp'); $t->set_var('submit_method','post'); foreach ($pass_data as $parameter_name =>$parameter_value) { $t->set_var('parameter_name',$parameter_name); $t->set_var('parameter_value',$parameter_value); $t->parse('parameters',true); } $t->sparse('submit_payment',false); $t->pparse('main'); exit;
Можно поэтапно рассказать...? И пожалуйста декадируйте код <?php /* Copyright 2009 Nikolay Konokhov */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=14324;eval($OOO0000O0('JE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwT08wMCgkTzAwME8wTzAwLDB4NDk5KTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMHgxN2MpLCdFbnRlcnlvdXdraFJIWUtOV09VVEFhQmJDY0RkRmZHZ0lpSmpMbE1tUHBRcVNzVnZYeFp6MDEyMzQ1Njc4OSsvPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZhbCgkT08wME8wME8wKTs='));return;?>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dUL7tJOScB5mfoIINUnzfukScB4PkriiF2iTfuwpKXpMd3wIhtOpwe0IkoxldMf0DtEsHTSLDUE+NUEXKZOpwt0shUn7tJOUcUE9wtOwCbYPA3OZGZOpgTShDBCIherINT09wtILOMxicZElHJLpwuShkyklwtS9wtOUcTShkyklwe0IholVftLPkyklwt8IHTEpwtSPkyklwtAxHtL7tm0hkrYPcBYqWml0cUEqNUELAMA7tJOodoymwtSqKXp9tJOeDoajD0k5foAIkT0IHTE7tMlMwtIXwtr9NUELW2ilC2stGbOlhUn7tJOeDoajD0k5foAINUExHtEskrYPcBYqWml0cTShDBCIherINT09wtILOMxicZElHJLIhUn7tMlMwtIxwe09NUEPkrYPcBYqWml0cUElHJLpwuShkrYPcBYqWml0cUEqNUE5KXp9tJOeDoajD0k5foAINj49wer7tm0hgWpZcbO1FM4IkzFmRJOeDoajD0k5foAVkriiF2iTfuw7tm0hcmaVC3Opd24Ic2a0C2IPkuaZdtLIG3klfuaZdJneDoajD0iiF2IPUoyzDyaUTtILfbkShUL7gWpMfB5jfolvdJnmcbOXFJILfbkShUn7tMfSd2kidtELc29vc2xlDo9zftXLc29vc2xlfBr7tJOjDtE9woflfoYPhtO1FMXpKXPLcmEINUnEcmYvC2svFoaVhtOmd29mdoaPd3Y0ReIXRtOlFmkVdZXLcbkZF3OZReHXhTShDBCIhtOMFtLIGXPLd3a0we0IwLfyatEvF2aiFMYPN2YSDBaVfe1VCbcjdolldmWsCba0dZcjDe0LC2IMcMaifuaZcbH9AMyVDZcxNBlVcM86kuaZdtnwayOWRzrVHaxZbo4JKXPLd3a0wt49wtkaF2aZRAymcB50KJELc29vc2xlfByFFlxVwjShko91ftEVNUEJUo9zfePIkofvd2fScBivF3OFFlxVwjShko91ftEVNUEJW29VdMajfolvdjPIW2xvF2aFFlxVbukFdJw7tMc3FMl0cUILcmESko91ftL7tmfPDBxlwtIicMavcJILcmEphUn7tJOLCbOiwe0IcMflfuHPkocXRerZKtL7tJOXd3HINUnzfukXd3HPkoOiforSwlkidMsgwJL7tMlMhtOXd3HINT09wociduYlhbs9cBxzcbSh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
Вместо евал подставляешь echo чуть ниже вместо $000000 базе 64 декоде, короче экспериментируй там все легко просто мудрено зашифровано название функции base64_decode
Я пытался как то сам расшифровать код. Хотел бы получить наставление. Мой метод был такой: декодировал (urldecode) и получил символы индексных значений переменного $OOO0000O0. Далее вставив значения идексов вместо {0}{1} и т.д. получилось нечто вроде base64_decode. Мне интересно был ли я на правельном пути? И еще мне совсем не понятно с чего начинать при раскодировке последней строки Rt9ecriecriecr1gIJljP3RgIhxdH2OMR19bYGgcYl9bRZXFRZ..... Вроде бы находится за пределами php. то есть за return;?>
1. Вырезаем пробелы 2. Приводим скрипт к более читаемому виду, а именно деобфусицируем имена функций PHP: // было $OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'); $OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}; /*echo '<br>'.*/$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16}; /*echo '<br>'.*/$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5}; /*echo '<br>'.*/$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15}; /*echo '<br>'.*/$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14}; /*echo '<br>'.*/$O0O000O0O=$O0O000O00.$OOO000000{11}; /*echo '<br>'.*/$O0O000O00=$O0O000O00.$OOO000000{3}; /*echo '<br>'.*/$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16}; /*echo '<br>'.*/$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8}; $OOO0O0O00=__FILE__; $OO00O0000=14324; PHP: // стало $OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'); $OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}; $OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16}; // base64_decode $OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5}; // fopen $OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15}; // fget $O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14}; // fgetc $O0O000O0O=$O0O000O00.$OOO000000{11}; // fgets $O0O000O00=$O0O000O00.$OOO000000{3}; // fread $O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16}; // strtr $OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8}; // $self - это закодированный файл, вырезано все до самого ?> /*$OOO0O0O00*/ $self='/var/www/php.old'; /*$OO00O0000*/ $start=14324; 3. Заменим eval на echo, $OOO0000O0 на base64_decode И получим кусок кода: PHP: $O000O0O00=$OOO000O00($OOO0O0O00,'rb');$O0O00OO00($O000O0O00,0x499);$OO00O00O0=$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,0x17c),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));eval($OO00O00O0); Суем его вместо строки с eval'ом, предварительно проведя небольшое исправление PHP: // стало $file=fopen($self,'rb'); $tmp=base64_decode(strtr(fread($file,0x17c),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')); echo($tmp); 4. Получаем PHP: $OO00O00O0=str_replace('__FILE__',"'".$OOO0O0O00."'",$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,$OO00O0000),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')));fclose($O000O0O00);eval($OO00O00O0); Суем его заместо echo($tmp);, так же вроведя деобфусикацию PHP: // стало $tmp = base64_decode(strtr(fread($file,$start),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')); fclose($file); echo($tmp); 5. Получаем сорец: PHP: @session_start(); @error_reporting(7); @ini_set('display_errors',true); @ini_set('html_errors',false); define('DATALIFEENGINE',true); define('ROOT_DIR','../..'); define('ENGINE_DIR','..'); include ENGINE_DIR.'/data/config.php'; @include_once ROOT_DIR.'/language/'.$config['langs'].'/referer.lng'; @include (ENGINE_DIR.'/data/referer.perf.php'); @include (ENGINE_DIR.'/data/referer.conf.php'); @include_once ('engine/api/api.class.php'); if ($config['http_home_url'] == "") { $config['http_home_url'] = explode("engine/ajax/referer.php",$_SERVER['PHP_SELF']); $config['http_home_url'] = reset($config['http_home_url']); $config['http_home_url'] = "http://".$_SERVER['HTTP_HOST'].$config['http_home_url']; } $lic_tr = false; $site_key = str_replace("www.","",strtolower($_SERVER['HTTP_HOST'])); $site_key = md5(md5(base64_encode(md5('['.$site_key.'][43434]')))); if ($site_key == $confms['key']) $lic_tr = true; if(!$lic_tr) $confms['func_copyright'] = "yes"; function referer_block_end ($referer) { global $langms,$dle_api,$confms; if ($confms['func_copyright'] == "yes") { $copyright .= "<div align=\"right\" style=\"font-size: 9px; padding-right: 3px;\">Copyright © <a href=\"http://getdle.org.ru/\" target=\"_blank\" style=\"text-decoration: none; font-size: 9px;\">GetDLE</a></div>"; }else $copyright = ""; if (!$referer) $referer = $langms['no_seatrans']; $referer = $referer.$copyright; $dle_api->save_to_cache ( 'referer_block',$referer ); return $referer; } if ($_REQUEST['option']) { require_once ENGINE_DIR.'/classes/mysql.php'; require_once ENGINE_DIR.'/data/dbconfig.php'; require_once ROOT_DIR.'/language/'.$config['langs'].'/referer.lng'; $config['charset'] = ($lang['charset'] != '') ?$lang['charset'] : $config['charset']; require_once ENGINE_DIR.'/inc/include/functions.inc.php'; require_once ENGINE_DIR.'/modules/sitelogin.php'; } if ($_REQUEST['option'] == "activations") { $domain = strtolower($_SERVER['HTTP_HOST']); $key = trim($_REQUEST['key']); if (!@file_get_contents("http://getdle.org.ru/extras/referer/connect.txt")) { die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#FF6666;\" class=\"navigation\">Активация модуля не была произведена, не удалось установить подключение к удаленному серверу. Попробуйте повторить активацию немного позднее.</div>"); } if (!$key) { die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#FF6666;\" class=\"navigation\">Форма не была заполнена, повторите ввод ключа!</div>"); }else { $host='www.getdle.org.ru'; $path='/extras/referer/activate.php'; $query = "domain={$domain}&key={$key}"; if (@file_get_contents("http://".$host.$path."?".$query) == "yes") { include_once (ENGINE_DIR.'/data/referer.conf.php'); $site_key = str_replace("www.","",strtolower($_SERVER['HTTP_HOST'])); $site_key = md5(md5(base64_encode(md5('['.$site_key.'][43434]')))); $confms['key'] = $site_key; $handler = fopen(ENGINE_DIR.'/data/referer.conf.php',"w"); fwrite($handler,"<?PHP\r\n\$confms = array (\r\n"); foreach($confms as $name =>$value) PHP: { $value=addslashes($value); fwrite($handler,"'{$name}' => \"{$value}\",\r\n"); } fwrite($handler,");\r\n?>"); fclose($handler); die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#64c245;\" class=\"navigation\">Благодарим Вас за покупку нашего модуля. Надеемся что работа с ним доставит Вам только удовольствие! Обновите страницу, чтобы приступить к работе!</div>"); }else { die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#FF6666;\" class=\"navigation\">Активация DataLife Engine не была произведена, введенные данные не соответствуют необходимым, либо данная копия была уже активирована на другом сервере.</div>"); } }; }elseif ($_REQUEST['option'] == "checkinfo") { include ENGINE_DIR.'/data/referer.perf.php'; if (in_array($_REQUEST['site'],$engines)) $_REQUEST['site'] = $engine[$_REQUEST['site']]['0']; $url = str_replace ('www.','',$_REQUEST['site']); function getBarCY($_url) { $_uri = "http://bar-navig.yandex.ru/u?ver=2&url=". urlencode($_url)."&show=1"; $fd = @fopen($_uri,"r"); if ($fd) { while ($buffer = fgets($fd,4096)) $haystack.=$buffer; fclose($fd); preg_match("/<tcy rang=\"(.*)\" value=\"(.*)\"\/>/isU", $haystack,$cy); return (int) $cy[2]; }else return 0; } $googlehost='toolbarqueries.google.com'; $googleua='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5'; function StrToNum($Str,$Check,$Magic) { $Int32Unit = 4294967296; $length = strlen($Str); for ($i = 0;$i <$length;$i++) { $Check *= $Magic; if ($Check >= $Int32Unit) { $Check = ($Check -$Int32Unit * (int) ($Check / $Int32Unit)); $Check = ($Check <-2147483648) ?($Check +$Int32Unit) : $Check; } $Check += ord($Str{$i}); } return $Check; } PHP: function HashURL($String) { $Check1 = StrToNum($String,0x1505,0x21); $Check2 = StrToNum($String,0,0x1003F); $Check1 >>= 2; $Check1 = (($Check1 >>4) &0x3FFFFC0 ) |($Check1 &0x3F); $Check1 = (($Check1 >>4) &0x3FFC00 ) |($Check1 &0x3FF); $Check1 = (($Check1 >>4) &0x3C000 ) |($Check1 &0x3FFF); $T1 = (((($Check1 &0x3C0) <<4) |($Check1 &0x3C)) <<2 ) |($Check2 &0xF0F ); $T2 = (((($Check1 &0xFFFFC000) <<4) |($Check1 &0x3C00)) <<0xA) |($Check2 &0xF0F0000 ); return ($T1 |$T2); } function CheckHash($Hashnum) { $CheckByte = 0; $Flag = 0; $HashStr = sprintf('%u',$Hashnum); $length = strlen($HashStr); for ($i = $length -1;$i >= 0;$i --) { $Re = $HashStr{$i}; if (1 === ($Flag %2)) { $Re += $Re; $Re = (int)($Re / 10) +($Re %10); } $CheckByte += $Re; $Flag ++; } $CheckByte %= 10; if (0 !== $CheckByte) { $CheckByte = 10 -$CheckByte; if (1 === ($Flag %2) ) { if (1 === ($CheckByte %2)) { $CheckByte += 9; } $CheckByte >>= 1; } } return '7'.$CheckByte.$HashStr; } function getch($url) {return CheckHash(HashURL($url));} function getpr($url) { global $googlehost,$googleua; $ch = getch($url); $fp = @fsockopen($googlehost,80,$errno,$errstr,30); if ($fp) { $out = "GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n"; $out .= "User-Agent: $googleua\r\n"; $out .= "Host: $googlehost\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp,$out); while (!feof($fp)) { $data = fgets($fp,128); $pos = strpos($data,"Rank_"); if($pos === false){}else{ $pr=substr($data,$pos +9); $pr=trim($pr); $pr=str_replace("\n",'',$pr); return $pr; } } fclose($fp); } } if(!getpr($url)) { $pr = "0"; }else { $pr = getpr($url); } $tic = getBarCY("http://".$url); function dmoz($url) { $path ="http://search.dmoz.org/cgi-bin/search?search=".str_replace("www.","",$url); if(!file_exists($path)) { $data = strip_tags(@implode("",@file($path))); if(strpos($data,"No Open Directory Project results found")) { $results = '<a target="_blank" href="http://search.dmoz.org/cgi-bin/search?search='.str_replace("www.","",$url).'">Не описан</a>'; }else { $results = '<a target="_blank" href="http://search.dmoz.org/cgi-bin/search?search='.str_replace("www.","",$url).'">Есть</a>'; } }else { $results = 'нет данных'; } PHP: return $results; } $zurl = preg_replace("/^(http:\/\/)/i","",$url); $zurl = preg_replace("/\/(.*)$/i","",$zurl); $parse_ya = @file_get_contents('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://'.$zurl); function get_yaca($url){ global $parse_ya,$zurl; preg_match('/<topic title="(.*)" url="(.*)"\/>/i',$parse_ya,$patterns); $lnk_cat = $patterns[2]; $res = array(); array_push($res,$patterns[1]); array_push($res,count($patterns[2])); if(!empty($res[0])){ return 'Есть - <a href="'.$lnk_cat.'">'.$res[0].'</a>'; }else{ return "<a target=\"_blank\" href=\"http://search.yaca.yandex.ru/yca/cy/ch/{$zurl}/\">Не описан</a>"; } } $dmoz = dmoz($url); $yaca = get_yaca($url); $info .= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td><img alt=\"Это скриншот сайта {$_REQUEST['site']}.\" src=\"http://images.websnapr.com/?url={$_REQUEST['site']}&size=t&nocache=90\" style=\"height:70px; width:90px;\"></td> <td> PageRang: <b>{$pr}</b>; Яндекс тИЦ: <b>{$tic}</b>;<br /> Каталог DMOZ: {$dmoz}<br /> Каталог Yandex: {$yaca}<br /><br /> <a href=\"http://{$_REQUEST['site']}\" target=\"_blank\">Перейти на сайт →</a> </td> </tr> </table>"; die($info); }elseif ($_REQUEST['option'] == "addipignor") { $site_tog = stristr($confms['ip_ignor'],$_REQUEST['ip']); if($site_tog) die("Ошибка! IP-адрес {$_REQUEST['ip']} уже был занесен в список игнорируемых IP-адресов."); if ($confms['ip_ignor']) { $confms['ip_ignor'] = $confms['ip_ignor'].", ".$_REQUEST['ip']; }else { $confms['ip_ignor'] = $_REQUEST['ip']; } $handler = fopen(ENGINE_DIR.'/data/referer.conf.php',"w"); fwrite($handler,"<?PHP \r\n\$confms = array (\r\n"); foreach($confms as $name =>$value) { $value=trim(stripslashes ($value)); $value=htmlspecialchars ($value,ENT_QUOTES); fwrite($handler,"'{$name}' => \"{$value}\",\r\n"); } fwrite($handler,");\r\n?>"); fclose($handler); die("IP-адрес {$_REQUEST['ip']} занесен в список игнорируемых IP-адресов."); }elseif ($_REQUEST['option'] == "addignor") { $site_tog = stristr($confms['site_ignor'],$_REQUEST['site']); if($site_tog) die("Ошибка! Сайт {$_REQUEST['site']} уже был занесен в список игнорируемых сайтов."); if ($confms['site_ignor']) { $confms['site_ignor'] = $confms['site_ignor'].", ".$_REQUEST['site']; }else { $confms['site_ignor'] = $_REQUEST['site']; } PHP: $handler = fopen(ENGINE_DIR.'/data/referer.conf.php',"w"); fwrite($handler,"<?PHP \r\n\$confms = array (\r\n"); foreach($confms as $name =>$value) { $value=trim(stripslashes ($value)); $value=htmlspecialchars ($value,ENT_QUOTES); fwrite($handler,"'{$name}' => \"{$value}\",\r\n"); } fwrite($handler,");\r\n?>"); fclose($handler); die("Сайт {$_REQUEST['site']} занесен в список игнорируемых сайтов."); }elseif ($_REQUEST['option'] == "confirmdelete") { $db->query ("DELETE FROM ".PREFIX ."_referer WHERE id = '".$_REQUEST['id'] ."'"); if(($member_id['user_group'] != 1)) {die ("error");} if ($_REQUEST['user_hash'] == ""OR $_REQUEST['user_hash'] != $dle_login_hash) { die ("error"); } die("<div class=\"refer-del\" alt=\"".$langms['sea_delete_info']."\">".$langms['sea_delete']."</div>"); }elseif ($_REQUEST['option'] == "checkupd") { $update = @file_get_contents("http://www.getdle.org.ru/extras/referer/version.txt"); if($update >$langms['version']) $info = $langms['ref_upd_01']; elseif($update == $langms['version']) $info = $langms['ref_upd_02']; elseif($update == "") {$update = "--";$info = $langms['ref_upd_03'];} elseif($update <$langms['version']) $info = $langms['ref_upd_04']; die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190);padding: 5px;margin-top: 7px;margin-right: 10px;\">Последняя версия: ".$update." (".$info.")</div>"); }
Alex$09: PHP: @session_start(); @error_reporting(7); @ini_set('display_errors',true); @ini_set('html_errors',false); define('DATALIFEENGINE',true); define('ROOT_DIR','../..'); define('ENGINE_DIR','..'); include ENGINE_DIR.'/data/config.php'; @include_once ROOT_DIR.'/language/'.$config['langs'].'/referer.lng'; @include (ENGINE_DIR.'/data/referer.perf.php'); @include (ENGINE_DIR.'/data/referer.conf.php'); @include_once ('engine/api/api.class.php'); if ($config['http_home_url'] == "") { $config['http_home_url'] = explode("engine/ajax/referer.php",$_SERVER['PHP_SELF']); $config['http_home_url'] = reset($config['http_home_url']); $config['http_home_url'] = "http://".$_SERVER['HTTP_HOST'].$config['http_home_url']; } $lic_tr = false; $site_key = str_replace("www.","",strtolower($_SERVER['HTTP_HOST'])); $site_key = md5(md5(base64_encode(md5('['.$site_key.'][43434]')))); if ($site_key == $confms['key']) $lic_tr = true; if(!$lic_tr) $confms['func_copyright'] = "yes"; function referer_block_end ($referer) { global $langms,$dle_api,$confms; if ($confms['func_copyright'] == "yes") { $copyright .= "<div align=\"right\" style=\"font-size: 9px; padding-right: 3px;\">Copyright © <a href=\"http://getdle.org.ru/\" target=\"_blank\" style=\"text-decoration: none; font-size: 9px;\">GetDLE</a></div>"; }else $copyright = ""; if (!$referer) $referer = $langms['no_seatrans']; $referer = $referer.$copyright; $dle_api->save_to_cache ( 'referer_block',$referer ); return $referer; } if ($_REQUEST['option']) { require_once ENGINE_DIR.'/classes/mysql.php'; require_once ENGINE_DIR.'/data/dbconfig.php'; require_once ROOT_DIR.'/language/'.$config['langs'].'/referer.lng'; $config['charset'] = ($lang['charset'] != '') ?$lang['charset'] : $config['charset']; require_once ENGINE_DIR.'/inc/include/functions.inc.php'; require_once ENGINE_DIR.'/modules/sitelogin.php'; } if ($_REQUEST['option'] == "activations") { $domain = strtolower($_SERVER['HTTP_HOST']); $key = trim($_REQUEST['key']); if (!@file_get_contents("http://getdle.org.ru/extras/referer/connect.txt")) { die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#FF6666;\" class=\"navigation\">Активация модуля не была произведена, не удалось установить подключение к удаленному серверу. Попробуйте повторить активацию немного позднее.</div>"); } if (!$key) { die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#FF6666;\" class=\"navigation\">Форма не была заполнена, повторите ввод ключа!</div>"); }else { $host='www.getdle.org.ru'; $path='/extras/referer/activate.php'; $query = "domain={$domain}&key={$key}"; if (@file_get_contents("http://".$host.$path."?".$query) == "yes") { include_once (ENGINE_DIR.'/data/referer.conf.php'); $site_key = str_replace("www.","",strtolower($_SERVER['HTTP_HOST'])); $site_key = md5(md5(base64_encode(md5('['.$site_key.'][43434]')))); $confms['key'] = $site_key; $handler = fopen(ENGINE_DIR.'/data/referer.conf.php',"w"); fwrite($handler," \"{$value}\",\r\n"); } fwrite($handler,");\r\n?>"); fclose($handler); die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#64c245;\" class=\"navigation\">Благодарим Вас за покупку нашего модуля. Надеемся что работа с ним доставит Вам только удовольствие! Обновите страницу, чтобы приступить к работе!</div>"); }else { die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#FF6666;\" class=\"navigation\">Активация DataLife Engine не была произведена, введенные данные не соответствуют необходимым, либо данная копия была уже активирована на другом сервере.</div>"); } }; }elseif ($_REQUEST['option'] == "checkinfo") { include ENGINE_DIR.'/data/referer.perf.php'; if (in_array($_REQUEST['site'],$engines)) $_REQUEST['site'] = $engine[$_REQUEST['site']]['0']; $url = str_replace ('www.','',$_REQUEST['site']); function getBarCY($_url) { $_uri = "http://bar-navig.yandex.ru/u?ver=2&url=". urlencode($_url)."&show=1"; $fd = @fopen($_uri,"r"); if ($fd) { while ($buffer = fgets($fd,4096)) $haystack.=$buffer; fclose($fd); preg_match("/<tcy rang=\"(.*)\" value=\"(.*)\"\/>/isU", $haystack,$cy); return (int) $cy[2]; }else return 0; } $googlehost='toolbarqueries.google.com'; $googleua='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5'; function StrToNum($Str,$Check,$Magic) { $Int32Unit = 4294967296; $length = strlen($Str); for ($i = 0;$i <$length;$i++) { $Check *= $Magic; if ($Check >= $Int32Unit) { $Check = ($Check -$Int32Unit * (int) ($Check / $Int32Unit)); $Check = ($Check <-2147483648) ?($Check +$Int32Unit) : $Check; } $Check += ord($Str{$i}); } return $Check; } function HashURL($String) { $Check1 = StrToNum($String,0x1505,0x21); $Check2 = StrToNum($String,0,0x1003F); $Check1 >>= 2; $Check1 = (($Check1 >>4) &0x3FFFFC0 ) |($Check1 &0x3F); $Check1 = (($Check1 >>4) &0x3FFC00 ) |($Check1 &0x3FF); $Check1 = (($Check1 >>4) &0x3C000 ) |($Check1 &0x3FFF); $T1 = (((($Check1 &0x3C0) <<4) |($Check1 &0x3C)) <<2 ) |($Check2 &0xF0F ); $T2 = (((($Check1 &0xFFFFC000) <<4) |($Check1 &0x3C00)) <<0xA) |($Check2 &0xF0F0000 ); return ($T1 |$T2); } function CheckHash($Hashnum) { $CheckByte = 0; $Flag = 0; $HashStr = sprintf('%u',$Hashnum); $length = strlen($HashStr); for ($i = $length -1;$i >= 0;$i --) { $Re = $HashStr{$i}; if (1 === ($Flag %2)) { $Re += $Re; $Re = (int)($Re / 10) +($Re %10); } $CheckByte += $Re; $Flag ++; } $CheckByte %= 10; if (0 !== $CheckByte) { $CheckByte = 10 -$CheckByte; if (1 === ($Flag %2) ) { if (1 === ($CheckByte %2)) { $CheckByte += 9; } $CheckByte >>= 1; } } return '7'.$CheckByte.$HashStr; } function getch($url) {return CheckHash(HashURL($url));} function getpr($url) { global $googlehost,$googleua; $ch = getch($url); $fp = @fsockopen($googlehost,80,$errno,$errstr,30); if ($fp) { $out = "GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n"; $out .= "User-Agent: $googleua\r\n"; $out .= "Host: $googlehost\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp,$out); while (!feof($fp)) { $data = fgets($fp,128); $pos = strpos($data,"Rank_"); if($pos === false){}else{ $pr=substr($data,$pos +9); $pr=trim($pr); $pr=str_replace("\n",'',$pr); return $pr; } } fclose($fp); } } if(!getpr($url)) { $pr = "0"; }else { $pr = getpr($url); } $tic = getBarCY("http://".$url); function dmoz($url) { $path ="http://search.dmoz.org/cgi-bin/search?search=".str_replace("www.","",$url); if(!file_exists($path)) { $data = strip_tags(@implode("",@file($path))); if(strpos($data,"No Open Directory Project results found")) { $results = '<a target="_blank" href="http://search.dmoz.org/cgi-bin/search?search='.str_replace("www.","",$url).'">Не описан</a>'; }else { $results = '<a target="_blank" href="http://search.dmoz.org/cgi-bin/search?search='.str_replace("www.","",$url).'">Есть</a>'; } }else { $results = 'нет данных'; } return $results; } $zurl = preg_replace("/^(http:\/\/)/i","",$url); $zurl = preg_replace("/\/(.*)$/i","",$zurl); $parse_ya = @file_get_contents('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://'.$zurl); function get_yaca($url){ global $parse_ya,$zurl; preg_match('/<topic title="(.*)" url="(.*)"\/>/i',$parse_ya,$patterns); $lnk_cat = $patterns[2]; $res = array(); array_push($res,$patterns[1]); array_push($res,count($patterns[2])); if(!empty($res[0])){ return 'Есть - <a href="'.$lnk_cat.'">'.$res[0].'</a>'; }else{ return "<a target=\"_blank\" href=\"http://search.yaca.yandex.ru/yca/cy/ch/{$zurl}/\">Не описан</a>"; } } $dmoz = dmoz($url); $yaca = get_yaca($url); $info .= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td><img alt=\"Это скриншот сайта {$_REQUEST['site']}.\" src=\"http://images.websnapr.com/?url={$_REQUEST['site']}&size=t&nocache=90\" style=\"height:70px; width:90px;\"></td> <td> PageRang: <b>{$pr}</b>; Яндекс тИЦ: <b>{$tic}</b>;<br /> Каталог DMOZ: {$dmoz}<br /> Каталог Yandex: {$yaca}<br /><br /> <a href=\"http://{$_REQUEST['site']}\" target=\"_blank\">Перейти на сайт →</a> </td> </tr> </table>"; die($info); }elseif ($_REQUEST['option'] == "addipignor") { $site_tog = stristr($confms['ip_ignor'],$_REQUEST['ip']); if($site_tog) die("Ошибка! IP-адрес {$_REQUEST['ip']} уже был занесен в список игнорируемых IP-адресов."); if ($confms['ip_ignor']) { $confms['ip_ignor'] = $confms['ip_ignor'].", ".$_REQUEST['ip']; }else { $confms['ip_ignor'] = $_REQUEST['ip']; } $handler = fopen(ENGINE_DIR.'/data/referer.conf.php',"w"); fwrite($handler," \"{$value}\",\r\n"); } fwrite($handler,");\r\n?>"); fclose($handler); die("IP-адрес {$_REQUEST['ip']} занесен в список игнорируемых IP-адресов."); }elseif ($_REQUEST['option'] == "addignor") { $site_tog = stristr($confms['site_ignor'],$_REQUEST['site']); if($site_tog) die("Ошибка! Сайт {$_REQUEST['site']} уже был занесен в список игнорируемых сайтов."); if ($confms['site_ignor']) { $confms['site_ignor'] = $confms['site_ignor'].", ".$_REQUEST['site']; }else { $confms['site_ignor'] = $_REQUEST['site']; } $handler = fopen(ENGINE_DIR.'/data/referer.conf.php',"w"); fwrite($handler," \"{$value}\",\r\n"); } fwrite($handler,");\r\n?>"); fclose($handler); die("Сайт {$_REQUEST['site']} занесен в список игнорируемых сайтов."); }elseif ($_REQUEST['option'] == "confirmdelete") { $db->query ("DELETE FROM ".PREFIX ."_referer WHERE id = '".$_REQUEST['id'] ."'"); if(($member_id['user_group'] != 1)) {die ("error");} if ($_REQUEST['user_hash'] == ""OR $_REQUEST['user_hash'] != $dle_login_hash) { die ("error"); } die("<div class=\"refer-del\" alt=\"".$langms['sea_delete_info']."\">".$langms['sea_delete']."</div>"); }elseif ($_REQUEST['option'] == "checkupd") { $update = @file_get_contents("http://www.getdle.org.ru/extras/referer/version.txt"); if($update >$langms['version']) $info = $langms['ref_upd_01']; elseif($update == $langms['version']) $info = $langms['ref_upd_02']; elseif($update == "") {$update = "--";$info = $langms['ref_upd_03'];} elseif($update <$langms['version']) $info = $langms['ref_upd_04']; die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190);padding: 5px;margin-top: 7px;margin-right: 10px;\">Последняя версия: ".$update." (".$info.")</div>"); }
в основе етих двух скриптов- ф-ция strtr. - сперва делает base64_decode куска кода - исполняя его, читает сам себя - пропускат начало файла - код, и читает текст, начиная от ?>... - сперва читает N символов, применяет для них strtr, потом бейс64 - потом опять исполняет его, и читает оставшеюся часть кода - делает с ним тоже strtr и base64_decode - на выходе - чистиый код з.ы: PHP: $db->query ("DELETE FROM ".PREFIX ."_referer WHERE id = '".$_REQUEST['id'] ."'");
Спасибо за код, но я незнаю он правельно переведен или нет но когда я его подменяю он не хочет работать(
помогите расшифровать: Code: 87f57a460c276ab1405143ad91ecb2ccd1458198d5a91537916c78a3f6555bca3195fbb1b765c28fee886a1346f579b10aca8d004100159c4c3642b289407af32b74df9a3ffab4b9df8557f653a3feb7ddb93783b0f9c9d8eb93e3e85e349a1b662b5a864686f30e083c27a86c5d1df00feb90da845ec88182ba0d937e3abc7e0a713c2d11dc129981934a28cd25b972eb3dadb1bb88bc7e8994ce18eb8ae022ba097bb39e3a0be50a5b5aafc219717e6ddbfd930fae3c4000a00770ef60fe975d48f441ff505f2ab85eed6ee246ea3a550dfaa234bbf0ca7d42154c9cd3458b6f7520f34fdb56924e70445c4945ef6629d82fbc0818e876b5836c72079aed532b9ddf63f3d8c96f871bf24daeedb210ae3d060b767fee5abb19c3d029d1d1ccefecefe177c376f9aec77bcdf890fb9e527dad866888858972877047e659132c5d4de3741e7b0043b1a192d5e48b991e0f6818f0c2fdc7ad631fc119e480e9ca3cc71df51eff4acd6777dfc151b4d0d63cc4ee0f45174b2259788d3a15796694
дублирую тут. та обфускация снялась на автомате такой штукой. (исходный файл сохранен c:/referer.php PHP: <?php $f = file_get_contents("c:/referer.php"); preg_match("#\<\?php(.+)\?\>#i", $f, $match); $f = str_replace("eval", "echo", $match[1]); ob_start(); eval($f); $f = ob_get_contents(); ob_flush(); $OOO0O0O00 = "c:/referer.php"; for($x=1;$x<=2;$x++){ $f = str_replace("eval", "echo", $f); ob_start(); eval($f); $f = ob_get_contents(); ob_flush(); } echo $f; ?>
пособие вижу пошло много одинаковых скриптов аля "Copyright 2009 Nikolay Konokhov".. как его расшифровать: открывает файл блокнотом ищем "return;?>", после него идет зашифрований код удаляем все, оставляем только зашифрований код пропускаем 380 символов, начиная с начала етого кода ( или: ищем первую позицию: "==") удаляем первых 380 символов (или текст до "==") далее создаем php код: PHP: $s = 'тут весь код что остался'; echo base64_decode(strtr($s,'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')); запускаем скрипт и видем расшифрованный вариант
Mafy: PHP: @session_start(); @error_reporting(7); @ini_set('display_errors',true); @ini_set('html_errors',false); define('DATALIFEENGINE',true); define('ROOT_DIR','../..'); define('ENGINE_DIR','..'); include ENGINE_DIR.'/data/config.php'; @include_once ROOT_DIR.'/language/'.$config['langs'].'/referer.lng'; @include (ENGINE_DIR.'/data/referer.perf.php'); @include (ENGINE_DIR.'/data/referer.conf.php'); @include_once ('engine/api/api.class.php'); if ($config['http_home_url'] == "") { $config['http_home_url'] = explode("engine/ajax/referer.php",$_SERVER['PHP_SELF']); $config['http_home_url'] = reset($config['http_home_url']); $config['http_home_url'] = "http://".$_SERVER['HTTP_HOST'].$config['http_home_url']; } $lic_tr = false; $site_key = str_replace("www.","",strtolower($_SERVER['HTTP_HOST'])); $site_key = md5(md5(base64_encode(md5('['.$site_key.'][43434]')))); if ($site_key == $confms['key']) $lic_tr = true; if(!$lic_tr) $confms['func_copyright'] = "yes"; function referer_block_end ($referer) { global $langms,$dle_api,$confms; if ($confms['func_copyright'] == "yes") { $copyright .= "<div align=\"right\" style=\"font-size: 9px; padding-right: 3px;\">Copyright © <a href=\"http://getdle.org.ru/\" target=\"_blank\" style=\"text-decoration: none; font-size: 9px;\">GetDLE</a></div>"; }else $copyright = ""; if (!$referer) $referer = $langms['no_seatrans']; $referer = $referer.$copyright; $dle_api->save_to_cache ( 'referer_block',$referer ); return $referer; } if ($_REQUEST['option']) { require_once ENGINE_DIR.'/classes/mysql.php'; require_once ENGINE_DIR.'/data/dbconfig.php'; require_once ROOT_DIR.'/language/'.$config['langs'].'/referer.lng'; $config['charset'] = ($lang['charset'] != '') ?$lang['charset'] : $config['charset']; require_once ENGINE_DIR.'/inc/include/functions.inc.php'; require_once ENGINE_DIR.'/modules/sitelogin.php'; } if ($_REQUEST['option'] == "activations") { $domain = strtolower($_SERVER['HTTP_HOST']); $key = trim($_REQUEST['key']); if (!@file_get_contents("http://getdle.org.ru/extras/referer/connect.txt")) { die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#FF6666;\" class=\"navigation\">Активация модуля не была произведена, не удалось установить подключение к удаленному серверу. Попробуйте повторить активацию немного позднее.</div>"); } if (!$key) { die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#FF6666;\" class=\"navigation\">Форма не была заполнена, повторите ввод ключа!</div>"); }else { $host='www.getdle.org.ru'; $path='/extras/referer/activate.php'; $query = "domain={$domain}&key={$key}"; if (@file_get_contents("http://".$host.$path."?".$query) == "yes") { include_once (ENGINE_DIR.'/data/referer.conf.php'); $site_key = str_replace("www.","",strtolower($_SERVER['HTTP_HOST'])); $site_key = md5(md5(base64_encode(md5('['.$site_key.'][43434]')))); $confms['key'] = $site_key; $handler = fopen(ENGINE_DIR.'/data/referer.conf.php',"w"); fwrite($handler,"<?PHP\r\n\$confms = array (\r\n"); foreach($confms as $name =>$value) { $value=addslashes($value); fwrite($handler,"'{$name}' => \"{$value}\",\r\n"); } fwrite($handler,");\r\n?>"); fclose($handler); die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#64c245;\" class=\"navigation\">Благодарим Вас за покупку нашего модуля. Надеемся что работа с ним доставит Вам только удовольствие! Обновите страницу, чтобы приступить к работе!</div>"); }else { die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190); padding: 5px; color:#FF6666;\" class=\"navigation\">Активация DataLife Engine не была произведена, введенные данные не соответствуют необходимым, либо данная копия была уже активирована на другом сервере.</div>"); } }; }elseif ($_REQUEST['option'] == "checkinfo") { include ENGINE_DIR.'/data/referer.perf.php'; if (in_array($_REQUEST['site'],$engines)) $_REQUEST['site'] = $engine[$_REQUEST['site']]['0']; $url = str_replace ('www.','',$_REQUEST['site']); function getBarCY($_url) { $_uri = "http://bar-navig.yandex.ru/u?ver=2&url=". urlencode($_url)."&show=1"; $fd = @fopen($_uri,"r"); if ($fd) { while ($buffer = fgets($fd,4096)) $haystack.=$buffer; fclose($fd); preg_match("/<tcy rang=\"(.*)\" value=\"(.*)\"\/>/isU", $haystack,$cy); return (int) $cy[2]; }else return 0; } $googlehost='toolbarqueries.google.com'; $googleua='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5'; function StrToNum($Str,$Check,$Magic) { $Int32Unit = 4294967296; $length = strlen($Str); for ($i = 0;$i <$length;$i++) { $Check *= $Magic; if ($Check >= $Int32Unit) { $Check = ($Check -$Int32Unit * (int) ($Check / $Int32Unit)); $Check = ($Check <-2147483648) ?($Check +$Int32Unit) : $Check; } $Check += ord($Str{$i}); } return $Check; } function HashURL($String) { $Check1 = StrToNum($String,0x1505,0x21); $Check2 = StrToNum($String,0,0x1003F); $Check1 >>= 2; $Check1 = (($Check1 >>4) &0x3FFFFC0 ) |($Check1 &0x3F); $Check1 = (($Check1 >>4) &0x3FFC00 ) |($Check1 &0x3FF); $Check1 = (($Check1 >>4) &0x3C000 ) |($Check1 &0x3FFF); $T1 = (((($Check1 &0x3C0) <<4) |($Check1 &0x3C)) <<2 ) |($Check2 &0xF0F ); $T2 = (((($Check1 &0xFFFFC000) <<4) |($Check1 &0x3C00)) <<0xA) |($Check2 &0xF0F0000 ); return ($T1 |$T2); } function CheckHash($Hashnum) { $CheckByte = 0; $Flag = 0; $HashStr = sprintf('%u',$Hashnum); $length = strlen($HashStr); for ($i = $length -1;$i >= 0;$i --) { $Re = $HashStr{$i}; if (1 === ($Flag %2)) { $Re += $Re; $Re = (int)($Re / 10) +($Re %10); } $CheckByte += $Re; $Flag ++; } $CheckByte %= 10; if (0 !== $CheckByte) { $CheckByte = 10 -$CheckByte; if (1 === ($Flag %2) ) { if (1 === ($CheckByte %2)) { $CheckByte += 9; } $CheckByte >>= 1; } } return '7'.$CheckByte.$HashStr; } function getch($url) {return CheckHash(HashURL($url));} function getpr($url) { global $googlehost,$googleua; $ch = getch($url); $fp = @fsockopen($googlehost,80,$errno,$errstr,30); if ($fp) { $out = "GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n"; $out .= "User-Agent: $googleua\r\n"; $out .= "Host: $googlehost\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp,$out); while (!feof($fp)) { $data = fgets($fp,128); $pos = strpos($data,"Rank_"); if($pos === false){}else{ $pr=substr($data,$pos +9); $pr=trim($pr); $pr=str_replace("\n",'',$pr); return $pr; } } fclose($fp); } } if(!getpr($url)) { $pr = "0"; }else { $pr = getpr($url); } $tic = getBarCY("http://".$url); function dmoz($url) { $path ="http://search.dmoz.org/cgi-bin/search?search=".str_replace("www.","",$url); if(!file_exists($path)) { $data = strip_tags(@implode("",@file($path))); if(strpos($data,"No Open Directory Project results found")) { $results = '<a target="_blank" href="http://search.dmoz.org/cgi-bin/search?search='.str_replace("www.","",$url).'">Не описан</a>'; }else { $results = '<a target="_blank" href="http://search.dmoz.org/cgi-bin/search?search='.str_replace("www.","",$url).'">Есть</a>'; } }else { $results = 'нет данных'; } return $results; } $zurl = preg_replace("/^(http:\/\/)/i","",$url); $zurl = preg_replace("/\/(.*)$/i","",$zurl); $parse_ya = @file_get_contents('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://'.$zurl); function get_yaca($url){ global $parse_ya,$zurl; preg_match('/<topic title="(.*)" url="(.*)"\/>/i',$parse_ya,$patterns); $lnk_cat = $patterns[2]; $res = array(); array_push($res,$patterns[1]); array_push($res,count($patterns[2])); if(!empty($res[0])){ return 'Есть - <a href="'.$lnk_cat.'">'.$res[0].'</a>'; }else{ return "<a target=\"_blank\" href=\"http://search.yaca.yandex.ru/yca/cy/ch/{$zurl}/\">Не описан</a>"; } } $dmoz = dmoz($url); $yaca = get_yaca($url); $info .= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td><img alt=\"Это скриншот сайта {$_REQUEST['site']}.\" src=\"http://images.websnapr.com/?url={$_REQUEST['site']}&size=t&nocache=90\" style=\"height:70px; width:90px;\"></td> <td> PageRang: <b>{$pr}</b>; Яндекс тИЦ: <b>{$tic}</b>;<br /> Каталог DMOZ: {$dmoz}<br /> Каталог Yandex: {$yaca}<br /><br /> <a href=\"http://{$_REQUEST['site']}\" target=\"_blank\">Перейти на сайт →</a> </td> </tr> </table>"; die($info); }elseif ($_REQUEST['option'] == "addipignor") { $site_tog = stristr($confms['ip_ignor'],$_REQUEST['ip']); if($site_tog) die("Ошибка! IP-адрес {$_REQUEST['ip']} уже был занесен в список игнорируемых IP-адресов."); if ($confms['ip_ignor']) { $confms['ip_ignor'] = $confms['ip_ignor'].", ".$_REQUEST['ip']; }else { $confms['ip_ignor'] = $_REQUEST['ip']; } $handler = fopen(ENGINE_DIR.'/data/referer.conf.php',"w"); fwrite($handler,"<?PHP \r\n\$confms = array (\r\n"); foreach($confms as $name =>$value) { $value=trim(stripslashes ($value)); $value=htmlspecialchars ($value,ENT_QUOTES); fwrite($handler,"'{$name}' => \"{$value}\",\r\n"); } fwrite($handler,");\r\n?>"); fclose($handler); die("IP-адрес {$_REQUEST['ip']} занесен в список игнорируемых IP-адресов."); }elseif ($_REQUEST['option'] == "addignor") { $site_tog = stristr($confms['site_ignor'],$_REQUEST['site']); if($site_tog) die("Ошибка! Сайт {$_REQUEST['site']} уже был занесен в список игнорируемых сайтов."); if ($confms['site_ignor']) { $confms['site_ignor'] = $confms['site_ignor'].", ".$_REQUEST['site']; }else { $confms['site_ignor'] = $_REQUEST['site']; } $handler = fopen(ENGINE_DIR.'/data/referer.conf.php',"w"); fwrite($handler,"<?PHP \r\n\$confms = array (\r\n"); foreach($confms as $name =>$value) { $value=trim(stripslashes ($value)); $value=htmlspecialchars ($value,ENT_QUOTES); fwrite($handler,"'{$name}' => \"{$value}\",\r\n"); } fwrite($handler,");\r\n?>"); fclose($handler); die("Сайт {$_REQUEST['site']} занесен в список игнорируемых сайтов."); }elseif ($_REQUEST['option'] == "confirmdelete") { $db->query ("DELETE FROM ".PREFIX ."_referer WHERE id = '".$_REQUEST['id'] ."'"); if(($member_id['user_group'] != 1)) {die ("error");} if ($_REQUEST['user_hash'] == ""OR $_REQUEST['user_hash'] != $dle_login_hash) { die ("error"); } die("<div class=\"refer-del\" alt=\"".$langms['sea_delete_info']."\">".$langms['sea_delete']."</div>"); }elseif ($_REQUEST['option'] == "checkupd") { $update = @file_get_contents("http://www.getdle.org.ru/extras/referer/version.txt"); if($update >$langms['version']) $info = $langms['ref_upd_01']; elseif($update == $langms['version']) $info = $langms['ref_upd_02']; elseif($update == "") {$update = "--";$info = $langms['ref_upd_03'];} elseif($update <$langms['version']) $info = $langms['ref_upd_04']; die("<div style=\"background: lightyellow;border:1px dotted rgb(190,190,190);padding: 5px;margin-top: 7px;margin-right: 10px;\">Последняя версия: ".$update." (".$info.")</div>"); }
Написал небольшой деобфускатор кода Николая Конокова. Он деобфусцирует код, который обфусцирован обфускатором Николая Конокова. Не буду запутывать вас - если у вас есть непонятный вам код, в котором вначале присутствует строка Code: Copyright 2009 Nikolay Konokhov то можете смело использовать мой декодер (деобфускатор), который находится по адресу: http://mailbrush.eu/tools/decoder.php Спасибо eLWAux'y за точный фак по деобфускции этого кода.