【发布时间】:2014-05-06 09:37:30
【问题描述】:
我希望标题不会有太多误导(我几乎是组装新手)。 我正在玩 gdb 调试器,并有一些汇编代码如下:
0x00000000004005d7 <+0>: push %rbp
0x00000000004005d8 <+1>: mov %rsp,%rbp
0x00000000004005db <+4>: add $0xffffffffffffff80,%rsp
0x00000000004005df <+8>: mov %rdi,-0x78(%rbp)
0x00000000004005e3 <+12>: mov -0x78(%rbp),%rdx
0x00000000004005e7 <+16>: lea eax, [epb-120]
0x00000000004005eb <+20>: mov %rdx,%rsi
0x00000000004005ee <+23>: mov %rax,%rdi
0x00000000004005f1 <+26>: callq 0x400480 <strcpy@plt>
0x00000000004005f6 <+31>: leaveq
0x00000000004005f7 <+32>: retq
我要归档的内容是找出“[epb-120]”处的缓冲区大小。我尝试过在:0x00000000004005e7 处设置一个断点,然后让代码运行以检查 epb 的值,所以我这样做并从该值中减去 0x120 ......但结果会是该缓冲区的绝对大小吗?还是有更好的方法来查找该指针的大小?提前致谢
【问题讨论】:
-
指针只是一个地址 - 它没有与之关联的隐式大小。