Преобразование байт-кода HHVM в переполнение стека

Можно ли конвертировать байт-код HHVM в PHP?

Что-то вроде этого:

Pseudo-main at 0
maxStackCells: 1
numLocals: 0
numIterators: 0
// line 2
0: String "123"5: Print
6: PopC
7: Int 1
16: RetC
Pseudo-main at 0
maxStackCells: 1
numLocals: 0
numIterators: 0

превращается в

<?php
echo "123";
?>

-1

Решение

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

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

1

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

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

По вопросам рекламы [email protected]