Как получить внутреннее сообщение об ошибке при выполнении фрагментов байт-кода Lua? - PullRequest
1 голос
/ 27 июня 2011

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

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

Теперь проблема в том, что в нем не указано смещение файла, я не знаю, в чем именно проблема.

Я предполагаю, что это один или несколько из них:

  • Заголовок все еще не прав
  • Другие коды операций
  • Второй заголовок
  • Некоторое шифрование

Откуда я знаю, какой из них это? Как я узнаю, где это начинает ошибаться? (где возникает первая ошибка)

Формат файла публично не задокументирован.

Раньше я не работал с байт-кодом Lua.

Редактировать: ChunkSpy IS способен декомпилировать байт-код.

1 Ответ

2 голосов
/ 27 июня 2011

Проблема в том, что байт-код не проходит проверку целостности, выполняемую загрузчиком байт-кода. Это, вероятно, означает, что байт-код был сгенерирован вручную, а не компилятором Lua. если вы хотите точно знать , почему проверка целостности не удалась, вам придется выполнить ее пошаговое выполнение в отладчике Си. Я предполагаю, что список байт-кода, сгенерированный ChunkSpy, имеет смысл.

...