Эти инструменты предназначены для того, чтобы сделать ваш код более сложным для понимания за счет снижения его читабельности: они удаляют отступы и комментарии, заменяют значимые имена ваших переменных и пользовательских функций и даже кодируют содержимое вашей строки. Цель состоит в том, чтобы усложнить изменение или повторное использование вашего кода, поскольку PHP является интерпретируемым языком, делающим исходный код видимым для администраторов сайта / приложения. Для этой цели нет смысла запутывать встроенные функции PHP , и вы можете увидеть то же самое, например, с. echo()
ORIGINAL: echo "Obfuscated string.\n";
Gaijin.at: echo base64_decode('T2JmdXNjYXRlZCBzdHJpbmcuCg==');
Tools4Nerds: echo "O\x62f\x75s\x63a\x74\x65\x64 \x73t\x72\x69n\x67\x2e\n";
Для запутывания даже имен встроенных функций, eval()
широко используется для злых целей. Таким образом, исходный код PHP может быть обработан как строка перед выполнением, что позволяет использовать каждый метод для обфускации строки.
ORIGINAL: system('uptime');
OBFUSCATED: eval(base64_decode("c3lzdGVtKCd1cHRpbWUnKTs="));
Даже этот пример показывает, что запутывание невозможно полностью без встроенных функций. Кодирование обычно делает исходный код длиннее, и чем больше вам нужно кодировать, тем медленнее становится выполнение. Администраторы сайта заботятся о производительности сайта и потребляемых дополнительных ресурсах, но это не мешает злоумышленникам использовать сервер для собственных нужд.