공부/Pwnable
GOT, PLT
passcode 문제를 풀 때 잠깐 등장했던 개념이다. 우리가 프로그래밍을 마치고나도 작성한 코드파일은 컴퓨터 입장에서 그저 텍스트 쪼가리에 불과하다. 그래서 '컴파일'이라는 과정을 거치는데 그 과정을 조금 자세히 설명하겠다. (GNU_C 기준) c파일 -> pre-compiler (*.i) -> compiler(*.s) -> assembler (*.o) -> 링킹과정 -> 실행파일 링킹과정에서는 오브젝트 파일에 실제 함수의 주소를 연결해주는 역할을 한다.(오브젝트 파일은 함수를 호출했을때 실제로 실행해야할 코드가 들어있지 않음) 그런데 여기서 문제가 발생한다. 표준입출력같은 함수들은 하나의 프로그램에서 굉장히 많이 호출되는데 (printf, scanf, cout, cin 등등) 이 함수들의 실행코드들을..
2018. 12. 6. 11:28