Есть php простой обфусктор http://whitemind.freevar.com Уникальный в своем роде. Что еще можно добавить в него? Спойлер: ... обфусктор нужен для порчи логики, и таким образом защиты инт. собст. т.к. проще написать новый скрипт чем изменять обфусицированный под свои нужны
Что-то не впечатляет, похоже что он просто меняет название переменных, а это через tokenizer легко можно сделать
мда… замена if/switch/for/while/do{}while вычисления констант( до php7 этого не делалось ) глубокий разбор выражений( тут появляются тмп переменные ) инлайн простых функций(в 4е прохода). --- Добавлено --- не похоже. замены имен переменным вообще нету. т.к. для этого есть куча уже сделанных обфускторов.
Было PHP: <?php $arr = include 'var_export.txt'; $result = array(); foreach ($arr as $row) { $title = $row['nom_u'].' '.$row['naz_u']; if(empty($row['korn_g_naz'])) { $result[trim($row['naz_g'])]['list'][] = $title; } else { $result[trim($row['naz_g'])]['sub'][trim($row['korn_g_naz'])]['list'][] = $title; } } echo "<ul>"; foreach ($result as $key0 => $value0) { echo "<li>".$key0."</li>"; if (isset($value0['list'])) { echo "<li><ul>"; foreach ($value0['list'] as $key1 => $value1) { echo "<li>".$value1."<li>"; } echo "</ul></li>"; } if (isset($value0['sub'])) { echo "<li><ul>"; foreach ($value0['sub'] as $key2 => $value2) { if (is_array($value2['list'])) { echo "<li>".$key2."</li>"; echo "<li><ul>"; foreach ($value2['list'] as $key3 => $value3) { echo "<li>".$value3."</li>"; } echo "</ul></li>"; } } echo "</ul></li>"; } } echo "</ul>"; Стало PHP: <?php $arr = (include 'var_export.txt'); $result = array(); foreach ($arr as $row) { $GOxT13 = $row['nom_u']; $GOxT14 = ' '; $GOxT12 = $GOxT13 . $GOxT14; $GOxT15 = $row['naz_u']; $title = $GOxT12 . $GOxT15; $prf_if_GOxT16 = empty($row['korn_g_naz']); if ($prf_if_GOxT16) { goto lpOn2; } $result[trim($row['naz_g'])]['sub'][trim($row['korn_g_naz'])]['list'][] = $title; goto lpOn3; lpOn2: $result[trim($row['naz_g'])]['list'][] = $title; lpOn3: } echo '<ul>'; foreach ($result as $key0 => $value0) { $GOxT19 = '<li>'; $GOxT20 = $key0; $GOxT18 = $GOxT19 . $GOxT20; $GOxT21 = '</li>'; $GOxT17 = $GOxT18 . $GOxT21; echo $GOxT17; $prf_if_GOxT22 = isset($value0['list']); if ($prf_if_GOxT22) { goto lpOn4; } goto lpOn5; lpOn4: echo '<li><ul>'; foreach ($value0['list'] as $key1 => $value1) { $GOxT25 = '<li>'; $GOxT26 = $value1; $GOxT24 = $GOxT25 . $GOxT26; $GOxT27 = '<li>'; $GOxT23 = $GOxT24 . $GOxT27; echo $GOxT23; } echo '</ul></li>'; lpOn5: $prf_if_GOxT28 = isset($value0['sub']); if ($prf_if_GOxT28) { goto lpOn6; } goto lpOn7; lpOn6: echo '<li><ul>'; foreach ($value0['sub'] as $key2 => $value2) { $prf_if_GOxT29 = is_array($value2['list']); if ($prf_if_GOxT29) { goto lpOn8; } goto lpOn9; lpOn8: $GOxT32 = '<li>'; $GOxT33 = $key2; $GOxT31 = $GOxT32 . $GOxT33; $GOxT34 = '</li>'; $GOxT30 = $GOxT31 . $GOxT34; echo $GOxT30; echo '<li><ul>'; foreach ($value2['list'] as $key3 => $value3) { $GOxT37 = '<li>'; $GOxT38 = $value3; $GOxT36 = $GOxT37 . $GOxT38; $GOxT39 = '</li>'; $GOxT35 = $GOxT36 . $GOxT39; echo $GOxT35; } echo '</ul></li>'; lpOn9: } echo '</ul></li>'; lpOn7: } echo '</ul>'; надо бы добавить галочку для удаления иерархии, понятно что её можно восстановить, ну чтобы было. по коду как бы многое понятно, надо ещё жёстче
? выпрямить foreach не выйдет ни как. т.к. до php 7 эмуляровать foreach средствами if и переходов не возможно
ну я имею ввиду, что код красивый, пробелемы и табуляцию удалить, чтобы был в одну строку, чтобы это страх на новичков нагоняло
пока код стостоит из 3х foreach. к примеру вот код wp-includes/functions.php кстати я прогнал через него весь вордпресс, ошибок небыло --- Добавлено --- хм. тогда надо и переменные в простых функциях переменовывать.. для этого есть 1000 и 1 обфускторов как онлайн так и офлайн
не. полноценный обфускатор. просто смысла менять переносы/табуляцию не вижу я. она востанавливается за секунды. а так человек сунется и сразу поймет что разбираться придется долго --- Добавлено --- --------------- добавил удаление пробелов и переносов, замена имен локальных переменных в простых функциях(опционально)