RELRO
-
ELF Memory Protection - RELROSystem hacking training/Knowledge 2018. 3. 7. 15:52
codegate 2013 문제를 풀이하려고 보호기법을 확인해 보니 partial RELRO가 걸려있었다. 이 보호기법에 대해 공부를 해본적이 없어서 정리를 해본다. 먼저 RELRO를 이해하기 위해 배경지식이 필요한데 Lazy Binding 이라는 개념에 대해 정리를 하겠다. Lazy Binding 이란?-> 모든 외부 함수의 주소를 한 번에 로딩하지 않고, 함수 호출 시점에 해당 함수의 주소만 공유 라이브러리로부터 알아오는 것을 의미한다. Dynamic Linking 방식으로 컴파일된 ELF 바이너리는 공유 라이브러리 내에 위치한 함수의 주소를 동적으로 알아오기 위해 GOT(Global Offset Table)를 이용한다. Dynamic Link 방식은 공유 라이브러리를 하나의 메모리 공간에 매핑하고 여..