# LuaDec：Lua 字节码反编译器

> Lua 字节码反编译器，可把编译后的代码块还原为 Lua 源码，提供反汇编模式，可按编号只处理某个嵌套函数，并能推测局部变量声明，推测结果也可手动指定。其 -fc 选项会重新编译每个反编译出的函数，并与原函数逐条指令比较。它以 Lua 5.1 为主要目标，Lua 5.2 和 5.3 的支持标为实验性，延续了 Hisham Muhammad 面向 Lua 5.0 的 LuaDec 和 Zsolt Sztupak 的 LuaDec51。

- 类型：工具
- 目标：二进制 · 游戏
- 类别：原生分析工具
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/viruscamp/luadec>
- 一手来源：<https://github.com/viruscamp/luadec/blob/895d92313fabaee260121c758c8320d1b21dd741/ReadMe.md>
- 目录页面：<https://awesomerea.org/zh/resources/luadec/>
- 记录 JSON：<https://awesomerea.org/resources/luadec/record.json>
- 英文版：[English](https://awesomerea.org/resources/luadec/index.md)

## 使用条件与局限

- 所审阅的 master 提交是默认分支上的最新提交，日期为 2017-01-06，仓库没有发布版本或标签。构建时先初始化作者 lua5 分支仓库中对应的 Lua 子模块（5.1、5.2 或 5.3 分支）并构建该 Lua，再在 luadec/ 中运行 make LUAVER=5.x，同时生成 luareplace 和 luaopswap 辅助工具；仓库附带 Visual C++ 2008 项目文件，README 称已在 VC 2008 和 2013 上测试。Travis CI 配置用 gcc 和 clang 分别构建各 Lua 版本，但不运行测试。
- 输入为对应标准 Lua 版本编译的代码块，也可以是为测试而即时编译的 Lua 源文件。对于使用重排操作码表的虚拟机所生成的字节码，luaopswap 会把该虚拟机编译随附的全操作码脚本所得结果与标准编译结果比较，推导操作码映射，并把文件改写为标准操作码；luareplace 可在两个文件之间替换嵌套函数。-fc 检查逐个函数报告反编译代码重新编译后是否得到相同指令，README 自己的示例中就有失败项，因此需要逐个函数核对输出。
- test/ 中是针对各种控制流结构的小型 Lua 源码用例，test-compiled/lua-5.1 则附带编译后的 Lua 5.1 代码块作为反编译输入，其中包括以迅雷下载器、JX3 插件和 Defense Witches 游戏命名的文件；仓库未说明这些文件的来源或权利。仓库还包含各 Lua 版本的 ChunkSpy 列表工具和 Ruby 比较脚本。
- README 称 LuaDec 是自由软件，采用与原版 LuaDec 相同的许可，但未写明具体许可；仓库中没有许可证文件，GitHub 也未识别出许可证，因此再使用条款并不明确。Lua、LuaAssemblyTools、ilua 和 memwatch 子模块以及随附的 ChunkSpy 脚本各有其条款。

## 一手来源

1. <https://github.com/viruscamp/luadec/blob/895d92313fabaee260121c758c8320d1b21dd741/ReadMe.md>
2. <https://github.com/viruscamp/luadec/blob/895d92313fabaee260121c758c8320d1b21dd741/.gitmodules>
3. <https://github.com/viruscamp/luadec/blob/895d92313fabaee260121c758c8320d1b21dd741/luadec/Makefile>
4. <https://github.com/viruscamp/luadec/blob/895d92313fabaee260121c758c8320d1b21dd741/luadec/luadec.c>
5. <https://github.com/viruscamp/luadec/blob/895d92313fabaee260121c758c8320d1b21dd741/luadec/luaopswap.c>
6. <https://github.com/viruscamp/luadec/blob/895d92313fabaee260121c758c8320d1b21dd741/luadec/luareplace.c>
7. <https://github.com/viruscamp/luadec/blob/895d92313fabaee260121c758c8320d1b21dd741/.travis.yml>
8. <https://github.com/viruscamp/luadec/tree/895d92313fabaee260121c758c8320d1b21dd741/test>

## 同分区更多条目：原生二进制

- [xpcspy XPC 消息拦截工具](https://awesomerea.org/zh/resources/xpcspy/index.md) · 工具
- [de4py Python 反混淆与分析工具包](https://awesomerea.org/zh/resources/de4py/index.md) · 工具
- [Dwarf 基于 Frida 的多平台调试器](https://awesomerea.org/zh/resources/dwarf-debugger/index.md) · 工具
- [bddisasm x86/x64 指令解码库](https://awesomerea.org/zh/resources/bddisasm/index.md) · 工具
- [decompyle3 Python 3.7–3.8 字节码反编译器](https://awesomerea.org/zh/resources/decompyle3/index.md) · 工具
- [DRAKVUF 虚拟化黑盒二进制分析系统](https://awesomerea.org/zh/resources/drakvuf/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
