Вы сравниваете две разных технологии. LuaJIT это интерпритируемый язык, декомпилится он в общем без проблем.
А так в принципе глубоко фиолетово что реверсить.
dollar, Да сорри, перепутал с lua :)
Но это не меняет сути, при реверсинжинеринге работаешь с машинными командами и совершенно фиалетово на каком языке положил байт в регистр.
Но опять-жеж стоит понимать что подобные вещи делаются ради обхода лицензирования и т.п., и маловероятно что кто-то будет таким образом реверсить приложение для получения приближенной копии, проще написать с нуля зная функционал :)
Lua ведь интерпетируемый язык. Зачем его декомпилировать?
С точки зрения защиты от хакера, то не стоит на первых порах думать о хакерах. Лучше, наоборот, сделать платформу максимально открытой и доступной для распространения.
Сергей Савостин, насколько я понимаю, код компилируется в машинные инструкции во время исполнения программы, а не заранее. То есть это аналогично интерпретации кода. Тогда неясно что подразумевается под защитой кода Lua.
Интересно что zedxxx добавит к этому.
Если я сильно ошибаюсь в чём-то, то просьба разъяснить вкратце своими словами.
Lua и LuaJit умеют компилировать свой код в байткод, так что распространять свои скрипты в сорцах не нужно. Кроме того, мне казалось, что jit умеет генерировать и машинный код, пусть и не для всего скрипта, но судя по всему это не так и машинный код, действительно, генерируется только на лету, во время исполнения.
Сергей Савостин, для справки: байткод lua и luajit отличаются и не взаимозаменяемы. LuaJit может работать в 2-х режимах: только интерпретация или интерпретация + jit компиляция. Судя по информации на сайте, даже в режиме только интерпретации, по скорости он обгоняет просто lua в пару раз.