9oat's LAB
함수 주소에 대한 궁금증
BOF 문제를 풀이하면서 생겼었던 궁금증에 대해 연구해보고자 한다. 함수가 한 번 호출되고 나면 함수 호출 메커니즘에 의해 GOT에는 함수의 라이브러리 주소가 저장된다고 알고있다. 그래서 그 주소가 해당 함수의 실제 주소겠거니 생각했는데 gdb의 print로 함수 주소를 출력했을 땐 이와 다른 주소가 출력된다. [사진 1] 이 글을 쓰는 이유.jpg 보통 exploit payload를 구성할 땐 print로 exploit에 사용할 함수의 주소를 출력해서 그 주소를 활용했었는데 이 주소가 got에 저장되는 라이브러리 함수 주소와 다르다니.. 프로그램이 실행되는 중 함수를 호출할 때는 해당 함수의 PLT 주소를 call한다. 이것은 GOT에 저장된 주소를 이용한다는 것과 같기 때문에 실제로 프로그램이 동작하..
Study/System
2017. 5. 20. 02:43