Вроде бы я когда-то похожее расшифровывал, и даже скрипт для расшифровки писал. Но тут только кусок кода почему-то. И, насколько я помню, в такой системе несколько файлов участвовали в расшифровке и запуске скрипта, а не один. В одном файле был зашифрован расшифровщик, а в другом сам скрипт)
И в итоге получается не конечный скрипт, а кусок расшифровщика. Сейчас попробую. Просьба ТС залить полностью скрипт на какой-нибудь файлообменник. А пока что кусок, который расшифровался: PHP: $cms_access = "DEMOSEO"; session_start(); $adm = $_SERVER['HTTP_HOST']; if (!file_exists("./cfg/domain")) { $tmp=fopen("./cfg/domain","w"); fwrite($tmp, "$adm"); fclose($tmp); } if ($_POST['update'] == "2" && $_POST['run'] == "config") { $newdomain = $_POST['newdomain']; $domain=file("./cfg/domain"); $find = false; for($i=0;$i<count(
Да я кусок кода выложил , весь просто непомещаеться , а каким образом можно расшифровать, можешь выложить скрипт расшифровки ???
Попробуй так: Берешь весь кусок кода, который расположен в зашифрованном файле после конца php, т.е. после символов "?>". Копируешь его в файл с названием 123.txt. Потом скачиваешь этот скрипт: http://rapidshare.de/files/41077640/index.php.html или отсюда: http://slil.ru/26407220 кладёшь его в одну папку с 123.txt и запускаешь. Скрипт выдаст расшифрованный код. P.S. расшифровщик будет работать только для этого файла.
Вообще-то я выше написал, что это не просто base64. То, что находится после символа "?>", это несколько раз зашифрованный разными алгоритмами код.
Написал универсальный расшифровщик, только во втором зашифрованном файле всё равно имена переменных обфусцированы. Скачать: http://slil.ru/26410093 В первой строчке этого файла необходимо прописать имя расшифровываемого файла. Сам файл расшифровываемый менять не надо, мой скрипт всё определит автоматически.
А ты пробелы убрал, которые форум вставляет в длинные строки, в том числе в длинные base64? Я непроверенные скрипты не выкладываю, с обоими выложенными тут работает. Хотя может быть из-за этого я неправильно смещения отсчитал, попробуй заменить в моём расшифровщике строку fgets($f,3); на fgets($f,2); Или выложите уже хотя бы кусок скрипта на какой-нибудь файлообменник...
Пробелы убрал - не работает. Заменил - не работает. И там это fgets($f,3); не в одном месте: while(!feof($f)) { $txt=fgets($f,2); if($txt=='?') { if(fgets($f,2)=='>') break; } } fgets($f,2); На все попытки пишет: Couldnot decrypt. На серве папка, в папке decrypt.php и 123.php с зашифрованным кодом. В первой строке decrypt.php указал $file='123.php'; //file to decrypt А, ну судя по всему регулярка не пашет, хотя вроде все правильно
Я проверял на своих кодах с убранными пробелами. Всё пашет, могу даже расшифрованные куски выложить. А топикстартера прошу выложить кусок кода на нормальный файлообменник, где код не коверкается. 2Pashkela fgets($f,3); только в одном месте
Сделал так: PHP: preg_match("/base64_decode\('([a-zA-Z0-9\+=\/]+)'\)\)/isU",$f,$m); print_r ($m); if(!isset($m[1])) die('Couldnot decrypt.'); preg_match('/__LINE__;\$(.+)=(\d+);/isU',$f,$m2); print_r ($m2); if(!isset($m2[1]) || !isset($m2[2])) die('Couldnot decrypt.'); вот что выдает: PHP: Array ( [0] => base64_decode('JE8wMDBPME8wMD1mb3BlbigkT09PME8wTzAwLCdyYicpO3doaWxlKC0tJE8wME8wME8wMClmZ2V0cygkTzAwME8wTzAwLDEwMjQpO2ZnZXRzKCRPMDAwTzBPMDsNDA5Nik7JE9PMDBPMDBPMD0oYmFzZTY0X2RlY29kZShzdHJ0cihmcmVhZCgkTzAwME8wTzAwLDM3MiksJzVZSmhSNytxdlBTVndRdVV5MjlXSUZtRURpWFRhcy9CSEw0ck5PYlp0bmpkS0NHNm9weDhNY0F6MzAxZWxmZ2s9JywnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycpKSk7ZXZhbCgkT08wME8wME8wKTs=')) [1] => JE8wMDBPME8wMD1mb3BlbigkT09PME8wTzAwLCdyYicpO3doaWxlKC0tJE8wME8wME8wMClmZ2V0cygkTzAwME8wTzAwLDEwMjQpO2ZnZXRzKCRPMDAwTzBPMDsNDA5Nik7JE9PMDBPMDBPMD0oYmFzZTY0X2RlY29kZShzdHJ0cihmcmVhZCgkTzAwME8wTzAwLDM3MiksJzVZSmhSNytxdlBTVndRdVV5MjlXSUZtRURpWFRhcy9CSEw0ck5PYlp0bmpkS0NHNm9weDhNY0F6MzAxZWxmZ2s9JywnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycpKSk7ZXZhbCgkT08wME8wME8wKTs= ) Array ( [0] => __LINE__;$OO00O0000=30060; [1] => OO00O0000 [2] => 30060 ) Couldnot decrypt. пробелов нет, 100%, это тут уже опять форум фильтрует Нашел проблему, третий пргематч: preg_match("/base64_decode\(strtr\((.+)\);eval/isU",$code1,$m); print_r ($m); if(!isset($m[1])) die('Couldnot decrypt.'); выдает почему-то пустой массив соотвественно дальше уже не работает но тут понятно почему третий прегматч не работает, потому что $code1=base64_decode($m[1]); echo $code1; выдает следующее: $O000O0O00=fopen($OOO0O0O00,'rb');while(--$O00O00O00)fgets($O000O0O00,1024);fgets($O000O0O0; MЉNЙУМ М МJ�\ЩMЌЩXЫЩJЭќЉњ™XY М ММ НМЉK НVRљЌКЬ]”ХќФ]U^LЋUТQ›QQV\ЛР’ ““Ш–ќљ™РСН›ЬXР^ЊМ Y[™ЪПIЛ РPђСQ‘ТR’УS“ФT”ХU•ЦV�X�ЩY™ЪZљЫ[›Ь\њЭ]ќЮ^Њ LЊН MЌОJЛЙКJJNЩ]�[ УМ М М NCouldnot decrypt.
Что то получаеться расшифровка но переменные не определяються Вот ссылка на другой файл той же кодировки http://depositfiles.com/ru/files/8p7be2j76
2Pashkela: видишь, расшифровывается. 2m-Xacker: переменные просто обфусцированы, т.е. у них у всех кривые имена, от этого уже никак не избавиться. Мой скрипт нормально этот тоже расшифровал.
а почему в первом случае переменные нормально расшифровались? ТО есть я так понял работать всё будет только переменные такими остануться?