lua - 使用 luac 和 string.dump() 创建的 lua 5.1 字节码有区别吗?
问题描述
如果是这样,有没有办法在两者之间进行转换?
我正在尝试将一些由 string.dump 创建的字节码加载到一个名为 unluac 的程序中,但是它不起作用。
如果对任何人有帮助,以下是我尝试反编译的字节:
\27\76\80\72\1\0\0\0\146\10\2\0\161\10\2\0\9\0\0\0\21\0\0\0\228\11\200\0\130\90\116\0\224\159\228\0\152\117\220\0\228\11\200\0\126\238\144\0\228\11\200\0\130\90\116\0\42\128\222\0\122\130\173\0\158\151\177\0\194\172\181\0\6\107\218\0\240\79\114\0\78\149\226\0\90\217\140\0\224\159\228\0\84\183\183\0\224\159\228\0\86\109\169\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\21\0\0\0\228\11\200\0\130\90\116\0\224\159\228\0\152\117\220\0\228\11\200\0\126\238\144\0\228\11\200\0\130\90\116\0\42\128\222\0\122\130\173\0\158\151\177\0\194\172\181\0\6\107\218\0\240\79\114\0\78\149\226\0\90\217\140\0\224\159\228\0\84\183\183\0\224\159\228\0\86\109\169\0\0\0\0\0\1\0\0\0\1\0\0\0\8\0\0\0\21\0\0\0\188\138\224\0\14\67\161\0\90\217\140\0\94\69\112\0\12\141\175\0\58\48\108\0\22\27\104\0\194\172\181\0\114\170\230\0\40\202\236\0\22\27\104\0\78\149\226\0\58\48\108\0\234\45\157\0\194\172\181\0\190\64\210\0\122\130\173\0\6\107\218\0\224\159\228\0\150\191\234\0\0\0\0\0\0\0\0\0\2\0\0\0\1\0\0\0\36\0\0\0\21\0\0\0\188\138\224\0\14\67\161\0\90\217\140\0\94\69\112\0\12\141\175\0\58\48\108\0\22\27\104\0\194\172\181\0\114\170\230\0\40\202\236\0\22\27\104\0\78\149\226\0\58\48\108\0\234\45\157\0\194\172\181\0\190\64\210\0\122\130\173\0\6\107\218\0\224\159\228\0\150\191\234\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\123\10\2\0\4\0\0\0\6\0\0\0\224\159\228\0\4\181\232\0\226\85\214\0\188\138\224\0\40\202\236\0\0\0\0\0\3\0\0\0\154\153\153\153\153\153\27\192\0\0\0\0\0\0\0\0
解决方案
没有区别。两种情况最后都会使用相同luaU_dump()
的。
请注意,尽管 Lua 在字节码块头中保存了某些本机类型的大小。其中一个字段是 type size_t
,这使得字节码不仅在具有不同字节顺序的主机之间不兼容,而且在 32 位和 64 位系统之间也不兼容。
简而言之 - 您必须使用与解释器相同版本的 Lua 编译器 (luac),并针对将运行解释器的完全相同的平台进行编译。即,您不能使用 64 位 luac 来生成由 Lua VM 在 32 位程序中运行的字节码。
推荐阅读
- http - 如何在颤振中使用会话用户?
- hyperledger-fabric - 如何使用 Hyperledger Fabric CA 管理 MSP?
- reactjs - 如何在 React js 中创建 PDF 文件并下载
- java - 我在页面中有 100 多个按钮,我必须单击每个按钮并验证单击后打开的链接和页面
- angular - 如何使firebase数据在打字稿中只读一次
- javascript - 如何在不使用 html2canvas 的情况下将我的 html div 转换为画布?
- microsoft-graph-api - 在 /me/joinedTeams 上使用过滤器不起作用
- php - SQL语句从表中获取,语句中有变量,无法执行
- python - matplotlib 中这个标题栏的正式名称是什么,如何隐藏它?
- javascript - Array.sort() 给出错误的结果