본문 바로가기

system

plt, got

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