За последние 24 часа нас посетили 49938 программистов и 1730 роботов. Сейчас ищут 664 программиста ...

Что еще добавить в обфускатор?

Тема в разделе "Беседы", создана пользователем Schrodinger, 8 июн 2016.

  1. Schrodinger

    Schrodinger Новичок

    С нами с:
    8 июн 2016
    Сообщения:
    40
    Симпатии:
    5
    Есть php простой обфусктор http://whitemind.freevar.com
    Уникальный в своем роде.
    Что еще можно добавить в него?
    обфусктор нужен для порчи логики, и таким образом защиты инт. собст.
    т.к. проще написать новый скрипт чем изменять обфусицированный под свои нужны
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Что-то не впечатляет, похоже что он просто меняет название переменных, а это через tokenizer легко можно сделать
     
  3. Schrodinger

    Schrodinger Новичок

    С нами с:
    8 июн 2016
    Сообщения:
    40
    Симпатии:
    5
    мда…
    замена if/switch/for/while/do{}while
    вычисления констант( до php7 этого не делалось )
    глубокий разбор выражений( тут появляются тмп переменные )
    инлайн простых функций(в 4е прохода).
    --- Добавлено ---
    не похоже.
    замены имен переменным вообще нету. т.к. для этого есть куча уже сделанных обфускторов.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Было
    PHP:
    1. <?php
    2. $arr = include 'var_export.txt';
    3. $result = array();
    4. foreach ($arr as $row) {
    5.     $title = $row['nom_u'].' '.$row['naz_u'];
    6.     if(empty($row['korn_g_naz'])) {
    7.         $result[trim($row['naz_g'])]['list'][] = $title;
    8.     } else {
    9.         $result[trim($row['naz_g'])]['sub'][trim($row['korn_g_naz'])]['list'][] = $title;
    10.     }
    11. }
    12. echo "<ul>";
    13. foreach ($result as $key0 => $value0) {
    14.     echo "<li>".$key0."</li>";
    15.     if (isset($value0['list'])) {
    16.         echo "<li><ul>";
    17.         foreach ($value0['list'] as $key1 => $value1) {
    18.         echo "<li>".$value1."<li>";
    19.         }
    20.         echo "</ul></li>";
    21.     }
    22.     if (isset($value0['sub'])) {
    23.         echo "<li><ul>";
    24.         foreach ($value0['sub'] as $key2 => $value2) {
    25.             if (is_array($value2['list'])) {
    26.                 echo "<li>".$key2."</li>";
    27.                 echo "<li><ul>";
    28.                 foreach ($value2['list'] as $key3 => $value3) {
    29.                     echo "<li>".$value3."</li>";
    30.                 }
    31.                 echo "</ul></li>";
    32.             }
    33.         }
    34.         echo "</ul></li>";
    35.     }
    36. }
    37. echo "</ul>";
    Стало
    PHP:
    1. <?php
    2.  
    3. $arr = (include 'var_export.txt');
    4. $result = array();
    5. foreach ($arr as $row) {
    6.     $GOxT13 = $row['nom_u'];
    7.     $GOxT14 = ' ';
    8.     $GOxT12 = $GOxT13 . $GOxT14;
    9.     $GOxT15 = $row['naz_u'];
    10.     $title = $GOxT12 . $GOxT15;
    11.     $prf_if_GOxT16 = empty($row['korn_g_naz']);
    12.     if ($prf_if_GOxT16) {
    13.         goto lpOn2;
    14.     }
    15.     $result[trim($row['naz_g'])]['sub'][trim($row['korn_g_naz'])]['list'][] = $title;
    16.     goto lpOn3;
    17.     lpOn2:
    18.     $result[trim($row['naz_g'])]['list'][] = $title;
    19.     lpOn3:
    20. }
    21. echo '<ul>';
    22. foreach ($result as $key0 => $value0) {
    23.     $GOxT19 = '<li>';
    24.     $GOxT20 = $key0;
    25.     $GOxT18 = $GOxT19 . $GOxT20;
    26.     $GOxT21 = '</li>';
    27.     $GOxT17 = $GOxT18 . $GOxT21;
    28.     echo $GOxT17;
    29.     $prf_if_GOxT22 = isset($value0['list']);
    30.     if ($prf_if_GOxT22) {
    31.         goto lpOn4;
    32.     }
    33.     goto lpOn5;
    34.     lpOn4:
    35.     echo '<li><ul>';
    36.     foreach ($value0['list'] as $key1 => $value1) {
    37.         $GOxT25 = '<li>';
    38.         $GOxT26 = $value1;
    39.         $GOxT24 = $GOxT25 . $GOxT26;
    40.         $GOxT27 = '<li>';
    41.         $GOxT23 = $GOxT24 . $GOxT27;
    42.         echo $GOxT23;
    43.     }
    44.     echo '</ul></li>';
    45.     lpOn5:
    46.     $prf_if_GOxT28 = isset($value0['sub']);
    47.     if ($prf_if_GOxT28) {
    48.         goto lpOn6;
    49.     }
    50.     goto lpOn7;
    51.     lpOn6:
    52.     echo '<li><ul>';
    53.     foreach ($value0['sub'] as $key2 => $value2) {
    54.         $prf_if_GOxT29 = is_array($value2['list']);
    55.         if ($prf_if_GOxT29) {
    56.             goto lpOn8;
    57.         }
    58.         goto lpOn9;
    59.         lpOn8:
    60.         $GOxT32 = '<li>';
    61.         $GOxT33 = $key2;
    62.         $GOxT31 = $GOxT32 . $GOxT33;
    63.         $GOxT34 = '</li>';
    64.         $GOxT30 = $GOxT31 . $GOxT34;
    65.         echo $GOxT30;
    66.         echo '<li><ul>';
    67.         foreach ($value2['list'] as $key3 => $value3) {
    68.             $GOxT37 = '<li>';
    69.             $GOxT38 = $value3;
    70.             $GOxT36 = $GOxT37 . $GOxT38;
    71.             $GOxT39 = '</li>';
    72.             $GOxT35 = $GOxT36 . $GOxT39;
    73.             echo $GOxT35;
    74.         }
    75.         echo '</ul></li>';
    76.         lpOn9:
    77.     }
    78.     echo '</ul></li>';
    79.     lpOn7:
    80. }
    81. echo '</ul>';
    надо бы добавить галочку для удаления иерархии, понятно что её можно восстановить, ну чтобы было.
    по коду как бы многое понятно, надо ещё жёстче
     
  5. Schrodinger

    Schrodinger Новичок

    С нами с:
    8 июн 2016
    Сообщения:
    40
    Симпатии:
    5
    ?
    выпрямить foreach не выйдет ни как. т.к. до php 7 эмуляровать foreach средствами if и переходов не возможно
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    ну я имею ввиду, что код красивый, пробелемы и табуляцию удалить, чтобы был в одну строку, чтобы это страх на новичков нагоняло
     
  7. Schrodinger

    Schrodinger Новичок

    С нами с:
    8 июн 2016
    Сообщения:
    40
    Симпатии:
    5
    пока код стостоит из 3х foreach.
    к примеру вот код wp-includes/functions.php
    кстати я прогнал через него весь вордпресс, ошибок небыло
    --- Добавлено ---
    хм. тогда надо и переменные в простых функциях переменовывать.. для этого есть 1000 и 1 обфускторов как онлайн так и офлайн
     

    Вложения:

    • formatting.zip
      Размер файла:
      84,9 КБ
      Просмотров:
      2
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Так ты делаешь обрезанный или какая цель? Может просто практика?
     
  9. Schrodinger

    Schrodinger Новичок

    С нами с:
    8 июн 2016
    Сообщения:
    40
    Симпатии:
    5
    не. полноценный обфускатор. просто смысла менять переносы/табуляцию не вижу я.
    она востанавливается за секунды.
    а так человек сунется и сразу поймет что разбираться придется долго
    --- Добавлено ---
    ---------------
    добавил удаление пробелов и переносов, замена имен локальных переменных в простых функциях(опционально)
     
    denis01 нравится это.