我正在反转在 AMD X86-64 上创建的 ELF64 可执行文件。我在文件末尾附近遇到了这一行,并且对它的含义感到困惑:
nop WORD PTR cs:[rax+rax*1+0x0]
在这种情况下rax
包含0x2329
. 然而,nop
意味着“什么都不做”,所以我很困惑为什么行中包含参数。代码加载了libc
函数调用,所以我假设源代码是 C/C++ 而不是 GAS。
这篇文章的内容很好,但 perror 的解释更恰当,包含更多的“为什么”,而不仅仅是对英特尔文档的独奏。