
[ROP 시리즈 (2)] PLT, GOT
Linux Exploitation/Fundamentals
2023. 4. 17. 21:34
🔁ROP 시리즈🔁 [ROP 시리즈 (1)] 라이브러리와 링크 [ROP 시리즈 (2)] PLT, GOT 첫번째로 함수를 호출할 때는 GOT에 아직 puts함수의 주소가 적혀있지 않다. 실제 puts함수의 주소는 puts함수 안에있는 _dl_runtime_resolve_fxsave라는 함수를 통해 구해진다. 그리고 이 함수가 GOT에 puts함수의 실제 위치를 적어준다. 그리고 다시 callee로 이동하게된다. 그리고 다시 calle에서 다음 코드들을 쫘르륵~ 실행한다. 이후 다시 프로그램에서 puts를 호출하면 PLT가 GOT의 값을 참조했을 때(GOT의 코드를 실행하는건 아니다! GOT에는 코드가 없다! PLT에만 코드가 들어있다!!), 다시 plt+6로 돌아오지 않고 바로 puts 함수의 실제 위치로 ..