[Exploit] Return Oriented Programming (ROP chain)
·
Hacking/Pwnable
Return Gadgetret로 끝나는 어셈블리 조각원하는 명령어 + ret으로 이루어진 가젯들이다가젯(gadgets) : 해당 프로그램이 사용하는 메모리에 이미 있는 기계 명령어 ROP chain리턴 가젯을 사용하여 복잡한 실행 흐름을 구현하는데, 이를 통해 ret2libc, ret2dl-reslove, GOT overwiret 등 payload를 구성할 수 있다.원하는 가젯들을 조합하여 원하는 흐름으로 이어지게 하기 때문에, 한번에 실행 흐름을 제어할 수 없을 때 주로 사용한다.따라서 보통은 ret2libc 등과 조합하여, NX를 bypass 하기 위해 많이 사용된다 * 보통은 pie가 걸려있지 않아야 주소가 code, data segment의 주소가 변경되지 않기에 해당 보호기법이 없어야 사용하기..