level9의 힌트는
/usr/bin/bof의 소스코드이다.
buf2[10]이 먼저 선언되고 buf[10]이 선언되었으므로 스택메모리에
buf1
buf2
순으로 입력되었을 것이다.
그러면 buf1의 버퍼의 크기를 넘는 부분에 go를 입력해주면 if(strncmp(buf2, "go", 2) ==0)이 참이된다.
몇 자리수가 정확히 오버플로우 되는 부분인지 알 수가 없어서 그냥 go를 연속해서 계속 적었다.
Good Skill!이라는 메시지와 함께 level10의 쉘에 접속한 것을 볼 수 있다.
my-pass를 입력하면 비밀번호를 알 수 있다.