【发布时间】:2021-09-06 18:12:34
【问题描述】:
我目前正在开发用于组装 x86 程序集的混淆器(使用原始字节)。
为此,我首先需要构建一个简单的解析器,以“理解”字节。 我使用的数据库主要是通过网站为自己创建的:https://defuse.ca/online-x86-assembler.htm
现在我的问题是: 有些字节可以用两种方式解释,例如(intel 语法):
1. f3 00 00 repz add BYTE PTR [eax],al
2. f3 repz
我的想法是循环遍历字节并将每条指令单独处理, 但是当我到达字节'0xf3'时,我有两种解释方式。
我知道那里有可用的 x86 反汇编程序,我怎么知道这是什么情况?
【问题讨论】:
-
两种方式都是无效的指令,所以我不确定它为什么重要。
rep前缀必须后跟定义它的特定指令之一,而add不是其中之一。 -
也相关:“强制前缀”作为编码指令的一部分,如 SSE2
movdqa:Combining prefixes in SSE
标签: parsing assembly x86 disassembly