首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在lua字节码中将EQ更改为非EQ

在lua字节码中将EQ更改为非EQ
EN

Stack Overflow用户
提问于 2022-03-10 14:05:07
回答 1查看 70关注 0票数 0

我正在尝试对Lua5.1字节码文件进行二进制修补。我不知道如何将EQ操作的十六进制表示形式更改为十六进制中的not EQ。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-10 15:11:47

没有NEQ操作码。无论比较是EQ还是NEQ,都由EQ操作码中的A字段控制。见https://www.lua.org/source/5.1/lopcodes.h.html#OP_EQ

EQ 1 B C表示if B == CEQ 0 B C表示if B ~= C

在生成的二进制文件上使用luac -l和xxd来尝试一个简单的示例。

EQ操作码中的位布局是B C A OP。见https://www.lua.org/source/5.1/lopcodes.h.html#POS_OP

因此,EQ比较中的A OP给出0x57字节,A OP在NEQ比较中给出0x17字节。

因此,您需要将字节从0x57更改为0x17。你只需要知道哪个字节:-)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71425460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档