Parsing 从“英特尔x86语法程序集”识别操作数类型
我正在研究一种解析x86英特尔语法汇编代码并生成抽象表示的方法。具体来说,我试图理解如何将操作数分类为以下已知x86操作数类型之一:寄存器、内存、常量/立即数操作数、标签(如中所述) 例如, 转换此原始程序集的片段:Parsing 从“英特尔x86语法程序集”识别操作数类型,parsing,assembly,x86,Parsing,Assembly,X86,我正在研究一种解析x86英特尔语法汇编代码并生成抽象表示的方法。具体来说,我试图理解如何将操作数分类为以下已知x86操作数类型之一:寄存器、内存、常量/立即数操作数、标签(如中所述) 例如, 转换此原始程序集的片段: push ebp mov ebp, esp push -1 push __ehhandler$_main mov eax, DWORD PTR fs:0 在操作数抽象程序集的这段代码中: push register mov register, regist
push ebp
mov ebp, esp
push -1
push __ehhandler$_main
mov eax, DWORD PTR fs:0
在操作数抽象程序集的这段代码中:
push register
mov register, register
push constant
push constant
mov register, memory
非常感谢关于此任务复杂性的任何指导,或具有相关功能的工具的指针 如果你能汇编代码,只要把它拆开。。。操作码将告诉您指令所处理的操作数类型。
Tomislav如果你能汇编代码,只需将其反汇编成bk。。。操作码将告诉您指令所处理的操作数类型。
Tomislav如果你能汇编代码,只需将其反汇编成bk。。。操作码将告诉您指令所处理的操作数类型。
Tomislav如果你能汇编代码,只需将其反汇编成bk。。。操作码将告诉您指令所处理的操作数类型。
Tomislav这看起来就像简单的指令解码。如果一个愚蠢的芯片能做到这一点,你也能做到吗?听起来像是一个简单的汇编解析器。不过,有一个观察结果是:
\uuuehhandler$\umain
很可能是一个表示地址的符号,push
正在推送该符号的值(即,它是推送常量
而不是推送内存
)。检测操作数类型将是这里最繁琐的任务(但并不困难)。如果你能用at&t符号而不是英特尔来解析程序集,你的生活会简单得多。我并没有像来自否决票的反馈那样要求代码。我举了一个我想要实现的例子,一个链接到一个我从中获得了一些理解的页面,并希望能为我提供一些可以获得更多信息的指针。虽然到目前为止我确实从答案中获得了一些理解,但我不明白为什么它会被否决。最终使用distorm库来完成这项工作。感谢您的有用回复。这看起来就像简单的指令解码。如果一个愚蠢的芯片能做到这一点,你也能做到吗?听起来像是一个简单的汇编解析器。不过,有一个观察结果是:\uuuehhandler$\umain
很可能是一个表示地址的符号,push
正在推送该符号的值(即,它是推送常量
而不是推送内存
)。检测操作数类型将是这里最繁琐的任务(但并不困难)。如果你能用at&t符号而不是英特尔来解析程序集,你的生活会简单得多。我并没有像来自否决票的反馈那样要求代码。我举了一个我想要实现的例子,一个链接到一个我从中获得了一些理解的页面,并希望能为我提供一些可以获得更多信息的指针。虽然到目前为止我确实从答案中获得了一些理解,但我不明白为什么它会被否决。最终使用distorm库来完成这项工作。感谢您的有用回复。这看起来就像简单的指令解码。如果一个愚蠢的芯片能做到这一点,你也能做到吗?听起来像是一个简单的汇编解析器。不过,有一个观察结果是:\uuuehhandler$\umain
很可能是一个表示地址的符号,push
正在推送该符号的值(即,它是推送常量
而不是推送内存
)。检测操作数类型将是这里最繁琐的任务(但并不困难)。如果你能用at&t符号而不是英特尔来解析程序集,你的生活会简单得多。我并没有像来自否决票的反馈那样要求代码。我举了一个我想要实现的例子,一个链接到一个我从中获得了一些理解的页面,并希望能为我提供一些可以获得更多信息的指针。虽然到目前为止我确实从答案中获得了一些理解,但我不明白为什么它会被否决。最终使用distorm库来完成这项工作。感谢您的有用回复。这看起来就像简单的指令解码。如果一个愚蠢的芯片能做到这一点,你也能做到吗?听起来像是一个简单的汇编解析器。不过,有一个观察结果是:\uuuehhandler$\umain
很可能是一个表示地址的符号,push
正在推送该符号的值(即,它是推送常量
而不是推送内存
)。检测操作数类型将是这里最繁琐的任务(但并不困难)。如果你能用at&t符号而不是英特尔来解析程序集,你的生活会简单得多。我并没有像来自否决票的反馈那样要求代码。我举了一个我想要实现的例子,一个链接到一个我从中获得了一些理解的页面,并希望能为我提供一些可以获得更多信息的指针。虽然到目前为止我确实从答案中获得了一些理解,但我不明白为什么它会被否决。最终使用distorm库来完成这项工作。感谢您的有用回复。操作码肯定会告诉类型,我们正在寻找一个工具,可以为我早。所以我最终找到了一个“distorm”。谢谢操作码肯定会告诉我这些类型,我之前一直在寻找一个可以帮我做到这一点的工具。所以我最终找到了一个“distorm”。谢谢操作码肯定会告诉我这些类型,我之前一直在寻找一个可以帮我做到这一点的工具。所以我最终找到了一个“distorm”。谢谢操作码肯定会告诉我这些类型,我之前一直在寻找一个可以帮我做到这一点的工具。所以我最终找到了一个“distorm”。谢谢