[摘要]+----+----+----+----+----+----+----+----+ 也就是负的0xc. ebp+0xfffffff4, 即ebp-0xc. 所以ebp+0xfffffff4, 就是现...
+----+----+----+----+----+----+----+----+
也就是负的0xc. ebp+0xfffffff4, 即ebp-0xc.
所以ebp+0xfffffff4, 就是现在栈顶指向的那十二个字节的起始地址.
0x804840d <vulFunc+13>: push %eax
接着把得到的地址入栈.
让程序运行到调用strcpy函数之前看看
(gdb) b *0x804840e
Breakpoint 3 at 0x804840e
(gdb) c
Continuing.
Breakpoint 3, 0x804840e in vulFunc ()
(gdb) x/17x $esp
0xbffff698: 0xbffff6a0 0xbffff856 0x4000ae60 0xbffff704
0xbffff6a8: 0xbffff6b8 0xbffff6b8 0x08048443 0xbffff856
0xbffff6b8: 0xbffff6d8 0x400349cb 0x00000002 0xbffff704
0xbffff6c8: 0xbffff710 0x40013868 0x00000002 0x08048350
0xbffff6d8: 0x00000000
这时进程在内存的相关影像为:
(内存高址)
关键词:编写自己的缓冲区溢出运用程序