read(0, rbp-0x20, 0x38)을 부분에서 버퍼 오버플로우 발생ret2win 함수로 RET를 덮으면 flag 출력 가능offset : 40
read(0, rbp-0x20, 0x60)에서 버퍼 오버플로우 발생system 함수가 사용되었기 때문에 system 함수 주소의 plt와 got 값을 구할 수 있음/bin/cat flag.txt 문자열이 바이너리 내에 존재합니다.offset : 40
callme_one(), callme_two() 및 callme_three() 함수는 각각 0xdeadbeef, 0xcafebabe, 0xd00df00d 인수를 사용하여 순서대로 호출해야 합니다. callme_one(0xdeadbeef, 0xcafebabe, 0xd00
"flag.txt"를 인자로 print_file() 함수를 호출하면 됩니다.mov reg, reg 같은 가젯을 이용해서 메모리에 원하는 값을 쓸 수 있습니다.쓸만한 가젯으로 mov qword ptr r14, r15 ; ret 가 보입니다.r14에 BSS 영역 주소, r
badchars 문자를 사용할 수 없습니다.해결책badchars 문제는 xor 연산을 두번하면 원래 값으로 돌아온다는 성질을 이용하여 해결할 수 있습니다.익스플로잇 계획가젯 찾기pop_rdi = 0x4006a3xor_r15_r14 = 0x400628pop_r12_r13