我正在尝试在给定的反汇编指令列表中识别所有寄存器以注册指令..
我正在使用 capstone 作为反汇编引擎。
检查“英特尔® 64 和 IA-32 架构软件开发人员手册”后,我发现我需要查看 MOD\RM 字节中的 MOD 位,如果它的 11b 则该指令位于两个寄存器之间。
在我遇到下一个指令(十六进制)之前,它工作得很好:
1) 81 EC 24 06 00 00
2) 83 C4 30
根据顶点(http://www.cenigma.org/4AM3UGY):
1) sub esp, 0x624
2) add esp, 0x30
在第一条指令 MOD\RM='EC' (11101100b) 所以 MOD=11b 在第二条指令 MOD\RM='C4' (11000100b) 所以再次 MOD=11b
并且两者都没有注册注册!
我错过了什么?除了MOD位还有更多吗?
谢谢 !