코드베이스 (1) 썸네일형 리스트형 [Lecture] PIE (Position-Independent Executable) 1. PIC (Position-Independent Code) 정의 리눅스에서 ELF에는 실행파일(Executable)과 공유 오브젝트(Shared Object, SO)가 존재하며, 공유 오브젝트는 libc.so와 같은 라이브러리 파일이 해당된다. 공유 오브젝트는 기본적으로 재배치가 가능하도록 설계되어 있는데, 이러한 성질을 만족하는 코드를 PIC라고 한다. gcc는 PIC 컴파일을 지원한다. [참고] '재배치가 가능하다는 것'은 메모리의 어느 주소에 적재되어도, 코드의 의미가 훼손되지 않음을 의미한다. 2. PIC 실습 2-1. 실습 코드 PIC 적용된 바이너리와 적용되지 않은 바이너리 비교를 위해, 두 가지 방식으로 컴파일해준다. // Name: pic.c // Compile: gcc -o pic p.. 이전 1 다음