Декодирование php кода, методом ROT13

Вторник, Апрель 28, 2009 11:43 vanoID
Рубрики: PHP, Блоггинг

Декодирование php кода, методом ROT13Из-за большого количества разногласий, которы Вы написали мне в ICQ и на E-mail я немного перефразирую суть данной статьи.
Если Вам нужно раскодировать какой-либо кусок кода, который зашифрован при помощи ROT13 [преобразование ROT13 заключается в простом сдвиге каждой латинской буквы на 13 позиций в алфавите, остальные символы не изменяются] так же, это пособие подойдет для тех, кто хочет закодировать свой кусок кода от несанкционированного изменения авторских прав.

В качестве примера, декодирования кода, я буду использовать шаблон для WordPress, после чего, я все удалю и авторские права остануться защищены, а буду делать лишь это в качестве своего удовольствия. :)

Итак, файл footer.php -который и содержит наш злополучный код с ссылками. Если просто удалить его, получаем вот это:

This theme is released under creative commons licence, all links in the footer should remain intact

Да... очень не приятно.

В этом файле меняем текст на нужный нам. Я ограничился своим доменным именем.

Открываем файл functions.php.

Видим там, например вот это:

eval(str_rot13('shapgvba purpx_sbbgre(){$y=\'uers="uggc://serrjbeqcerffgurzrf.eh/" gvgyr="\';$s=qveanzr(__SVYR__).\'/sbbgre.cuc\';$sq=sbcra($s,\'e\');$p=sernq($sq,svyrfvmr($s));spybfr($sq);vs(fgecbf($p,$y)==0){rpub \'Guvf gurzr vf eryrnfrq haqre perngvir pbzzbaf yvprapr, nyy yvaxf va gur sbbgre fubhyq erznva vagnpg\';qvr;}}purpx_sbbgre();'));
eval(str_rot13('shapgvba purpx_urnqre(){vs(!(shapgvba_rkvfgf("purpx_shapgvbaf")&&shapgvba_rkvfgf("purpx_s_sbbgre"))){rpub(\'Guvf gurzr vf eryrnfrq haqre perngvir pbzzbaf yvprapr, nyy yvaxf va gur sbbgre fubhyq erznva vagnpg\');qvr;}}'));

Обратное преобразование выполняется той же функцией.

<?
function rotate($string, $n) {
$length = strlen($string);
$result = '';
for($i = 0; $i < $length; $i++) {
$ascii = ord($string{$i});
$rotated = $ascii;
if ($ascii > 64 && $ascii < 91) {
$rotated += $n;
$rotated > 90 && $rotated += -90 + 64;
$rotated < 65 && $rotated += -64 + 90;
} elseif ($ascii > 96 && $ascii < 123) {
$rotated += $n;
$rotated > 122 && $rotated += -122 + 96;
$rotated < 97 && $rotated += -96 + 122;
}
$result .= chr($rotated);
}
return $result;
}
$enc = rotate('shapgvba purpx_sbbgre(){$y=\'uers="uggc://serrjbeqcerffgurzrf.eh/" gvgyr="\';$s=qveanzr(__SVYR__).\'/sbbgre.cuc\';$sq=sbcra($s,\'e\');$p=sernq($sq,svyrfvmr($s));spybfr($sq);vs(fgecbf($p,$y)==0){rpub \'Guvf gurzr vf eryrnfrq haqre perngvir pbzzbaf yvprapr, nyy yvaxf va gur sbbgre fubhyq erznva vagnpg\';qvr;}}purpx_sbbgre();', 13);
echo "Encoded: $enc
\n";
echo 'Decoded: ' . rotate($enc, -13);
?>

На выходе в итоге получаем примерно следующее:

Encoded: function check_footer(){$l='href="http://freewordpressthemes.ru/" title="';$f=dirname(__FILE__).'/footer.php';$fd=fopen($f,'r');$c=fread($fd,filesize($f));fclose($fd);if(strpos($c,$l)==0){echo 'This theme is released under creative commons licence, all links in the footer should remain intact';die;}}check_footer();
Decoded: shapgvba purpx_sbbgre(){$y='uers="uggc://serrjbeqcerffgurzrf.eh/" gvgyr="';$s=qveanzr(__SVYR__).'/sbbgre.cuc';$sq=sbcra($s,'e');$p=sernq($sq,svyrfvmr($s));spybfr($sq);vs(fgecbf($p,$y)==0){rpub 'Guvf gurzr vf eryrnfrq haqre perngvir pbzzbaf yvprapr, nyy yvaxf va gur sbbgre fubhyq erznva vagnpg';qvr;}}purpx_sbbgre();

Заменяем преобразованные функции в файле на их нормальный вид и убираем строчку

if(strpos($c,$l)==0)
{echo 'This theme is released under creative commons licence, all links in the footer should remain intact'; die;}

Теперь все.

Вы можете оставить ответ, или trackback с Вашего собственного сайта.

7 комментариев “Декодирование php кода, методом ROT13”

  1. stromen сообщил:

    Апрель 28th, 2009 16:47

    И Насколько это законно?


  2. booblik сообщил:

    Апрель 28th, 2009 18:19

    И Насколько это законно?

    у нас все законно =)


  3. Kitich сообщил:

    Апрель 28th, 2009 21:55

    А насколько красиво? В смысле, из морально-этических соображений.

    Человек старался, вкладывал труд и время, а пользователей жаба давит имя в футере оставить?

    Кстати, насколько мне известно, по законам РФ (и международным) «Право авторства является неотчуждаемым» и автор имеет право на указание имени.

    При всем уважении к автору и после огромного количества замечательных статей фраза «был неприятно удивлен...» неприятно удивила (


  4. vanoID сообщил:

    Апрель 29th, 2009 7:43

    При всем уважении к автору и после огромного количества замечательных статей фраза «был неприятно удивлен...» неприятно удивила (

    C кем не бывает, творческий кризис и т.д.

    А по поводу статьи — «ОК!» используйте ее в качестве пособия для кодирования php кода, чтобы оставлять свои копирайты.


  5. Сергей М. сообщил:

    Май 1st, 2009 19:50

    Ну, вообще, как показывает практика, кодируют футера обычно не нормальные авторы, которым, в общем-то приятно то, что их бесплатные темы используют, а мудаки, которые берут чужое (редко пишут свое) и вставляют туда линки на сплоги и дорвеи. Так что все правильно ^^


  6. Arti сообщил:

    Май 7th, 2009 7:56

    Правильно то оно правильно, но вот декодируется это ещё проще :) Открывается редактор шаблона, открывается страница блога. Ищешь место нестыковки, а дальше просто заменяешь место с кодом на часть со страницы.

    И никаких ROT13,ROT14,ROT15...


  7. Andrei сообщил:

    Июнь 16th, 2009 19:54

    Спасибо, помогло нашел в куске «шифровки» условие «==0» и заменил нолик на единицу :)


Оставить комментарий

Я не робот!