А, в принципе, можно продумать алгоритм деобфускации хотя бы несложного php-кода.
К примеру для однофайлового php кода без классов:
1. Выравниваем код с помощью phpedit или ultraedit.
2. Определяем области видимости:
- идем от начала скрипта до function - это нулевая область
(так и пишем в массив 0->'3-1234' 3 - это третий символ после <? 1234 -символ перед function)
- считаем фигурные кавычки - как только закрыли столько же кавычек сколько открыли (либо уперлись во вложенную функцию), пишем в массив 1->'1235-3456' и далее опять будем писать 0 (в случае со вложенной ф-цией - 2) вместо еденицы.
- проходим до конца скрипта.
3. Ищем по всему скрипту переменные и записываем для каждой её область видимости.
4. Для каждой области видимости смотрим частоту каждой переменной, для частых записываем вместо имени $a, $b, итд. Для редких можно заюзать английский словарик.
Глобальные перем-ые тож надо продумать.
Не алгоритм, а пока так, набросок. Подхватывайте.
Конструктивная критика и предложения по многофайловым скриптам приветствуются.
Было бы интересно написать такой скриптик.