{....}在dword [...]内部是什么意思?

时间:2018-08-27 20:56:41

标签: assembly x86 disassembly

尤其是edx, dword [ebp-0x10 {var_14}]

我知道ebp-0x10是ebp-16,但是为什么包含{var_14},它指向-14?

当我在GDB中查看ebp-16时,我正在寻找的东西在那里,但是与-14有什么关系?

enter image description here

1 个答案:

答案 0 :(得分:3)

这只是反汇编程序添加的注释,可帮助您跟踪“命名”变量。也许如果有调试符号,您将获得[ebp-0x10 {passcode}]之类的名称。

将其作为评论处理,因为仅此而已。没有[ebp - 0x10]的{​​{1}}是寻址模式的完整表示。

(此外,您还具有可以用来验证反汇编的十六进制机器代码。)


定义上的{}注释为十六进制。请注意,frame_offset - 14处有一个。根据相同的注释,返回地址位于“帧偏移” -2c处,而保存的EBP位于0,因为这是使用EBP作为帧指针的传统堆栈帧。

由于这意味着EBP指向已保存的EBP,因此EBP的偏移量与-4的偏移量相差4。因此frame_offsetframe_offset - 0x14