PIC와 PIE의 개념 PIC(Position-Independent Code): 재배치(Relocation)가 가능하여, 메모리의 어느 주소에 적재(매핑)되어도 코드의 의미가 훼손되지 않고 제대로 실행될 수 있는 코드 - rip를 기준으로 데이터를 상대 참조(Relative Addressing)하기 때문 PIE(Position-Independent Executable): 메모리의 어느 주소에 적재(매핑)되어도 실행 가능한 실행 파일 - PIE의 모든 코드는 PIC이다.- ASLR이 적용되면, 바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 뿐만 아니라 코드 영역까지도 무작위 주소에 적재됨 (↔ PIE가 아니면, 코드 영역은 랜덤이 아님)- 다만 ASLR이 안 적용되면, 무작위 주소에 적재되지..