Как проверить, если файл php обфусцирован? - PullRequest
1 голос
/ 18 августа 2011

Есть ли способ проверить, был ли php-файл скрыт, используя php? Возможно, я думал о регулярном выражении (например, кодированный файл ioncube содержит очень длинную строку алфавита и т. Д.

Ответы [ 3 ]

3 голосов
/ 18 августа 2011

Одной из идей является проверка на наличие пробелов. Первое, что сделает обфускатор, это уберет лишние пробелы. Другая вещь, которую вы можете искать, это количество символов в строке, так как обфускаторы поместят весь код в несколько (одну?) Строк.

1 голос
/ 18 августа 2011

Часто obsfuscators инициализируют очень большие массивы для перевода переменных в менее значимые имена (например, см. obsfucator article

Один из методов может заключаться в поиске этих сверхбольших массивов, близких кверхняя часть класса / файла и т. д. Вы можете подключить xdebug для их изучения / поиска. Все, конечно, зависит от используемой техники запутывания. Проверьте исходный код, могут быть шаблоны, которые они использовали,Вы можете искать на.

0 голосов
/ 18 августа 2011

Я думаю, что вы можете использовать token_get_all () для анализа файла, а затем вычислить некоторую статистику. Например, проверьте количество вызовов функций (в calse obfuscator используется некоторая строка eval () и ничего больше) и вычислите среднюю длину функции - для обфускаторов она обычно составляет около 3-5 символов, для нормального кода PHP она должна быть намного больше. Вы также можете использовать поиск по словарю для имен функций / переменных, проверять комментарии и т. Д. Я думаю, если вы знаете все форматы запутывания, которые вы хотите обнаружить - это будет легко.

...