본문 바로가기

High Level Technique/Shellcoding

Prologue, Epilogue

Prologue, Epilogue


프롤로그과 에필로그는 함수의 시작과 끝을 말합니다.






Prologue


프롤로그의 ASM 코드는 다음과 같습니다.

push ebp

mov ebp, esp


해당 함수가 시작된 다는 것을 알려줍니다. 해당 함수에서 사용되는 크기또한 프롤로그가 시작되고 해당 공간을 확보하게 됩니다.







Epilogue


에필로그의 ASM 코드는 다음과 같습니다.

mov esp, ebp

pop ebp


leave

ret


에필로그는 위와 같이 2개가 있습니다. 두 개다 같은 말이라고 생각하시면 됩니다. 프롤로그에서 push와 mov를 했으니 반대로 에필로그에서는 mov와 pop를 합니다.




C 컴파일을 이용하여 만든 프로그램들을 보면 프롤로그와 에필로그가 위와 같은 ASM 코드로 되어있는 것을 확인 할 수 있습니다.


'High Level Technique > Shellcoding' 카테고리의 다른 글

Shellcoding  (0) 2016.03.13
Libc, Nasm  (0) 2016.03.11
Stack  (0) 2016.03.11
GDB 사용법  (0) 2016.03.11
Section  (0) 2016.03.11