이번엔 Return Oriented Programming(반환 지향 프로그래밍)에 대한 문제를 풀어보겠다. 우선 ROP라는 것은 ASLR과 NX bit가 걸려 있는 바이너리라는 의미인데, 한번 checksec로 확인해보자! 적중했다. NX bit는 걸려 있는 것을 확인했다! 그럼 IDA로 코드를 보자. 보니 vulnerable_fuction, 즉 취약점 함수가 존재한다. 한번 보자. 캬.... 너무나도 깔끔해서 취한다~ read 함수로 buf에 입력받는다! BOF도 터진다! 그런데 printf가 없어서 인자가 3개인 write 함수를 써야 한다.... 따라서 가젯도 pop pop pop ret를 찾아야 한다. ㅠㅠ 바아아아~로 찾았다! pop pop pop ret = 0x8048509 이번엔 libc의 ..