Скомпилируйте код hhvm в байт-код & amp; удалить исходные файлы

Можно ли скомпилировать исходный код php в байт-код hhvm с первого раза и удалить исходные файлы.
Байт-код может быть восстановлен при обновлении файлов сценария, очевидно, для этого требуется ручная команда.
Если это возможно, то как?

Читайте немного о Репо. Авторитетный
Я думаю, что это несколько ближе, но, пожалуйста, объясните, если вы согласны с тем же.

Что касается моего вопроса, я хочу защитить свое веб-приложение от кражи лицензии, даже если обфусцированный код можно каким-то образом сделать, чтобы обойти проверку лицензии. Прохождение этого в байт-коде hhvm кажется трудным, отсюда и запрос.

Пожалуйста, помогите мне с другими предложениями, а также

4

Решение

Репо авторитетный вроде как, но это не предназначено для того, что вы хотите. Из соображений производительности он компилирует весь ваш PHP-код в одно хранилище — он полагает, что в хранилище входит весь код, который когда-либо будет существовать (вам не разрешено загружать вещи вне хранилища), и так на его основе может быть сделано много умных оптимизаций. Но поскольку вы не можете расширять репозиторий после его создания, это не очень хорошо для распространения каких-либо библиотек, где вам может понадобиться добавить код позже. Это на самом деле не было построено, чтобы распространяться вообще; формат зависит от версии, и, вероятно, даже незначительный выпуск HHVM не сможет прочитать репозиторий более старого (или более нового) выпуска.

Это также не великая форма запутывания. Он содержит оптимизированные инструкции «HHBC» («байт-код HipHop»), которые не очень сложно вернуть обратно в код PHP, особенно если кто-то был заинтересован в создании инструмента для него. Трудность сделать это была бы наравне с написанием C # или Java-декомпилятора — хороший инструмент с хорошей эвристикой может дать вам что-то, что очень близко к оригинальному исходному коду. (Для сравнения декомпиляция C много Сильнее.)

Так что нет, я бы не использовал для этого репо. Я думаю, что это вызовет у вас больше проблем, чем стоит по вышеуказанным причинам, и может даже не решить вашу проблему. У HHVM нет хорошего механизма для этого — PHP был разработан для чтения интерпретированных исходных файлов на диске. У HHVM есть несколько промежуточных языков, включая HHBC, для целей оптимизации, но они не предназначены для запутывания.

Возможно, вы захотите найти обфускатор исходного кода PHP, который будет выполнять преобразования исходного кода в вашем коде до того, как интерпретатор PHP (либо PHP5, либо HHVM) его увидит. Это далеко за пределами моей компетенции.

Возможно, вы также захотите тщательно обдумать, стоит ли пытаться победить нечестных людей, что в конечном итоге приведет к проигрышной битве. (Всегда можно победить такую ​​защиту лицензий, как это.) Я бы лично хотел потратить немного времени на то, чтобы честные люди были честными, и вы должны тщательно обдумать компромисс, прежде чем тратить на это много времени и сил, а не работать иначе. на вашем продукте.

7

Другие решения

Других решений пока нет …