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 |