PIE ELF의 Position Independent Executable 보호기법과 우회 방법 PIE : Executable, 즉 바이너리가 로딩될 때 랜덤한 주소에 매핑되는 보호기법 원리는 공유 라이브러리와 비슷하다. 컴파일러는 바이너리가 메모리 어디에 매핑되어도 실행에 지장이 없도록 바이너리를 위치 독립적으로 컴파일한다. → 코드 영역의 주소 랜덤화 가능 PIE가 설정되어 있으면 코드 영역의 주소가 실행될 때마다 변하기 때문에 ROP와 같은 코드 재사용 공격을 막을 수 있다. no_pie.c //gcc -o no_pie no_pie.c -m32 #include int main(void){ printf("MAIN addr : 0x%p\n", &main); } pie.c //gcc -o pie pie.c..