Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Обфускация кода (вопросы, просьбы зашифровать/расшифровать скрипт ) (https://forum.antichat.xyz/showthread.php?t=144505)

Sharky 29.09.2009 21:06

Обфускация кода (вопросы, просьбы зашифровать/расшифровать скрипт )
 
В данной теме обсуждаются вопросы связанные с обфускацией кода, а также осуществлется помощь с обфускацией/деобфускацией скриптов.

m0Hze 01.10.2009 01:21

Ну bace64 можно легко декодировать,а вот называния переменных к исходным никак не вернуть насколько я знаю.

LolFEm 01.10.2009 01:31

небольшой обзор обфускаторов

morpeh007 01.10.2009 01:35

Помогите пожалуйста распутать веревку вроде этой:
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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


eLWAux 01.10.2009 02:25

morpeh007:

после снятия обфускации \ .. остается кусок кода:
Код:

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; 


morpeh007 01.10.2009 02:40

Ой спасибки!
А можно узнать чем такие орехи раскалывать. Потому что есть еще 3 штуки.

eLWAux 01.10.2009 17:29

Цитата:

Сообщение от morpeh007
Ой спасибки!
А можно узнать чем такие орехи раскалывать. Потому что есть еще 3 штуки.

часто просто помогает подстановка "echo" вместо "eval", и анализ кода

Alex$09 01.10.2009 22:06

Цитата:

Сообщение от eLWAux
часто просто помогает подстановка "echo" вместо "eval", и анализ кода

Можно поэтапно рассказать...?
И пожалуйста декадируйте код

<?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};$OOO000 0O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$ OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000 {11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O OO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7 }.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO0000 00{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$ O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0 O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OO O000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{ 16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO00 0000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__ FILE__;$OO00O0000=14324;eval($OOO0000O0('JE8wMDBPM E8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzA wT08wMCgkTzAwME8wTzAwLDB4NDk5KTskT08wME8wME8wPSRPT 08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzB PMDAsMHgxN2MpLCdFbnRlcnlvdXdraFJIWUtOV09VVEFhQmJDY 0RkRmZHZ0lpSmpMbE1tUHBRcVNzVnZYeFp6MDEyMzQ1Njc4OSs vPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ 2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZ hbCgkT08wME8wME8wKTs='));return;?>kr9NHenNHenNHe1z fukgFMaXdoyjcUImb19oUAxyb18mRtwmwJ4LT09NHr8XTzEXRJ wmwJXLT09NHeEXHr8XhtONT08XHeEXHr8Pkr8XTzEXT08XHtIL TzEXHr8XTzEXRtONTzEXTzEXHeEpRtfydmOlFmlvfbfqDykwBA sKa09aaryiWMkeC0OLOMcuc0lpUMpHdr1sAunOFaYzamcCGyp6 HerZHzW1YjF4KUSvNUFSk0ytW0OyOLfwUApRTr1KT1nOAlYAaa cbBylDCBkjcoaMc2ipDMsSdB5vFuyZF3O1fmf4GbPXHTwzYeA2 YzI5hZ8mhULpK2cjdo9zcUILTzEXHr8XTzEXhTslfMyShtONTz EXTzEXTzEpKX==tLnzcbYzDB9Vb3Y0Cbk0htL7tLnlFmkvFl9Z cbnvFmOpdMFPYZL7tLnpdMlgF2a0htfLDbYXdoy5b2aZFM9ZFZ FSfuk1cUL7tLnpdMlgF2a0htfPfo1Sb2aZFM9ZFZFScMySF2Ap KXpLcBcpdMAPk0OnaryHUAcyOA5uUA5ykZx0FmalhTShcoaMDB 5lhtfUT09Ab0OkAJFSkZ4VRZ4VkZL7tMOlcMlVcUImOA5uUA5y b0OkAJFSkZ4VkZL7tMlVC2x1coAIOA5uUA5yb0OkAJ4mR2Oifo rvC29VcMlmRmnPFtF7tLnpdMYSfBOlb29VC2AIAL9Nay9rUawV kZ9SCB5mfBymcU8mRJOjd25MDBfdk2xidMfzk10VkZ9ZcBclFM aZRMxVcZF7tLnpdMYSfBOlwtEPOA5uUA5yb0OkAJ4mR2Oiforv FMaMcbklFJ5XcbkMRmnPFtFpKXpEDB5jduaLcUEIhraKO0lKOa 9rUawVkZ9LCbOiR3klcMaZcbwVC29VcJ5XDuEmhTShWolVC2x1 coagd25jcUEPk2aVc2lVcU9iFoLvCbnpRMYSCbYzRmnPFtFpKX ppcJEPkoYvdMcpc1SmDuO0Fy9Pd21lb3aZdtffwe09wtwJhUn7 tJOjd25MDBfdk2i0fungDo9sca91FMXmbUE9woa4FoxvcoAPwM aVc2lVcU9iDMy4R3klcMaZcbwVFoiXwJXLb1YyAlcyAlSmAriW b1YyTrCmbUL7tJOjd25MDBfdk2i0fungDo9sca91FMXmbUE9wu klF2a0htOjd25MDBfdk2i0fungDo9sca91FMXmbUL7tJOjd25M DBfdk2i0fungDo9sca91FMXmbUE9wtkPfuOXKJ8vwJ4Lb1YyAl cyAlSmUyOAAy9wT1YAk10VkoYvdMcpc1SmDuO0Fy9Pd21lb3aZ dtffKXp9tJOSDBYgfuwINUnMCBxzcTShkuYpfoagD2a5we0IF3 OZb3klFoxiC2APwmf3fZ4JRtwJRuY0FmOvdo93cbwPky9TOakB Oakdk0iAayngUr9TatffhUL7tJOzDbOlb2slGUE9wo1LYUisce APCMyzcTC0b2aVC29LcUisceAPk1SmRJOzDbOlb2slGU4mbaS0 HzWzYy0mhULphTShDBCIhtOzDbOlb2slGUE9NUELC29VcM1zBZ fqcbLmbULIkoxpC190FJE9wuOZfBA7tMlMhtrLdoljb3OZhUEL C29VcM1zBZfMfB5jb2YvFulZDBfPftffwe0IwmllFZw7tMc1dM Y0DB9VwuklcMaZcbkgCMxvC2sgcB5LwtILFMaMcbklFJLIGXpm do9JCBXIkoxidMfsFZXLcoxlb2yXDUXLC29VcM1zKXppcJEPko YvdMcsF1SmcmaVC19jd3n5FMlmDuWmbUE9NUEJGBazwJLIGXPL C29XGbkpc2i0wt49wtw8col2woySDBfVNaXJFMlmDuOFwJnzfu lScT1FwMcvdmWsF2l6cTPIKbn4KZnXCBOLDB5mRbkpc2i0KJEz FuI7btw+W29XGbkpc2i0wtcjd3n5KZE8CUnPFMaMNaXJDuO0Fe PvR2flfoOScU5vFMFVFmAvbtwIfoyZc2a0NaXJb2kSCB5qbtwI F3O5doA9btk0cbi0RBOlC29ZCbOpd246wo5vdMA7wocvdmWsF2 l6cTPIKbn4K1XJNLflfrOHOTXvCT48R2Opfj4JKXp9cBxzcUEL C29XGbkpc2i0we0IwJw7tMlMwtIikuklcMaZcbwpwtOZcBclFM aZwe0IkoxidMfsF1SmdM9gF2aifukidmHmbTShkuklcMaZcbwI NUELFMaMcbklFJ4LC29XGbkpc2i0KXPLcoxlb2yXDU0+F2y2ca 90d19jCBYPcUEPwtfZcBclFMaZb2kSd2YqkZXLFMaMcbklFJEp KXpZcbO1FM4IkuklcMaZcbw7tm0hDBCIhtOgALaOaAaTaySmd3 n0DB9Vk10pwuShFMaxfBlZca9vdMYlwraKO0lKOa9rUawVkZ9j doyzF2azR215F3ySRmnPFtF7tmklFbapFMagd25jcUnyTLfkTL agOrlURJFvcoy0CU9LCMYvdMcpcZ5XDuEmKXpZcby1Dbklb29V C2AIAL9Nay9rUawVkZ9SCB5mfBymcU8mRJOjd25MDBfdk2xidM fzk10VkZ9ZcBclFMaZRMxVcZF7tJOjd25MDBfdk2YPCbkzcbWm bUE9wtILdoyVc1SmC2iiFmYlftffwtr9wtFmhUE/koxidMfdk2YPCbkzcbWmbUE6wtOjd25MDBfdk2YPCbkzcbWmbT ShFMaxfBlZca9vdMYlwraKO0lKOa9rUawVkZ9pdMHvDB5jduaL cU9MfB5jfolvdmHVDB5jRmnPFtF7tmklFbapFMagd25jcUnyTL fkTLagOrlURJFvdB9LfBxlFZ9zDbOldo9mDB4VFoiXkzShgWpp cJEPky9UOayaOaYABZfvFuOpd24mbUE9NUEJCBY0Dbcifolvdm HJhUn7tJOLd21iDB4INUnzfuk0d2xvf2aZhtOgA0aUaLaUBZfw ayOWb0iNA1WmbUL7tJOqcbLINUn0FMlshtOgALaOaAaTaySmD2 a5k10pKXppcJEPwAnMDBxlb2flfy9jd250cB50FZIJDuO0FePv R2flfoOScU5vFMFVFmAvcbi0FMyzR3klcMaZcbwvC29VdMajft 50GuWJhULhGXpLDBAPwjxLDbCIF3O5doA9btkJCBYqc3kvfB5L KJnSDBfPfulldoxvfzsJd3kLcbw6Hbn4woOvfuOlctnZc2wPHT LXRer5HtXxKTEpKZnXCBOLDB5mKJE1FuI7woYvdo9ZKJYoOjC2 YjC7btwIC2xiF3H9btkVCbcpc2y0DB9Vbtw+XKqZ6KRI9Vj/wKzV5NNq/Zes5Uei++vIwK/X7Vjm4VbL5G3IRtes5Uez5Keq7vu8wNNx8Ves7VRP8vXI7+7L6 Vv+9+bs6KAI6Jez5Keq5G3s7VzzwNul8KRl8NHVwH/V7/eV4gNp8VAI7+7J8V7X6NR8wKeQ8VjJ4NdP/Jes5Gzs7VNVwK/V5+Ts5GAVNt9LDbC+wJL7tm0hDBCIhtrLD2a5hWp7tMOpcUIJN oOpfJnzfulScT1FwMkiC2smFM91dMW6woxpc2i0GBaSdo93K2k vFMOlFjPxFuIIco90foaLwukmCJIxKTESHTLXRer5HtL7wunic oOpdMF6weaXGeSIC29Sd3w6w0coYjC2YjsFwJnjdoyzFz1FwM5 ifMlmCbOpd25Fwj7A7veS4tes5Uei++vIwKgI7+7q7Gbs4tXI7 +7J8V7X6NRlwKRJ7VWI6Vv+9+EiNt9LDbC+wJL7tm1lduYlwuS hkoivF3W9k3f3fZ5mcbOLdoAVd3kmRmk1kzShkunifoI9kZ9lG uOZCbHvFMaMcbklFJ9iC3OpfMy0cU5XDuEmKXPLFbalFmLINUE Jco9sCBlVNbSLco9sCBlVgUcqcbL9GZOqcbl9wjShDBCIhrnMD Bxlb2flfy9jd250cB50FZIJDuO0FePvRZwVkoivF3WVkunifoI Vwj8JRJOxfBaZGULINT0IwmllFZwpwuShDB5jduaLca9vdMYlw tiyTLfkTLagOrlURJFvcoy0CU9ZcBclFMaZRMYvdMCVFoiXkZL 7tJOzDbOlb2slGUE9wuY0Fl9ZcbnSCBYlhtk3f3FVwJXJwJxzf uk0d2xvf2aZhtOgA0aUaLaUBZfwayOWb0iNA1WmbULpKXPLF2l 0ca9qcbLINUnsceAPdBW1hokiF2A2Yy9ldMYvcoAPdBW1htfdk Z4LF2l0ca9qcbLVk11dYeH0HzOfkZLphUL7tJOjd25MdbYdk2s lGUffwe0IkuYpfoagD2a5KXPLDoyVcoxlFJE9wocvFoaVhraKO 0lKOa9rUawVkZ9LCbOiR3klcMaZcbwVC29VcJ5XDuEmRtk3wJL 7tMc3FMl0cUILDoyVcoxlFJXJNe9WUynFFlxVbtOjd25MdbHIN UniFmkiGUEPbukFdJwpKXpMd3klCBYPhtOjd25MdbHICbHIko5 idBAINT4LfMySfBAptmShkucidualNByLcuYSCbYPcbHPkucid ualhTShcmfZDbOlhtOPCB5LdoaZRtwmGZOVCB1lgUFINT4Ibtk 7kucidualgaXJRyxZbo4JhTShgWpMf3kpfoAPkoiidMOScbwSw JL7bukFdj8+wJL7tMcjdo9zcUILDoyVcoxlFJL7tMOpcUIJNoO pfJnzfulScT1FwMkiC2smFM91dMW6woxpc2i0GBaSdo93K2kvF MOlFjPxFuIIco90foaLwukmCJIxKTESHTLXRer5HtL7wunicoO pdMF6weaXGeSIC29Sd3w6wzC0Czw0YTsFwJnjdoyzFz1FwM5if MlmCbOpd25Fwj7n6+ej7VTI8KjSwHRI8Uem4tev7Vqz7+qzwK3 I+Kbj7JeS7VTz6/8VwH3I5Kbl7Nu/wNgZ7JeX4KuV8VEI8Ues6KXI5K7x8VeJ6NwIXVeSwNRV6/zQ7Jez5K7J7Vv88gRJ6KAiwH7i7G7J6NRlwNuZ8Kes6NdzRte3 8V7i+Zev8Kjx8vNv6NR8wKPI8Kei7vRlwTXvcol2NJwpKXp9cB xzcUn7tMOpcUIJNoOpfJnzfulScT1FwMkiC2smFM91dMW6woxp c2i0GBaSdo93K2kvFMOlFjPxFuIIco90foaLwukmCJIxKTESHT LXRer5HtL7wunicoOpdMF6weaXGeSIC29Sd3w6w0coYjC2YjsF wJnjdoyzFz1FwM5ifMlmCbOpd25Fwj7E6vRP4Ve26N8IOoy0CA xpcMAIOB5mDB5lwK3lwKu76+EI7/eV6KgJ5GTl7GESwKRJ5GTl7G375UeL4K3s++AI7GAI8G7V8VRl 8vuZ4vN+8Jes5G7i9G7L6Kz77tXI6+ji7JeL4K3s4N8I6V7v6N 8I4gvq4tez5VAI4KqZ6KRP8K7J4K3IwK3IwKTX8+NV7tex5geJ 5gelRjXvcol2NJwpKXp9tm07tm1lduYlDBCIhtOgALaOaAaTay Smd3n0DB9Vk10INT0IwMYPcBYqDB5MdZwpwuShDB5jduaLcUny TLfkTLagOrlURJFvcoy0CU9ZcBclFMaZRmnlFMCVFoiXkzShDB CIholVb2yZFMy5htOgALaOaAaTaySmF2l0cUffRtOldMfpdMaz hULIky9UOayaOaYABZfzDbOlk10INUELcB5mDB5lBZOgALaOaA aTaySmF2l0cUffbaSmHtffKXPLfbkSwe0IF3OZb3klFoxiC2AI htf3f3FVkZXmkZXLb1kyAaayA1Odk3YpfoAmbUL7tMc1dMY0DB 9VwoflfrkiFLYchtOgfbkShUn7tJOgfbkpwe0IwMi0fuE6RZ9J CbwsdMy2DBFVGByVcoa4Rmk1R3A/fMaZNTwMfbkSNUwVtmaZdoaVC29LcUILb3aZdtLVwJczDo93NT rJKXPLcMWINUnEcM9XcB4Pky91FMLSwmwJhTShDBCIhtOMctLI GXp3DolScUEPkok1cMclFJE9wocmcbOzhtOMctX0HeL2hULIko iiGbY0CBYqRj0LCmaMcMaZKXpMC2xvF2APkocLhTShFuklc19s CbOjDtIJRzx0C3LIFMyVcz1FwJIVhJlFwJn2CBx1cT1FwJIVhJ lFwlXvNJ9pF1AJREPLDoy5F3OiC2SSkoY5hTShFMa0fbkVwtip dmWpwtOjGaSZbTShgBaSF2AIFMa0fbkVweE7tm0hkofvd2fScB ivF3W9k3Ovd2xJCbkxfBaZDBazRMfvd2fScU5jd20mKXPLc29v c2xlfBr9k01vGMlSdorvYU4XwtibDB5Ld3fzKZnaKZnbDB5Ld3 fzwr5AweAVHTSIcB4saaH7wuk2KjrVKt4XRjCpwrflC2svRzwX HeCXYzw4wrcpFMaMd3IvHU41kzShcmaVC3Opd24IA3OZao9KfB 0PkyY0FJXLW2ilC2SSkr1ic2ljhUn7tJOkdmWzHlaVDbWINUE0 HjL0KTC3HjL2KXPLdoaVc3OPwe0IF3OZdoaVhtOTfuwpKXpMd3 wIhtOpwe0IHeSLDUE8koxldMf0DeSLDUSqhUn7tJOeDoajDZEQ NUELTBymDBH7tMlMwtILW2ilC2SINj0IkrlVfeHZaB5pftLIGX PLW2ilC2SINUEPkrYPcBYqwt0LUB50HzkadMl0wtPIholVftLI htOeDoajDZEvwtOkdmWzHlaVDbWphTShkrYPcBYqwe0IhtOeDo ajDZE8RTwxYeF0KeH2YeIpwe8PkrYPcBYqwtSLUB50HzkadMl0 hUE6wtOeDoajDzShgWPLW2ilC2SIhz0Id3kLhtOTfuk7kol9hT ShgWpZcbO1FM4IkrYPcBYqKXp9tMc1dMY0DB9VwriiF2iaALXP kyY0FMlVcZLIGXPLW2ilC2Sxwe0IA3OZao9KfB0PkyY0FMlVcZ XXGer1HeASHuIZHUL7tJOeDoajDzwINUnTfukAd051dUILA3OZ DB5mReESHuIxHeEzOJL7tJOeDoajDzrINj49wew7tJOeDoajDz rINUEPhtOeDoajDzrINj40hUEMHuIzOLcoOLHXwtLIgtILW2il C2SxwtCXGeYohTShkrYPcBYqHUE9wtIPkrYPcBYqHUE+NjWpwt CXGeYoOLHXHtEpwuXPkrYPcBYqHUEMHuIzOLCpKXPLW2ilC2Sx we0IhtILW2ilC2Sxwe4+YtLIkjn4H0HXHeEIhUn8htOeDoajDz rIkjn4H0coOJL7tJOAHUE9wtIPhtILW2ilC2SxwtCXGeYeHtLI NeX0hUn8htOeDoajDzrIkjn4H0HphUE8NewIhUn8htOeDoajDz wIkjn4OjnowtL7tJOAHJE9wtIPhtILW2ilC2SxwtCXGrcoOLce HeEXhUE8NeWpwuXPkrYPcBYqHUEMHuIzWzEXhULINeXXGrrpwu XPkrYPcBYqHJEMHuioHrCXHeEXwtL7tmklfuaZdJEPkyWxwuXL aewpKXp9tMc1dMY0DB9VwrYPcBYqUoyzDtILUoyzDo51dULIGX PLW2ilC2stGbOlwe0IHeShkrcSCBFINUEXKXPLUoyzDyY0FJE9 wuYXFMlVfoCPkZa1kZXLUoyzDo51dUL7tJOScB5mfoIINUnzfu kScB4PkriiF2iTfuwpKXpMd3wIhtOpwe0IkoxldMf0DtEsHTSL DUE+NUEXKZOpwt0shUn7tJOUcUE9wtOwCbYPA3OZGZOpgTShDB CIherINT09wtILOMxicZElHJLpwuShkyklwtS9wtOUcTShkykl we0IholVftLPkyklwt8IHTEpwtSPkyklwtAxHtL7tm0hkrYPcB YqWml0cUEqNUELAMA7tJOodoymwtSqKXp9tJOeDoajD0k5foAI kT0IHTE7tMlMwtIXwtr9NUELW2ilC2stGbOlhUn7tJOeDoajD0 k5foAINUExHtEskrYPcBYqWml0cTShDBCIherINT09wtILOMxi cZElHJLIhUn7tMlMwtIxwe09NUEPkrYPcBYqWml0cUElHJLpwu ShkrYPcBYqWml0cUEqNUE5KXp9tJOeDoajD0k5foAINj49wer7 tm0hgWpZcbO1FM4IkzFmRJOeDoajD0k5foAVkriiF2iTfuw7tm 0hcmaVC3Opd24Ic2a0C2IPkuaZdtLIG3klfuaZdJneDoajD0ii F2IPUoyzDyaUTtILfbkShUL7gWpMfB5jfolvdJnmcbOXFJILfb kShUn7tMfSd2kidtELc29vc2xlDo9zftXLc29vc2xlfBr7tJOj DtE9woflfoYPhtO1FMXpKXPLcmEINUnEcmYvC2svFoaVhtOmd2 9mdoaPd3Y0ReIXRtOlFmkVdZXLcbkZF3OZReHXhTShDBCIhtOM FtLIGXPLd3a0we0IwLfyatEvF2aiFMYPN2YSDBaVfe1VCbcjdo lldmWsCba0dZcjDe0LC2IMcMaifuaZcbH9AMyVDZcxNBlVcM86 kuaZdtnwayOWRzrVHaxZbo4JKXPLd3a0wt49wtkaF2aZRAymcB 50KJELc29vc2xlfByFFlxVwjShko91ftEVNUEJUo9zfePIkofv d2fScBivF3OFFlxVwjShko91ftEVNUEJW29VdMajfolvdjPIW2 xvF2aFFlxVbukFdJw7tMc3FMl0cUILcmESko91ftL7tmfPDBxl wtIicMavcJILcmEphUn7tJOLCbOiwe0IcMflfuHPkocXRerZKt L7tJOXd3HINUnzfukXd3HPkoOiforSwlkidMsgwJL7tMlMhtOX d3HINT09wociduYlhbs9cBxzcbShkunZNbY1CmY0FJILcoy0CU XLFo9zwtS5hTShkunZNbOZDB0PkunZhTShkunZNbY0Fl9ZcbnS CBYlhtkFdJwSkZFSkunZhTShFMa0fbkVwtOXFjShgWp9tMcjdo 9zcUILcmEpKXp9tm0hDBCPwBflfunZhtO1FMXphUn7tJOXFJE9 wtwXwjShgBaSF2AIGXPLFuwINUnmcbOXFJILfbkShTShgWPLfo ljwe0Ic2a0WMyZW1LPwMi0fuE6RZ8JRJO1FMXpKXpMfB5jfolv dJnLdB96htO1FMXpwuShkunifoIINUkPfuOXKJ8vF2aiFMYPRM Osd3PVd3kmR2YmDU1JDB4vF2aiFMYPN3YlCbkjDe0JRmY0Fl9Z cbnSCBYlhtk3f3FVwJXJwJXLfbkShTShDBCPwBcpdoagcbipF3 OzhtOXCbOPhULIGXPLcoy0CUE9wuY0FMlXb3Oic3HPWolsFoxv coAPwJwSWocpdoAPkunifoIphUL7tMlMhuY0FmnvFZILcoy0CU XJTM8IT3nldJnrDbklC3OvFmLIAukvDMajftnZcbY1duOzwocv fB5LwJLpwuShkuklF3aSfuHINUEmNorIfoyZc2a0NUkgCMxidM SJwoiZcBC9wMi0fuE6RZ9zcByZC2IVco1vGJ5vFMFvC2fpRBkp dJ9zcByZC2I/F2aiFMYPNUFVF3OZb3klFoxiC2APwmf3fZ4JRtwJRtO1FMXpRJ FJNS3lwK7v6NuI7TXvCT4mKXp9cBxzcUn7tJOZcbY1duOzwe0I kzxiwuOiFMflfe0Jb2kSCB5qwJnPFMaMNUkPfuOXKJ8vF2aiFM YPRMOsd3PVd3kmR2YmDU1JDB4vF2aiFMYPN3YlCbkjDe0mRmY0 Fl9ZcbnSCBYlhtk3f3FVwJXJwJXLfbkShU4mwj7y8gR8Nt9iNJ F7tm0hgBaSF2AIGXPLFMazfBx0FZE9wtgs5gwI5Kes7gv1kzSh gWpZcbO1FM4IkuklF3aSfuH7tm0hkup1FMXINUnXFMamb3klFo xiC2APwJ9Ghoi0fuE6bt9FRZLvDUwSwJwSkuaZdtL7tJO6fbkS we0IFuklc19ZcbnSCBYlhtwvbt8PRJPpkt9pwJXJwJXLGmaZdt L7tJOXCbkzca95CUE9wrnMDBxlb2flfy9jd250cB50FZImDuO0 FePvR2kiFJ1VCbcpcZ55CB5LcbIVFmAvfT92cbw9HJczDo93NT HZkmaZde1PfuOXKJ8vkZ4LGmaZdtL7tMc1dMY0DB9Vwoflfy95 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 2aZb2iiF2ImbUEiNUELcoxlb2xvc2lVb2iiF2IpwuShcollwtI JcbkZd3wJhTShgWpLDBAPwjxLDbCIC2xiF3H9btkZcBclFJ1Lc BxFwJniduW9btwJRJOSCB5mdbYdk3YlCa9LcBxlfoagDB5MdZf fRJkFwj4JRJOSCB5mdbYdk3YlCa9LcBxlfoAmbU4JNt9LDbC+w JL7tm1lduYlDBCIhtOgALaOaAaTaySmd3n0DB9Vk10INT0IwMY PcBYqfbnLwJLIGXPLfbnLCbOlwe0IWocpdoagc2a0b2YvdmOld mOzhtkPfuOXKJ8vf3f3RMflfoOScU5vFMFVFmAvcbi0FMyzR3k lcMaZcbwvfMaZF2lvdJ50GuWJhTShDBCPkuaXcoy0cUE+koxid MfsF1SmfMaZF2lvdJffhUELDB5MdZE9wtOSCB5mdbYdk3klcl9 1FoOgHermbTShcBxzcBlMhtO1FoOifoAINT0IkoxidMfsF1Smf MaZF2lvdJffhUELDB5MdZE9wtOSCB5mdbYdk3klcl91FoOgHew mbTShcBxzcBlMhtO1FoOifoAINT0IwJwpwuSLfbnLCbOlwe0Iw J0swjSLDB5MdZE9wtOSCB5mdbYdk3klcl91FoOgHeHmbTs9tMa SF2apcJILfbnLCbOlweXLdoyVc21zBZf2cbkzDB9Vk10pwtOpd Mcvwe0IkoxidMfsF1SmFMaMb3aXcy8XYtffKXpLDBAPwjxLDbC IF3O5doA9btkJCBYqc3kvfB5LKJnSDBfPfulldoxvfzsJd3kLc bw6Hbn4woOvfuOlctnZc2wPHTLXRer5HtXxKTEpK3nicoOpdMF 6weaXGessCbkmDB4sfo9XKJE3FuI7dByZc2lVRbkpc2i0KJExH un4K1XJNS/V8Gvl5K3//ZeJ5gex6N86wtwVkuaXcoy0cU4JwtIJRJOpdMcvRJwpNt9LDbC +wJL7tm0h

Zedi 01.10.2009 22:29

Вместо евал подставляешь echo чуть ниже вместо $000000 базе 64 декоде, короче экспериментируй:-) там все легко просто мудрено зашифровано название функции base64_decode

morpeh007 01.10.2009 23:43

Я пытался как то сам расшифровать код. Хотел бы получить наставление. Мой метод был такой: декодировал (urldecode) и получил символы индексных значений переменного $OOO0000O0. Далее вставив значения идексов вместо {0}{1} и т.д. получилось нечто вроде base64_decode. Мне интересно был ли я на правельном пути? И еще мне совсем не понятно с чего начинать при раскодировке последней строки Rt9ecriecriecr1gIJljP3RgIhxdH2OMR19bYGgcYl9bRZXFRZ .....

Вроде бы находится за пределами php. то есть за return;?>

BlackSun 02.10.2009 00:35

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 &copy; <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)) <<) |($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 (
=== ($Flag %2)) {
$Re += $Re;
$Re = (int)($Re 10) +($Re %10);
}
$CheckByte += $Re;
$Flag ++;
}
$CheckByte %= 10;
if (
!== $CheckByte) {
$CheckByte 10 -$CheckByte;
if (
=== ($Flag %2) ) {
if (
=== ($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\">Перейти на сайт &rarr;</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>");
}


eLWAux 02.10.2009 03:04

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 &copy; <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)) <<) |($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 (
=== ($Flag %2)) {
$Re += $Re;
$Re = (int)($Re 10) +($Re %10);
}
$CheckByte += $Re;
$Flag ++;
}
$CheckByte %= 10;
if (
!== $CheckByte) {
$CheckByte 10 -$CheckByte;
if (
=== ($Flag %2) ) {
if (
=== ($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\">Перейти на сайт &rarr;</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>");



eLWAux 02.10.2009 03:08

в основе етих двух скриптов- ф-ция strtr.
- сперва делает base64_decode куска кода
- исполняя его, читает сам себя
- пропускат начало файла - код, и читает текст, начиная от ?>...
- сперва читает N символов, применяет для них strtr, потом бейс64
- потом опять исполняет его, и читает оставшеюся часть кода
- делает с ним тоже strtr и base64_decode
- на выходе - чистиый код

з.ы:
PHP код:

$db->query ("DELETE FROM ".PREFIX ."_referer WHERE id = '".$_REQUEST['id'] ."'"); 


Alex$09 02.10.2009 11:47

Спасибо за код, но я незнаю он правельно переведен или нет но когда я его подменяю он не хочет работать(

sevenup 05.10.2009 16:19

помогите расшифровать:
Код:

87f57a460c276ab1405143ad91ecb2ccd1458198d5a91537916c78a3f6555bca3195fbb1b765c28fee886a1346f579b10aca8d004100159c4c3642b289407af32b74df9a3ffab4b9df8557f653a3feb7ddb93783b0f9c9d8eb93e3e85e349a1b662b5a864686f30e083c27a86c5d1df00feb90da845ec88182ba0d937e3abc7e0a713c2d11dc129981934a28cd25b972eb3dadb1bb88bc7e8994ce18eb8ae022ba097bb39e3a0be50a5b5aafc219717e6ddbfd930fae3c4000a00770ef60fe975d48f441ff505f2ab85eed6ee246ea3a550dfaa234bbf0ca7d42154c9cd3458b6f7520f34fdb56924e70445c4945ef6629d82fbc0818e876b5836c72079aed532b9ddf63f3d8c96f871bf24daeedb210ae3d060b767fee5abb19c3d029d1d1ccefecefe177c376f9aec77bcdf890fb9e527dad866888858972877047e659132c5d4de3741e7b0043b1a192d5e48b991e0f6818f0c2fdc7ad631fc119e480e9ca3cc71df51eff4acd6777dfc151b4d0d63cc4ee0f45174b2259788d3a15796694

SQLHACK 06.10.2009 14:08

дублирую тут.

та обфускация снялась на автомате такой штукой.
(исходный файл сохранен 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

?>


MafyO_o 06.10.2009 23:06

разшифруйте пл3 етот файл ТыК

eLWAux 07.10.2009 00:08

пособие
 
Цитата:

Сообщение от MafyO_o
разшифруйте пл3 етот файл ТыК

вижу пошло много одинаковых скриптов аля "Copyright 2009 Nikolay Konokhov"..

как его расшифровать:
  1. открывает файл блокнотом
  2. ищем "return;?>", после него идет зашифрований код
  3. удаляем все, оставляем только зашифрований код
  4. пропускаем 380 символов, начиная с начала етого кода (
    или: ищем первую позицию: "==")
  5. удаляем первых 380 символов (или текст до "==")
  6. далее создаем php код:
    PHP код:

    $s 'тут весь код что остался';
    echo 
    base64_decode(strtr($s,'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')); 

  7. запускаем скрипт и видем расшифрованный вариант

eLWAux 07.10.2009 00:09

MafyO_o:
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 &copy; <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)) <<) |($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 (
=== ($Flag %2)) {
$Re += $Re;
$Re = (int)($Re 10) +($Re %10);
}
$CheckByte += $Re;
$Flag ++;
}
$CheckByte %= 10;
if (
!== $CheckByte) {
$CheckByte 10 -$CheckByte;
if (
=== ($Flag %2) ) {
if (
=== ($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\">Перейти на сайт &rarr;</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>");
}


MafyO_o 07.10.2009 22:37

eLWAux спс

mailbrush 07.10.2009 23:10

Написал небольшой деобфускатор кода Николая Конокова. Он деобфусцирует код, который обфусцирован обфускатором Николая Конокова.

Не буду запутывать вас - если у вас есть непонятный вам код, в котором вначале присутствует строка
Код:

Copyright 2009 Nikolay Konokhov
то можете смело использовать мой декодер (деобфускатор), который находится по адресу:

http://mailbrush.eu/tools/decoder.php

Спасибо eLWAux'y за точный фак по деобфускции этого кода.

d_x 08.10.2009 00:32

Цитата:

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/....../decoder.php on line 11
не выбираем файл)

mailbrush 08.10.2009 00:54

Цитата:

Сообщение от d_x
не выбираем файл)

Поправил, thx :)

SQLHACK 08.10.2009 15:31

а че вам мой метод не понравился ?

Dark_cracker 08.10.2009 23:08

Цитата:

а че вам мой метод не понравился ?
сначала твоим методом попробывал , код не работал , он не доконца расшифровал, потом пошёл по ссылке mailbrush , попробывал всё норм ;-)

SQLHACK 08.10.2009 23:41

это как так не работал ?

Dark_cracker 09.10.2009 07:15

Возми проверь , он даже по другому расшифровует , может там ручками нужно доделывать результат , я не пробывал .

iron-viper 09.10.2009 10:44

Собственно, никто не сталкивался с Free Online PHP Obfuscator v1.2 , можно ли его раскодировать?

пример кода

Код:

//Obfuscation provided by FOPO - Free Online PHP Obfuscator v1.2: http://www.fopo.com.ar
$l280330b5cf5="\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65";@eval($l280330b5cf5(
"JGI3NzkzNTY2NmI3N2JmMDEzMWVlYmFkM2ZiOGVlZGMzPSJceDYyIjskaTAyZjM0MmFhMGViN2NiNWU3YjhiZjJ
mZjZkZjJkZGI9Ilx4NjUiOyR2ZDU2YzVhOGJlOWZlMTJmNzU2Y2M4NTU3NGUzNjczYT0iXHg2NiI7JHljOTBmODk
wZjRiMzNhOTE4YWE5OWU0Y2Q2YzMxNTZlPSJceDY3IjskeDM2Y2ZkM2JmZWNkYWY1NDIyNGRkMTM1ZDUwNmExNjQ
9Ilx4NmQiOyRoMzhhMTEwMmIwMjI4YWM3N2E0MjVmOTQ4MTYyZGZlYj0iXHg2ZiI7JHA3ODg0MTI0OTdmN2IxZDA
wMDY5NmM1N2NjMzI3NDQyPSJceDZmIjskajU5NmMwNzhlNzliMDVhODRjNmZiZWY3ZjMxMzc2YzA9Ilx4NmYiOyR
xY2RlYzRkZDE2Yzk0ZTU1YzA0OTU4NzZjMzUxYzRiYj0iXHg2ZiI7JGw3MTExMWFjZmI2ZDFmY2U3M2QwMGFiOTk
2NDk2Y2RlPSJceDczIjskeWQ3Mzk5MTk4YmQxMjNjOTZhZDBhNWFkMjZiYTEzYzQ9Ilx4NzMiOyR2MTM0MDNhYjU
zZjA4MzQyNzc2NzY0OWI0ZGYxNzUzMT0iXHg3MyI7JHVkMzZhMTcxODZmMjM2MzU4YzI2OTllOTBjYjA0MjcyPSJ
ceDczIjskYjc3OTM1NjY2Yjc3YmYwMTMxZWViYWQzZmI4ZWVkYzMuPSJcMTQxIjskaTAyZjM0MmFhMGViN2NiNWU
3YjhiZjJmZjZkZjJkZGIuPSJcMTYyIjskdmQ1NmM1YThiZTlmZTEyZjc1NmNjODU1NzRlMzY3M2EuPSJcMTUxIjs
keWM5MGY4OTBmNGIzM2E5MThhYTk5ZTRjZDZjMzE1NmUuPSJcMTcyIjskeDM2Y2ZkM2JmZWNkYWY1NDIyNGRkMTM
1ZDUwNmExNjQuPSJcMTQ0IjskaDM4YTExMDJiMDIyOGFjNzdhNDI1Zjk0ODE2MmRmZWIuPSJcMTQyIjskcDc4ODQ
xMjQ5N2Y3YjFkMDAwNjk2YzU3Y2MzMjc0NDIuPSJcMTQyIjskajU5NmMwNzhlNzliMDVhODRjNmZiZWY3ZjMxMzc
2YzAuPSJcMTQyIjskcWNkZWM0ZGQxNmM5NGU1NWMwNDk1ODc2YzM1MWM0YmIuPSJcMTQyIjskbDcxMTExYWNmYjZ
kMWZjZTczZDAwYWI5OTY0OTZjZGUuPSJcMTY0IjskeWQ3Mzk5MTk4YmQxMjNjOTZhZDBhNWFkMjZiYTEzYzQuPSJ
cMTY0IjskdjEzNDAzYWI1M2YwODM0Mjc3Njc2NDliNGRmMTc1MzEuPSJcMTY0IjskdWQzNmExNzE4NmYyMzYzNTh


krypt3r 09.10.2009 11:57

Да, можно. Деобфускация приводит к коду
PHP код:

@eval (gzinflate (base64_decode (str_rot13 ("тут base64-строка")))); 

вернуть к исходному несложно)

iron-viper 09.10.2009 13:06

Цитата:

Сообщение от krypt3r
Да, можно. Деобфускация приводит к коду
PHP код:

@eval (gzinflate (base64_decode (str_rot13 ("тут base64-строка")))); 

вернуть к исходному несложно)

А как сделать Деобфускацию? Каким инструментом или какой функцией?

krypt3r 09.10.2009 13:24

PHP код:

echo ... 

=)

Pashkela 09.10.2009 13:33

вот именно, выложена часть кода обфусцированного:

PHP код:

<?php
@set_time_limit(0); 
@
ini_set("display_errors","1");
$l280330b5cf5="\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65";
echo 
$l280330b5cf5('JGI3NzkzNTY2NmI3N2JmMDEzMWVlYmFkM2ZiOGVlZGMzPSJceDYyIjskaTAyZjM0MmFhMGViN2NiNWU3YjhiZjJmZjZkZjJkZGI9Ilx4NjUiOyR2ZDU2YzVhOGJlOWZlMTJmNzU2Y2M4NTU3NGUzNjczYT0iXHg2NiI7JHljOTBmODkwZjRiMzNhOTE4YWE5OWU0Y2Q2YzMxNTZlPSJceDY3IjskeDM2Y2ZkM2JmZWNkYWY1NDIyNGRkMTM1ZDUwNmExNjQ9Ilx4NmQiOyRoMzhhMTEwMmIwMjI4YWM3N2E0MjVmOTQ4MTYyZGZlYj0iXHg2ZiI7JHA3ODg0MTI0OTdmN2IxZDAwMDY5NmM1N2NjMzI3NDQyPSJceDZmIjskajU5NmMwNzhlNzliMDVhODRjNmZiZWY3ZjMxMzc2YzA9Ilx4NmYiOyRxY2RlYzRkZDE2Yzk0ZTU1YzA0OTU4NzZjMzUxYzRiYj0iXHg2ZiI7JGw3MTExMWFjZmI2ZDFmY2U3M2QwMGFiOTk2NDk2Y2RlPSJceDczIjskeWQ3Mzk5MTk4YmQxMjNjOTZhZDBhNWFkMjZiYTEzYzQ9Ilx4NzMiOyR2MTM0MDNhYjUzZjA4MzQyNzc2NzY0OWI0ZGYxNzUzMT0iXHg3MyI7JHVkMzZhMTcxODZmMjM2MzU4YzI2OTllOTBjYjA0MjcyPSJceDczIjskYjc3OTM1NjY2Yjc3YmYwMTMxZWViYWQzZmI4ZWVkYzMuPSJcMTQxIjskaTAyZjM0MmFhMGViN2NiNWU3YjhiZjJmZjZkZjJkZGIuPSJcMTYyIjskdmQ1NmM1YThiZTlmZTEyZjc1NmNjODU1NzRlMzY3M2EuPSJcMTUxIjskeWM5MGY4OTBmNGIzM2E5MThhYTk5ZTRjZDZjMzE1NmUuPSJcMTcyIjskeDM2Y2ZkM2JmZWNkYWY1NDIyNGRkMTM1ZDUwNmExNjQuPSJcMTQ0IjskaDM4YTExMDJiMDIyOGFjNzdhNDI1Zjk0ODE2MmRmZWIuPSJcMTQyIjskcDc4ODQxMjQ5N2Y3YjFkMDAwNjk2YzU3Y2MzMjc0NDIuPSJcMTQyIjskajU5NmMwNzhlNzliMDVhODRjNmZiZWY3ZjMxMzc2YzAuPSJcMTQyIjskcWNkZWM0ZGQxNmM5NGU1NWMwNDk1ODc2YzM1MWM0YmIuPSJcMTQyIjskbDcxMTExYWNmYjZkMWZjZTczZDAwYWI5OTY0OTZjZGUuPSJcMTY0IjskeWQ3Mzk5MTk4YmQxMjNjOTZhZDBhNWFkMjZiYTEzYzQuPSJcMTY0IjskdjEzNDAzYWI1M2YwODM0Mjc3Njc2NDliNGRmMTc1MzEuPSJcMTY0IjskdWQzNmExNzE4NmYyMzYzNTh');
?>

выводит:

Код:

$b77935666b77bf0131eebad3fb8eedc3="\x62";$i02f342aa0eb7cb5e7b8bf2ff6df2ddb="\x65";$vd56c5a8be9fe12f756cc85574e3673a="\x66";$yc90f890f4b33a918aa99e4cd6c3156e="\x67";$x36cfd3bfecdaf54224dd135d506a164="\x6d";$h38a1102b0228ac77a425f948162dfeb="\x6f";$p788412497f7b1d000696c57cc327442="\x6f";$j596c078e79b05a84c6fbef7f31376c0="\x6f";$qcdec4dd16c94e55c0495876c351c4bb="\x6f";$l71111acfb6d1fce73d00ab996496cde="\x73";$yd7399198bd123c96ad0a5ad26ba13c4="\x73";$v13403ab53f083427767649b4df17531="\x73";$ud36a17186f236358c2699e90cb04272="\x73";$b77935666b77bf0131eebad3fb8eedc3.="\141";$i02f342aa0eb7cb5e7b8bf2ff6df2ddb.="\162";$vd56c5a8be9fe12f756cc85574e3673a.="\151";$yc90f890f4b33a918aa99e4cd6c3156e.="\172";$x36cfd3bfecdaf54224dd135d506a164.="\144";$h38a1102b0228ac77a425f948162dfeb.="\142";$p788412497f7b1d000696c57cc327442.="\142";$j596c078e79b05a84c6fbef7f31376c0.="\142";$qcdec4dd16c94e55c0495876c351c4bb.="\142";$l71111acfb6d1fce73d00ab996496cde.="\164";$yd7399198bd123c96ad0a5ad26ba13c4.="\164";$v13403ab53f083427767649b4df17531.="\164";$ud36a17186f236358

lol100 10.10.2009 17:37

ребят помогите раскодировать криптованую тдску в ней кодированы некоторые файлы (не все)
ТДС
кодировано этим Obfuscation provided by FOPO - Free Online PHP Obfuscator v1.2: http://www.fopo.com.ar

eLWAux 10.10.2009 18:42

Цитата:

Сообщение от lol100
ребят помогите раскодировать криптованую тдску в ней кодированы некоторые файлы (не все)
ТДС
кодировано этим Obfuscation provided by FOPO - Free Online PHP Obfuscator v1.2: http://www.fopo.com.ar

#28 - #30 посты в етой теме

lol100 10.10.2009 18:54

Цитата:

Сообщение от eLWAux
#28 - #30 посты в етой теме

неполучается, может кто поможет для кого ето просто

iron-viper 10.10.2009 22:03

Потер...

eLWAux 12.10.2009 17:35

PERL Обфускатор: http://uasc.org.ua/2009/10/perl-obf/

net-master 16.10.2009 01:56

IonCube декодирован что дальше?
 
Здравствуйте уважаемые форумчане !
Не думал что прийдется с этим столкнутся, все таки пришлось .

В ожидании помощи от вас есть у меня закодированный скрипт при помощи IonCube там не все файлы штук 14 вообщем вроде как нашел декодер пытался раскадировать в итоге получились такие зарисовки

PHP код:

<?php  
 
if ( !extension_loaded"ionCube Loader" ) )  {      $__oc strtolowersubstrphp_uname( ), 0) );      $__ln "/ioncube/ioncube_loader_".$__oc."_".substrphpversion( ), 0).( $__oc == "win" ".dll" ".so" );      $__oid $__id realpathini_get"extension_dir" ) );      $__here dirname__FILE__ );      if ( strlen$__id ) && $__id[1] == ":" )      {          $__id str_replace"\\""/"substr$__id) );          $__here str_replace"\\""/"substr$__here) );      }      $__rd str_repeat"/.."substr_count$__id"/" ) ).$__here."/";      $__i strlen$__rd );      while ( $__i-- )      {          if ( $__rd[$__i] == "/" )          {              $__lp substr$__rd0$__i ).$__ln;              if ( file_exists$__oid.$__lp ) )              {                  $__ln $__lp;                  break;              }          }      }      @dl$__ln );  }  else  {      exit( "The file ".__FILE__." is corrupted. Ensure that you use binary mode when transferring files with FTP and disable the 'TAR smart cr/lf feature' if using WinZIP\n" );  }  if ( function_exists"_il_exec" ) )  {      return _il_exec( );  }  echo "Site error: the file <b>".__FILE__."</b> requires the ionCube PHP Loader ".basename$__ln )." to be installed by the site administrator.";  exit( 199 );  echo "\x13мџ\x14\x00¤эбњ!ЖЦ]lhВU\x06щІ\x02]vV\x19Чљ\x17Ёјy°ґ\x19/п›pa·¶]qАа{ЫЖ\x1A\x16%ФЏ[Ї”kщFлn\r“\x15бS~kJ™7”\x17б¬~©Мл ОеlV±Ћ\x1EЏц¬U]НъP]ѕ,MА\$Д8є’»М*±˜М9Ѕ’\\‰.¦'\x06ѕ‰ЦїhЌ_„‘’`\x01µ#вWрCп‰[бїЩшF2¤uYЧмаІ:ђ„UfТ}®Kћґ—pYоE1фT\x05ДE}C@гФМe‰жЩ*#дЇWu*fЌ\x15f‚кJd\x06AемПґ\x17\x08cч]9Ц\x0C.[(oщ2j\x01\x06@Х\x04ѓт^§_з0Gtё)а5•¶ Q\x196ЇОEй\x031v©™¦д!*ґz\rУ?k•ЎJ]Хт3Ц8[gйt\x06gXn2\nэ9,PЪјіMАёL—їОh\x0FY\x1BgД\x01>ђхuiЮЗОйу\x06㋉YGНў\x14Ю‡ґ`\x0C\x0FJ®ф®І+к迥ђйп(?u\x1FBЋi\x08\x05ЭО§wш:ЏЖ*љoОм\x11xхЯ?ЖV^Д\")Ѕ™K-kШ\x0F–@ТAzB\tt3ЩіO\x15Й>і";  echo "ьыд~UЪ\x03Ч‰\x1C?*ћ`\x00•8\x12M\x07Йцп6|њ\x1BqO_Б\x18¦&мmbо±u°A№\x12’r{„г\x08\x1B\x1DC`Y\x04мcyeё‚»ИЦбџМХњPЦгф\x04q®еЌCо/к/НsEfЩ\$Бџ\x03i†\x1CO=D¶ј\x04\x0F™\x1D{ђyы\$\x16tЁ{V«\x03¶•ШPГЇЩи\n\x15§н\x05\x12=MиФ“%b‹\x01чКZ\x1E^aн;FZ%А«\x0B\r\x10Юж\x1Dю[¤фљjЭїЎWѓuџЛ—Ањѕ0Ї\x07Ог9њho†o№\x109©c”\x1FВ©вЖж~]бЄ‰>м20Ђ\x1EЁш`р…—F(VxёZ?˜яЉ\x1EЭHЭЩЪrі+rOё\t1yІ\x16\x0C6ќСб\x12\\ЉZз\nршiб\x05Т‚rўiЎrШP_ќЧЩa\x1C\x10†©\r@b(o¶\x14юЮµд\x1FWЊRЃ¶AnҐ±јїаjЭ\n\x03xЧОTr\x02УJюIыЕ*Ы¦¦Ђ„iаЬдvi?Bw\x12П\\Ю\x13\x15Ўт¤Ш\x086чЉ\x0F*A\x0Fи\x16rяZ77„}z:аФ!~їУЋфЯ˜Ћё\"Ю\x1ER9\x16‰«щЉfДцkj\x12Г|IЅг~";  echo "`шCO’Ў,\r#“\x1C3f>ҐЦ\x0B\$\x08ќ3Т\x1F\x06®AэZ“р*МWПpU-,WN|˜fћЉ\x1D\x0F\x0BЌЎе’«єqуЧћF\x12^\x06Я§Rѓ_Ў,\n|Ц‘—#a}+шqpиhкЛ\x05Ю\x13%A9§\x06\x1D«,2†™їнUЄ:сЉД,!!oоа4+їбTI—‚Ж>Ћ†Ў±/ћцЌЩ\x13\x0F\x07\x05¦LхWoҐрШpr+кќQZ\x1C”RG\x1F¬‰iоВt”nQn\x0BЭ/a#kHt(\t!K±\x0CїLѕОY\x16.UР,аП¦ЄљнA‘ћ\x17jНЋ»\x13\"a(ЗhЩ¬о®r¬“J{±˜7EАфоM\x07':6Хв*ЋјцЬCёЙCпЩx\x19БкжЫ•ёGґEґН‡ЃAЭ~ЃѓtEk'х6EЗ\r\x1F!…\x0EХ\x1D\\Сp\t%ы%\\\x1A'юоk§О.я¬5\x12*Я\x0Cњ\x01®\x0Bл>њ/%цD৬чЅqГтшФXеЗс\x05\x14Щ9›\"y~\"c«*k\x16\x03єшўWє)\\З\x0Fў7ЄФрў{,\x12\x15„µК\"еџYЏ+o\rw›‚8ХеH…W‹\$дЃ•’уiRw\x05Ђ8Е Оу";  echo "hUБµяO0уВj6…P]AЅ%№3a®щЦ„?‚ъЈСp\x02ЈtЌП\"Дj\x17ыЂКaQ\x19K\x19¤шJ*М7SкРЙ\x19\x05Vrе;‡\x1CєЇҐъ\x19lЩ«Б\x0CAіl\x13\x18{†С=\x052l\x06¶¶µz5ЕЇ¦luВсЮ\nЌЃБ!lюeOКЅ›\x1B…дЫ=9\$г?є/XЫ\t°ЫЪX5\x02шО\x1F\x16…*ЛKЊ*kЅ?¬5э;Я\x06ею?™Рq8DЎьFё\x16*\x11·фЕ\x15ВЄ'^шѓx…(ѕ–/rьЫM{ћќ1pв \x040Щ.8\x15\\э*ГГ±юE`·ЭзЕc\x1B\x01+k\\\x1EиvdCVћ\x17ц\x1Cp\\UO ‡]‰т®\\Ґ*5L\x1EtМ •ї\x03ўоcр–Kт“кfБ\x17О>k~Чh®Љ^\x14сЯKnудр9цoџЖѕ„d\x0E–Ьj\x0E\x04\x14ЎТђНgг“QnT\tЅь‰`СC-ћ\x18\rВФ\x12SйTрµз©\x1Aфд}\x18x'\x1DЋA\x16\x1BjьЬ\x02Ѓ^bї˜±°z·”О\x10o»\x05ЖDjG)ДІјн˜xYB“Щh°>Vб°\x07ЖЯЯЕn>3*љX\x1F\x05}‹\x15=eK\x0F_";  echo "µ`ѓ,…ьg\x02‘ш\x03tб'7ќѓіЁЌr2q\x05‰§Zџ*(\x0Cj}W”8ч‘\\…ъi\x17Jђл4NЪ\x1C?y%ЮзбНяkIяh\x08c/џяZl’Ґ\x1CyI«™\x1E‡ќ7p¬їv*у\r‡eЫҐs‚\"\x0BЭ¬уZ\nЮу‚©хgfУЮ\nH_\x0Eµ в›5?¬Iє;·T.Ї\x16\x0C…\x01ГЃ’к“ђЁj«м#*БЯЮrkF\x19#Э}З†G˜\x0E*ПEйє`їєьЭ\x05Є\x1B¶\x14л*ї\x10Ќ]CЕжѕД™\x0Fф¶H*L&2яµ¤ґ9Љ\x1FЉI\x10-‡фДЂ.\x13JҐЬ\x11”P@m‰}я˜'e-їОM°А\x03ROj\x08Qіч\x04°4Щ{о™”жЖ\\[dmm\x01{tЦШУ\x00*[[‚ўйХ*,Ъ8'|\x17JК=ОљИД:*\"AчyІ\x02\\яґйEЖђцй\rЌЩзј\x13M\x05п!ЂЪйK‘УK\x06RQ”sNrfьЯ\r±\x12”лоАСЁънжхhbљU“o\\\x19\x0CїЕЇ\x15!Ћуg\np\x16Дh_\x00\x0BшЏ@мНї|:o]№ZЮ\x05РкRYnњНЩ¤|l\x1EЯ…ґ‹cУjY";  echo "бђXR‰t¬Њ\x03Т\x11I#З\x19?зМt]&д7'Ї9Ќє{aВ\x04\\ж\x0CнР\$\x11Ђg„ш—\"pЂЂ7:ХґњЫџ’%\x0Bв7T±¶\x13ЋF^*љ\ryй\x03„tL›\x1E\x0Bw6ГVљ*t¬_‰\x06йIe6Б\"bћъ]\n—Ћ~R+џH‘%—¦?‘MMT‡G\r\x06C\x16Ќ`X\x0B\x17А^}Лґгђ“Аrz\x02Н.э2\t#*CнћЦЋд¤©ІьЂ+ўЉh§Cѓ[ЈЃ\x18?un\x1E=±t#ј\x0F’&Ю*Њ\x1CKм‰Q?o\x11°я@‚‡ГcЭFРз\x1Egr\x1EFоAХж)лЁ®‹9:Ґ\x18®\x13 5y®j—ђжйЂ2vdU'Ж\x05jдф”\$Х*Њ^ш:ЙKl9чЩхG”и[`\x1EµhнЬ[";  ?>

это на выходе уже типо как декодированные файлы видимо требуется еще какая то операция чего я к сожелению не знаю,
Вопрос это можно раскадировать далее или это не правильный код выдал декодер ?? и если можно продемонстрируйте пожалуйста как это сделать что бы остальные файлы добить.

Спасибо за ответ.

Failure 17.10.2009 21:57

PHP код:

function cods($txt)
{
$code = array (
'ZS12' => 'q',
'HJ56' => 'w',
'SD11' => 'e',
'CV32' => 'r',
'LK45' => 't',
'KK09' => 'y',
'WE56' => 'u',
'ZA12' => 'i',
'KL34' => 'o',
'DF44' => 'p',
'MN00' => 'a',
'JK42' => 's',
'LG90' => 'd',
'VB39' => 'f',
'ER47' => 'g',
'DZ94' => 'h',
'PZ23' => 'j',
'ZP85' => 'k',
'SA11' => 'l',
'AS31' => 'z',
'WM66' => 'x',
'UI93' => 'c',
'FK36' => 'v',
'KD92' => 'b',
'XH56' => 'n',
'JD73' => 'm',
'JE68' => '-',
'GG00' => '_',
'AL01' => '.',
'PO12' => '/',
'28KJ' => '0',
'03LL' => '1',
'23KA' => '2',
'74BG' => '3',
'54NN' => '4',
'12QG' => '5',
'76TR' => '6',
'26DF' => '7',
'73NS' => '8',
'98IU' => '9',
);

$tmp "";
for(
$i=0$i<strlen($txt); $i=$i+4)
{
 
$tmp .= $code[strtoupper(substr($txt,$i,4))];
}
return 
$tmp;


юзается на строке 2 раза, $new = cods(cods($str));
необходима функция decods, что бы $str=decods(decods($new));
вроде не сложно, но запарился с этим сдвигами
так же попрошу пошаговое пояснение

eLWAux 17.10.2009 23:44

Failure:
PHP код:

function decods($txt

$code = array ( 
'ZS12' => 'q'
'HJ56' => 'w'
'SD11' => 'e'
'CV32' => 'r'
'LK45' => 't'
'KK09' => 'y'
'WE56' => 'u'
'ZA12' => 'i'
'KL34' => 'o'
'DF44' => 'p'
'MN00' => 'a'
'JK42' => 's'
'LG90' => 'd'
'VB39' => 'f'
'ER47' => 'g'
'DZ94' => 'h'
'PZ23' => 'j'
'ZP85' => 'k'
'SA11' => 'l'
'AS31' => 'z'
'WM66' => 'x'
'UI93' => 'c'
'FK36' => 'v'
'KD92' => 'b'
'XH56' => 'n'
'JD73' => 'm'
'JE68' => '-'
'GG00' => '_'
'AL01' => '.'
'PO12' => '/'
'28KJ' => '0'
'03LL' => '1'
'23KA' => '2'
'74BG' => '3'
'54NN' => '4'
'12QG' => '5'
'76TR' => '6'
'26DF' => '7'
'73NS' => '8'
'98IU' => '9'
); 

$tmp ""
for(
$i=0$i<strlen($txt); $i++) 

 
$char substr($txt,$i,1);
 foreach (
$code as $c=>$n) {
      if (
$n == $char)
         
$tmp .= $c;    
 }
}
return 
$tmp


PHP код:

$cods cods('MN00XH56LK45ZA12UI93DZ94MN00LK45AL01CV32WE56'); // antichat.ru
$decods decods('antichat.ru'); // MN00XH56LK45ZA12UI93DZ94MN00LK45AL01CV32WE56 



Время: 21:10