2013-06-02 1 views
3

Возможно ли восстановить исходный код из авторитетного репо-файла HHVM? Я бы хотел использовать HHVM для базовой защиты от несанкционированного доступа при локальных установках моего коммерческого продукта SaaS.HHVM можно восстановить исходный код с авторитетного репо?

Я предполагаю (не проверял) sqlite3 db содержит байт-код и, учитывая динамическую природу PHP, имена переменных .. так как * .pyc можно отменить довольно прямолинейным способом, я должен предположить, что это возможно Вот? Даже если в настоящее время нет доступных инструментов?

ответ

6

Да, возможно разобрать репозиторий байт-кода HHVM и восстановить что-то близкое исходному источнику. Хотя HHVM не предоставляет никаких инструментов для этого в настоящее время, байт-код HipHop (HHBC) довольно близок к исходному источнику и содержит богатые метаданные, включающие имена локальных переменных, имена функций и т. Д. В этом отношении HHBC имеет некоторое сходство с байт-кодом Java или .NET IL.

Возможно, возможно удалить некоторые из этих метаданных, но многие из них необходимы для обработки таких вещей, как «$ f (..)», «call_user_func (..)», «class_exists (..)», , и «$$ x», не говоря уже о API-интерфейсе отражения (ReflectionClass, ReflectionFunction и т. д.).

Возможно, вы захотите попробовать один из многих PHP-> PHP-обфускаторов (отказ от ответственности: я не пробовал ни один из этих обфускаторов). Некоторые из лучших PHP-> PHP-обфускаторов пытаются определить, использует ли ваш код имя функции или имя класса в «динамическом» виде, и старайтесь избегать переименования этих классов или функций, но я бы предположил, что могут быть некоторые угловые случаи, когда эти эвристика не работает, и требуется некоторая ручная настройка или настройка.

Кроме того, в зависимости от ситуации, возможно, вам удастся использовать разрешения файловой системы для решения вашей проблемы (т. Е. Запретить постоянным пользователям на вашем сервере возможность доступа к репозиторию байт-кода), хотя похоже, что это может быть вне вашего контроля за вашим прецедентом.

+0

Благодарим вас за точный ответ и за ваши предложения - приятно получить технический ответ от коммиттера! Я подумаю о моих вариантах. – mappu

 Смежные вопросы

  • Нет связанных вопросов^_^