PLT(Procedure Linkage Table)
프로그램은 공유 라이브러리에 있는 함수를 사용할 일이 많다. 그래서 프로그램 내부에 모든 함수의 참조 테이블을 갖고 있는 것이 효율적이다. 프로그램을 컴파일 할 때 PLT(Procedure Linkage Table) 섹션은 공유 라이브러리에 있는 함수를 호출할 때 사용된다.
GOT(Global Offset Table)
.got 섹션은 PLT 섹션에서 참조하는 섹션이다. 또한 공유 라이브러리에 있는 함수의 실제 주소가 저장되는 섹션이다.
_dll_runtime_resolve
_dll_runtime_resolve 함수는 전달받은 인자 값을 사용하여 호출된 함수의 실제 주소를 구한 후 GOT에 저장한 뒤 호출된 함수로 점프한다.
공유 라이브러리 함수 호출 순서
'system' 카테고리의 다른 글
메시지 루프와 처리 함수의 전체 순서 (0) | 2016.01.07 |
---|---|
BOF protection techniques (0) | 2016.01.03 |
gdb 명령어 (0) | 2015.11.10 |
메모리 구조 (0) | 2015.11.10 |
ShellShock 취약점(CVE-2014-6271 : Remote code execution through bash) (0) | 2015.10.26 |