Автор Андрей Серебряков задал вопрос в разделе Другие языки и технологии
свой PHP Обфускатор и получил лучший ответ
Ответ от .[гуру]
Создание собственного обфускатора для PHP кода реализуется через лексический анализ. Основной инструмент здесь — встроенная функция token_get_all, разбирающая исходный текст на массив лексем. Алгоритм прост: вы читаете содержимое PHP файла и передаете его в эту функцию. Затем массив проходит циклом, где удаляются токены комментариев T_COMMENT и T_DOC_COMMENT, а также пробелы и переносы строк T_WHITESPACE. Оставшиеся значимые токены собираются обратно в одну строку. В результате получается компактный код, неудобный для ручного чтения и изменения. Для обработки проектов скрипт может рекурсивно обходить директории, применяя эту логику только к файлам с расширением php, а остальные просто копировать без изменений. Это дает полный контроль над сокрытием логики перед передачей кода третьим лицам.
Зачем? У тебя там че алгоритмы из высшей математики реализованы? Или может ты написал искусственный интеллект на пхп?
начни с изучения аналогов например с http :// habrahabr . ru /sandbox/74226/
Вы, похоже не понимаете о чем ведете речь... Вам нужно Ваш PHP код обфускировать или Вы ходите написать Обфускатор на PHP и для чего если есть тонна готовых решений?!
Зачем вообще грязь разводить? В любом случае кому надо - доделают то, что им необходимо - хоть обфспускайтесь!
изучи аналоги
не знаю смотри в нете
Кто знает как сделать чтобы фото менялись по таймеру?
Не
изучи аналоги
аналоги
мда
Постановка задачи:
Необходимо модифицировать код для неудобного его дальнейшего изменения. В часности - убрать комментарии, почитстить пробелы, переносы строк.
Зачем? Бывают разные ситуации, когда нужно передать код в третьи руки для ознакомления/тестирования. Чтобы гарантировать оплату (если есть опасения), можно передать
в измененном, неудобном для чтеня человеком виде.
В php есть волшебная функция token_get_all, которая разбирает код на лексемы и выдает результат в виде массива.
Отбросив ненужные части кода, мы получим нужный нам рафинированныый код, который можно смело отдавать на съедение неизвестным тетям и дядям.
Итак,
<?php
// CONFIG
$dir_from = dirname(__FILE__);
$dir_to = 'C:/php/code_obfuscated';
$copyright = 'copyright (C) 2008';
// BEGIN
$data = fs::build_tree($dir_from);
obfuscator::head($copyright);
foreach ($data['files'] as $file) {
$to = str_replace($dir_from, $dir_to, $file);
if (substr($file, -4) == '.php') {
// obfuscate
printf("Convert %s
", $file);
obfuscator::run(
$file,
$to
);
}
else {
// just copy
printf("Copy %s
", $file);
@mkdir(dirname($to), 0, true);
@copy ($file, $to);
}
}
class obfuscator {
static private $_IGNORED_TOKENS = array(
T_COMMENT
, T_DOC_COMMENT
, T_WHITESPACE
, T_ML_COMMENT
);
static private $_head;
static function head($string) {
self::$_head = sprintf("<?php
/*
%s
*/
?>", $string);
}
static function run($from, $to = null) {
$file = file_get_contents($from);
$tokens = token_get_all($file);
$file = '';
foreach ($tokens as $token) {
if (is_string($token)) {
// ;{}[]
$file .= $token;
}
else
if (isset($token[1]) && !in_array($token[0], self::$_IGNORED_TOKENS)) {
$_token = $token[0];
$pre_spacer = (
$_token == T_AS
|| $_token == T_EXTENDS
|| $_token == T_IMPLEMENTS
|| $_token == T_INSTANCEOF
)
? ' '
: '';
$post_spacer = (
$_token == T_VARIABLE
|| $_token == T_DOUBLE_COLON
|| $_token == T_STRING
|| $_token == T_OBJECT_OPERATOR
|| $_token == T_DOUBLE_ARROW
|| $_token == T_CONSTANT_ENCAPSED_STRING
|| $_token == T_LNUMBER
|| $_token == T_NUM_STRING
|| $_token == T_DOLLAR_OPEN_CURLY_BRACES
|| $_token == T_CURLY_OPEN
|| $_token == T_ENCAPSED_AND_WHITESPACE
)
? ''
: ' ';
if ($_token == T_STRING && lcfirst($token[1]) == 'exception') $post_spacer = ' ';
$file .= ($pre_spacer . $token[1] . $post_spacer);
}
}
if (self::$_head) {
$file = self::$_head . $file;
}
if ($to) {
@mkdir(dirname($to), 0, true);
file_put_contents($to, $file);
}
return $file;
}
}
По-умолчанию берем текущий каталог, с помощью fs::build_tree получаем рекурсивный список всех файлов в этой папке (код класса fs не привожу, напишите сами),
затем организуем цикл
ссылка Попробуйте этот обфускатор.
свой PHP Обфускатор
Создание собственного обфускатора для PHP кода реализуется через лексический анализ. Основной
подробнее...