문제 풀이 환경 : ubuntu 20.04 사용 툴 : IDA 7.5 pro PIE 먹고 싶다. 주어진 파일은 문제 바이너리 파일 하나 뿐 Analysis IDA로 까보자. scanf는 전형적으로 bof가 발생하는 함수이다. j0n9hyun 함수에서 flag를 읽어오는데 마침 bof도 일어나니 RET를 저 함수의 주소로 바꾸어주면 될 것 같다. 실행을 해보면 welcome 함수의 주소가 출력이 되는데 끝에가 909로 일정하지만 계속 랜덤하게 주소를 출력하고 있다. 그 이유는 gdb로 welcom함수의 주소를 읽어보면 저런식으로 매우 작은 주소로 설정이 되어 있는데, 주소공간의 어느 위치에 매핑되어도 작동하도록 상대주소로 되어있다는 뜻이다. 아무튼 PIE 보호기법이 설정되어있다는 것을 의심을 할 수 있다...