存在溢出,但是是一个字节一个字节读进去的
栈上的情况大致如下:
低地址 ↑
+-----------------+ ← rbp - 0x40 (v1[0])
| v1[0] |
| v1[1] |
| ... |
| v1[55] | ← rbp - 0x9
+-----------------+
| v2 | ← rbp - 0x8 (4字节)
+-----------------+
| i | ← rbp - 0x4 (4字节)
+-----------------+
| saved rbp | ← rbp (8字节)
+-----------------+
| return addr | ← rbp + 8 (8字节)
+-----------------+
高地址 ↓
-
v1
是char v1[56]
,占用 56 字节,从rbp - 0x40
到rbp - 0x09
-
v2
是int
(4字节),位于r