level20 // we are just regular guys 대망의 마지막 문제! 배열의 크기는 80인데 fgets 에서 입력받는 크기는 79이다. 즉 bof 로 ret 값을 변조가 안된다는 것이다. 그럼 무엇을 쓰면 좋을까? 다른것과 비교해 봤을 때 printf에서 차이점이 드러난다. 포맷스트링 %s를 사용하지 않고 단순 배열을 매개변수로 받는다. 이것은 FSB(Format String Bug)취약점이 발생하게 된다. 포맷스트링 에는 여러가지가 있다. %c : 단일문자 출력 %x : 부호없는 16진수 출력 %n : 이전까지 쓰인 byte 수만큼 저장 FSB에서 가장 중요한 포맷스트링은 %x, %n 이다. %x는 메모리를 읽어낼때, %n은 %n이 가리키는 주소에 저장할때! 먼저 메모리 구조를 대충 읽..