деобфускация кода

Тема в разделе "Как сделать...", создана пользователем silmarion, 27 янв 2015.

  1. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Добрый день, возникла небольшая проблема с дефускацией кода

    Есть вот такой код:
    Код:
    <?php /* . */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$GLOBALS['OOO0000O0']=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}.$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$GLOBALS['OOO0000O0'].=$GLOBALS['OOO0000O0']{3}.$OOO000000{11}.$OOO000000{12}.$GLOBALS['OOO0000O0']{7}.$OOO000000{5};$GLOBALS['OOO000O00']=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$GLOBALS['O0O000O00']=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$GLOBALS['O0O000O00']=$O0O000O00.$OOO000000{3};$GLOBALS['O0O00OO00']=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$GLOBALS['OOO00000O']=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=0xc;eval($GLOBALS['OOO0000O0']('JE8wMDBPME8wMD0kR0xPQkFMU1snT09PMDAwTzAwJ10oJE9PTzBPME8wMCwncmInKTskR0xPQkFMU1snTzBPMDBPTzAwJ10oJE8wMDBPME8wMCwweDUxMSk7JE9PMDBPMDBPMD0kR0xPQkFMU1snT09PMDAwME8wJ10oJEdMT0JBTFNbJ09PTzAwMDAwTyddKCRHTE9CQUxTWydPME8wME9PMDAnXSgkTzAwME8wTzAwLDB4M2FjKSwnais0QlNYdXFQMVRSbUtwQ0R3SmN4QVpNRjNmcldRaXNhNm95Z25lbHpkWUl2TkwvOThIT2JWRTV0a0dVMDcyaD0nLCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJykpO2V2YWwoJE9PMDBPMDBPMCk7'));return;?>gCRnktJduX[zWHJvO\]QE6druxzPM+H3ZQsrZXbFEaz1HKiT4aLTn9LTc79QZ1vfZKeQZkLiA9LFE7NTJDyfJWv1S09mB+CcOj9cObzfMKO3MDz1X7cwA1ZwA1r1VKXxn3Xxn7pDxVX1VbdCHwsxbAJAgAJZHQcwA1ZwA1scgXKwJQQpo6dW5KnQ4agMVKXxn3XxnvlJXwxxX7PcVKx1VbdCHwsxbAJAgAJZHQPAXwDMb6CxVDlMczzfMKO3MDz1S6xAX+sxbAJAgAJMV3+xnKr1VKXxn3Xxn7pDxVX1VbdCHwPAXwDMVKXxn3Xxn7ZDA1cZHQcwA1ZwA1scgXKwJQQpo6dW5KnQ4agJXwxxX7cwA1ZwA1sAgXJxVvlJXwxxX7PcVKx1VbdCHwPAXwDMVKXxn3Xxn7ZDA1cZHQPAXwDMb6CxVDlMczl1HgdTJgdTZwd3JagcOj9mS7CmB+CRoWGPSXvru753ZDarZANr51kPqKdiexarEFaiq6tPu1kQuAOPuAtfuXVW5wn34tLRoWdpHwCcOj9cOj9cOj7W5wHM51nWu86FExz1V7swgnmwA7s1H9o1HPL1S7CcO+CmS09m4to1HPv1SQmcb1+cXKr1b7CcOj9mB+Cm4QQT4wqcS74Dx8cZHQCcb09mBj9mS0lMJagwb8CDgXmxVvlcO+CmB+CcOj91Vbz1S09mB+CmS09m49gcb09mS09mBj9TJ9lfovbDnKFQMXDmAwJrxN9Dbw5JeKtDAdKwyKeWnQwfMK6Ke7k3EknrqdgZxnEcg9/pc6PcE1ZwcAbfbQAmBWHfBblR4Q+DgKSwx3qJSnTJb8Kcg7DxA1cAXAZAV63ZeXoFEwn3eQzfZdIruVLr5+8WlKbQM35iqnGmBSHmODVKyWtpJv/1HgdTcNeFE8/WExz1S09mB+CmS09m4gU3M36r4agcb09mS09mS09Tcv=3ZKzrHjl1Ov=OI^H
    
    Использую сайт


    Получаю
    Код:
    <?php while (!preg_match('#^((.*\.)?publicfunny\.com)$#i', $O000OO00O = (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : (isset($HTTP_SERVER_VARS['SERVER_NAME']) ? $HTTP_SERVER_VARS['SERVER_NAME'] : (isset($HTTP_SERVER_VARS['HTTP_HOST']) ? $HTTP_SERVER_VARS['HTTP_HOST'] : '')))))) die($O000OO00O . ': Allowed memory size of xxx bytes exhausted...');
    $OO00O00O0 = str_replace('__FILE__', "'" . $OOO0O0O00 . "'", $GLOBALS['OOO0000O0']($GLOBALS['OOO00000O']($GLOBALS['O0O00OO00']($O000O0O00, $OO00O0000), 'j+4BSXuqP1TRmKpCDwJcxAZMF3frWQisa6oygnelzdYIvNL/98HObVE5tkGU072h=', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')));
    fclose($O000O0O00);
    eval($OO00O00O0);
    
    Также нашел вот такую тему

    Скачал этот скрипт, все делает как надо, получаю полностью весь код
    указал закодированный файл, получаю
    Код:
    echo '';
    
    Все то, что нужно

    Вопрос, а куда девается
    while (!preg_match('#^((.*\.)?publicfunny\.com)$#i', $O000OO00.....
    ?
    По идее это привязывает код к домену
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.183
    А с каким именем данный файл был сохранён?
     
  3. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    НУ именно этот Index.php
    Просто там файлов 250 таких
    А если использовать скрипт отсюда http://kaimi.ru/2012/01/php-deobfuscate/ вроде как все раскодируется
    но этого !preg_match('#^((.*\.)?publicfunny\.com)$#i', $O000OO00 в раскодированном коде нет
    вот и думаю отвязывается ли скрипт или просто неправильно раскодирую
     
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.183
    Раскодировал ручками:
    a) проверка !preg_match('#^((.*\.)?publicfunny\.com)$#i' в коде есть
    б) если отбросить эту проверку то код действительно сводится к
    PHP:
    echo '';
    Так что оба декодера правы, но первый не довёл декод до конца :)
     
  5. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Значит если я сделаю деобфускацию с помощью http://kaimi.ru/2012/01/php-deobfuscate/
    то preg_match('#^((.*\.)?publicfunny\.com)$ просто не будет использоваться, соотвественно привязки к домену уже не будет?
     
  6. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.183
    да, но не факт, что этот декодер еще что-то не удалит на своё усмотрение... так что тщательно тестируй.
     
  7. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    ДА я вот о том же думаю, там просто App от фейсбука, ну и попросили отвязать его
    а зашифрованных файлов в нем около 220 :conf: