HACKCTF - Offset
실행시켜보면 메인 코드를 보면 다음과 같다. 9번줄에서 입력을 받고, 입력받은 내용을 그대로 10번째줄에 select_func함수에 넘긴다. 6번째줄에서 v3 에 two 를 넣고 7번째 줄에서 인자로 받은 src 를 dest에 넘긴다. 여기서 0x1f만큼 넘기게 되는데 dest 가 0x2a이고, v3 가 0xc 라서 두 함수의 차이는 30인데 31만큼 넘겨서 bof가 일어난다. 여기서 무엇을 덮을지 생각하다가 flag를 출력하는 함수를 발견하였고, 이 함수로 넘기면 될것이라고 생각하였다. print_flag 함수가 0x000006d8이고 two 함수의 주소가 0x000006ad 이므로 0x000006까지는 같고 뒤에 1바이트만 다르니까 뒤에 1바이트만 덮어주면 된다고 생각할 수 있 다. desk[0x2a..
2020.07.15