PLT(Procedure Linkage Table)

외부 프로시저를 연결해주는 테이블

GOT로 점프하는 코드가 적혀있다.

GOT(Global Offset Table)

PLT가 참조하는 테이블, 처음에는 plt+6, 이후에는 실제 라이브러리의 함수 주소가 적혀있다.

 

동적 링크를 사용하면, 여러가지 프로그램들이 메모리에 올라간 하나의 라이브러리를 다같이 사용한다.

그러므로 그 라이브러리의 함수를 호출하기 위해선 어딘가에 공유 라이브러리의 위치를 저장해둬서 필요할 때 그 주소를 이용하여 라이브러리로 가야한다.

그 동작을 하는게 plt와 got이다.

got는 처음 호출될 때에는 plt+6의 주소가 저장되어 있다. 

dl_resolve란 함수를 사용하여 함수의 실제 주소를 가져와 got에 써줍니다.

728x90

'해킹 > writeup' 카테고리의 다른 글

13. HackCTF - RTL_Core  (0) 2021.07.19
11. RTL  (0) 2021.07.19
12. HackCTF - RTL_World  (0) 2021.07.18
9. HackCTF - Offset  (0) 2021.07.11
8. HackCTF - x64 Simple_size_BOF  (0) 2021.07.11

+ Recent posts