Да, можно разобрать репозиторий байт-кода HHVM и воссоздать что-то близкое к исходному коду. Хотя в настоящее время HHVM не предоставляет для этого никаких инструментов, байт-код HipHop (HHBC) довольно близок к исходному коду и содержит обширные метаданные, которые включают имена локальных переменных, имена функций и т. д. В этом отношении HHBC имеет некоторое сходство с байт-кодом Java. или .NET IL.
Возможно, некоторые из этих метаданных можно удалить, но многие из них необходимы для обработки таких вещей, как «$f(..)», «call_user_func(..)», «class_exists(..)» и «$ $x", не говоря уже об API отражения (ReflectionClass, ReflectionFunction и т. д.).
Возможно, вы захотите попробовать один из многих обфускаторов PHP->PHP (отказ от ответственности: я не пробовал ни один из этих обфускаторов). Некоторые из лучших обфускаторов PHP->PHP пытаются определить, использует ли ваш код имя функции или имя класса «динамическим» способом, и пытаются избежать переименования этих классов или функций, но я полагаю, что могут быть некоторые угловые случаи, когда эти эвристика терпит неудачу, и требуется некоторая ручная настройка или корректировка.
Кроме того, в зависимости от вашей ситуации может быть возможно использовать разрешения файловой системы для решения вашей проблемы (т. е. запретить обычным пользователям на вашем сервере доступ к репозиторию байт-кода), хотя это может быть вне вашего контроля для ваш вариант использования.
person
Drew Paroski
schedule
12.06.2013