Дизассемблер байт-кода Lua
Дизассемблируйте скомпилированный байт-код Lua 5.1 (файлы .luac), чтобы проверить инструкции виртуальной машины, прототипы функций, константы и локальные переменные. Загрузите файл .luac или вставьте его шестнадцатеричный дамп, чтобы получить полную структурированную дизассемблировку с навигационным деревом функций и подробным декодированием кода операции. Вся обработка является локальной и частной.
No bytecode loaded
Upload a compiled .luac file or paste its hex dump to begin disassembly
Зачем использовать наш дизассемблер байт-кода Lua?
- Анализ байт-кода Lua 5.1: анализ и дизассемблирование скомпилированного байт-кода Lua 5.1 (файлы .luac) с полной поддержкой всех 38 кодов операций, режимов инструкций ABC/ABx/AsBx и правильным декодированием констант, повышающих значений, локальных переменных и информации о номерах строк.
- Дерево вложенных функций: изучите полную иерархию прототипов функций с помощью интерактивного древовидного представления. Перемещайтесь между вложенными замыканиями, просматривайте списки инструкций для каждой функции и углубляйтесь в дочерние функции одним щелчком мыши.
- Подробное декодирование инструкций: каждая инструкция полностью декодируется с использованием необработанного шестнадцатеричного кода, имени кода операции, регистровых операндов и удобочитаемого комментария, объясняющего ее эффект. Специальное выделение инструкций возврата и хвостового вызова упрощает отслеживание потока управления.
- 100% локальная обработка в браузере: весь анализ и дизассемблирование байт-кода происходит полностью в вашем браузере. Ваши файлы .luac и шестнадцатеричные дампы никогда не покидают ваше устройство. Не требуется загрузка на какой-либо сервер, не требуется регистрация и нет ограничений на использование. Бесплатно навсегда.
Распространенные случаи использования дизассемблера байт-кода Lua
- Реверс-инжиниринг приложений Lua: дизассемблируйте скомпилированные сценарии Lua из игр, встроенных систем и приложений, чтобы понять их логику. Дизассемблер байт-кода раскрывает точные инструкции и поток управления, помогая вам анализировать проприетарный или запутанный код Lua.
- Изучение внутреннего устройства виртуальной машины Lua. Используйте дизассемблер в качестве учебного инструмента, чтобы понять, как виртуальная машина Lua выполняет код. Посмотрите, как высокоуровневые конструкции Lua, такие как циклы, вызовы функций, замыкания и табличные операции, преобразуются в инструкции байт-кода.
- Аудит безопасности и анализ вредоносного ПО: анализируйте скомпилированные сценарии Lua на наличие вредоносного поведения. Дизассемблируйте потенциально опасные файлы .luac, чтобы проверить их инструкции, обнаружить подозрительные константные строки и понять весь объем встроенной логики, не выполняя ее.
- Проверка Lua Obfuscator: проверьте эффективность инструментов Lua обфускации, дизассемблировав выходные данные. Убедитесь, что переименование переменных, кодирование строк и обфускация потока управления правильно применяются к уровню байт-кода, а не только к уровню исходного кода.
- Исследование разработки компиляторов и языков: сравнение вывода байт-кода различных компиляторов и версий Lua. Поймите решения по оптимизации, выбор инструкций и то, как разные конструкции Lua по-разному компилируются в версиях с 5.1 по 5.3.
- Восстановление и документация устаревшего кода: восстановите понимание недокументированных или заархивированных модулей Lua путем дизассемблирования их скомпилированных форм. Подробный список инструкций, таблицы констант и информация о локальных переменных помогают восстановить семантику исходного кода.
Что такое дизассемблирование байт-кода Lua?
Дизассемблирование байт-кода Lua — это процесс преобразования скомпилированного байт-кода Lua (файлы .luac) обратно в удобочитаемую последовательность инструкций виртуальной машины. Когда вы компилируете сценарий Lua с помощью luac или запускаете его через интерпретатор Lua, исходный код преобразуется в промежуточный формат байт-кода, который выполняет виртуальная машина Lua. Дизассемблирование меняет этот скомпилированный формат, чтобы выявить точные инструкции, константы, повышающие значения и прототипы функций, составляющие скомпилированную программу, не требуя доступа к исходному исходному коду.
Как работает наш дизассемблер байт-кода Lua
- Ввод: Загрузите скомпилированный файл .luac или вставьте его шестнадцатеричное представление в панель ввода. Инструмент принимает формат байт-кода Lua 5.1, который является наиболее широко поддерживаемой версией для анализа байт-кода и обратного проектирования скомпилированных сценариев Lua.
- Анализ: дизассемблер считывает двоичный заголовок, чтобы проверить подпись, версию, порядок байтов и размеры типов данных. Затем он рекурсивно анализирует все прототипы функций, декодируя каждую 32-битную инструкцию в ее код операции и операнды (A, B, C, Bx или sBx в зависимости от режима инструкции).
- Вывод: структурированный вывод показывает информацию заголовка, дерево функций с возможностью навигации, подробные прототипы каждой функции (параметры, размер стека, состояние переменных аргументов), полный список инструкций с комментариями, таблицу констант и области видимости локальных переменных.
Что отображается во время дизассемблирования
- Информация заголовка: подпись байт-кода, версия Lua, порядок байтов и размеры типов данных (int, size_t, инструкция, число), которые описывают формат байт-кода.
- Дерево функций: иерархическое представление всех прототипов функций в файле байт-кода с диапазонами строк и количеством инструкций для быстрой навигации между вложенными замыканиями.
- Листинг инструкций: каждая инструкция показывает смещение адреса, необработанное шестнадцатеричное значение, имя кода операции (MOVE, LOADK, ADD, CALL и т. д.), декодированный дизассемблер со ссылками на регистры/константы и комментарий на простом английском языке, объясняющий операцию.
- Таблицы констант и локальных переменных: все константные значения (числа, строки, логические значения, ноль), используемые функцией, а также области видимости локальных переменных с их позициями начального и конечного счетчика программы.
Конфиденциальность, безопасность и доступность
Ваша конфиденциальность полностью защищена. Вся обработка дизассемблирования байт-кода Lua происходит полностью в вашем браузере с использованием JavaScript — никакие данные байт-кода никогда не загружаются на какой-либо сервер, не сохраняются, не регистрируются и не передаются. Инструмент не требует создания учетной записи, регистрации и не накладывает ограничений на размер файла. Это совершенно бесплатно, без каких-либо премиальных уровней, ограничений на использование или скрытых платежей. Вы можете использовать его так часто, как это необходимо для исследований в области безопасности, обратного проектирования, образования или любых других целей.
Часто задаваемые вопросы
Дизассемблер байт-кода Lua — это инструмент, который преобразует скомпилированный байт-код Lua (файлы .luac) в удобочитаемую последовательность инструкций виртуальной машины. Он показывает точные коды операций, регистровые операнды, константы и прототипы функций, которые выполняет виртуальная машина Lua, что позволяет вам понять скомпилированную версию сценария Lua без доступа к исходному исходному коду.
Дизассемблер полностью поддерживает формат байт-кода Lua 5.1, который является наиболее широко декомпилируемой и анализируемой версией. Lua 5.1 имеет 38 кодов операций, охватывающих все распространенные операции, такие как перемещения, арифметика, доступ к таблицам, вызовы функций, циклы и замыкания. Анализатор проверяет подпись и версию байт-кода и сообщает об ошибке для неподдерживаемых версий.
Вы можете загрузить файл .luac напрямую с помощью кнопки загрузки или вставить шестнадцатеричный дамп байт-кода в текстовую область. Инструмент автоматически проанализирует двоичные данные и отобразит структурированную дизассемблирование. Для шестнадцатеричных дампов входные данные должны представлять собой простую шестнадцатеричную строку с необязательными пробелами или разрывами строк между байтами.
Да. На панели дерева функций показаны все прототипы функций в файле байт-кода, включая вложенные замыкания. Щелкните любую функцию в дереве, чтобы переключить список инструкций и таблицу констант на эту функцию. Это особенно полезно для анализа запутанного кода Lua, использующего несколько вложенных замыканий.
Выходные данные включают заголовок байт-кода (сигнатура, версия, порядок байтов, размеры данных), дерево функций со всеми прототипами, сведения о каждой функции (параметры, размер стека, статус vararg), полный список инструкций с необработанным шестнадцатеричным кодом, имена кодов операций, декодированные операнды и комментарии, таблица констант со всеми числовыми/строковыми/логическими/ноль значениями и таблица локальных переменных с информацией об области действия.
Lua 5.1 использует три режима кодирования инструкций. Режим ABC кодирует три операнда: A (8-битный регистр назначения), B (9-битный регистр источника или постоянный индекс) и C (9-битный второй источник или параметры). Режим ABx кодирует A и комбинированный операнд Bx (18 бит), используемый для больших индексов, в таблицу констант. Режим AsBx — это знаковый вариант ABx, используемый для смещения перехода в инструкциях JMP, FORLOOP и FORPREP.
Абсолютно. Весь анализ и дизассемблирование байт-кода происходит полностью в вашем браузере с использованием JavaScript. Ваши файлы .luac и шестнадцатеричные дампы никогда не покидают ваше устройство и никогда не отправляются на какой-либо сервер. Учетная запись не требуется, данные не сохраняются и отслеживание не происходит. Это делает инструмент безопасным для анализа проприетарных или конфиденциальных скомпилированных скриптов Lua.
Запутанный байт-код Lua может демонстрировать необычные шаблоны, такие как чрезмерно длинные константные строки (предположительно закодированные полезные данные), большое количество вложенных замыканий, избыточные инструкции MOVE, интенсивное использование GETUPVAL/SETUPVAL для косвенного доступа к переменным или непрозрачный поток управления со многими инструкциями JMP. Дизассемблер помогает обнаружить эти закономерности, показывая полную последовательность команд.
Да, 100% бесплатно. Здесь нет регистрации, премиум-уровня, ограничений на использование и ограничений на размер файлов. Этот инструмент полностью работает в вашем браузере и всегда будет бесплатным для использования в Aback Tools.