
🌇│System_Study/📕│Dreamhack_Hacking
Background: Calling Convention
함수 호출 규약🤙 함수의 호출 및 반환의 약속 한 함수에서 다른 함수를 호출 시, 프로그램의 실행 흐름은 다른 함수로 이동합니다. 그리고 호출된 함수가 반환되면 다시 원래의 함수로 돌아와 기존의 실행 흐름을 이어가죠. 함수 호출 시 반환된 이후를 위해 호출자(Caller)의 상태(Stack frame) 및 반환 주소(Return Address)를 저장해야 함! 또한, 호출자는 피호출자(Callee)가 요구한 인자를 전달하며, 피호출자의 실행이 종료 시 반환 값을 전달 받아야함 함수 호출 규약 적용은 일반적으론 컴파일의 몫이며, 프로그래밍 언어에 맞게 호출 규약을 알맞게 적용에 컴파일합니다. 호출 규약은 여러가지가 있으며, 코드에 명시가 안되어 있다면 컴파일에서 지원하는 호출 규약 중 CUP의 아키텍처에 ..