LuaDec 是一个针对 Lua 5.1 的 Lua 反编译器,对 Lua 5.2 和 5.3 的支持处于实验阶段。
它基于 Hisham Muhammad 的 luadec(针对 Lua 5.0.x)以及 Zsolt Sz. Sztupak 的 LuaDec51。
LuaDec 是自由软件,使用与原始 LuaDec 相同的许可证。
git clone https://github.com/viruscamp/luadec
cd luadec
git submodule update --init lua-5.1
cd lua-5.1
make linux
cd ../luadec
make LUAVER=5.1
如果你想为 Lua 5.2 或 5.3 构建,只需将上面的 5.1 替换为 5.2 或 5.3。
此外还有适用于 vc2008 的项目文件,已在 vc2008 和 vc2013 上测试过。
编译前,请确保 lua-5.1、lua-5.2 或 lua-5.3 中有正确的源代码。
luadec -pn test.lua
0
0_0
0_0_0
0_1
还有一些其他选项,通常用于调试目的,或用于内置局部变量猜测器猜测错误的情况。 使用 -h 获取可用参数的完整列表
原始版本由 Hisham Muhammad 编写(http://luadec.luaforge.net)
由 Zsolt Sz. Sztupak 持续移植到 Lua 5.1(https://github.com/sztupy/luadec51/)
Lua 5.1 的内部机制是从 Kein-Hong Man 的《A No-Frills Introduction to Lua 5.1 VM Instructions》中学到的