본문 바로가기

.study/pwnable15

[포너블 기초] x86_handray 보호되어 있는 글 입니다. 2023. 9. 14.
[포너블 기초] 함수 호출 규약 함수 호출 규약은 함수를 호출 했을 때와 함수를 실행하고 반활할 떄의 약속이다. 예를 들어 Main함수에서 sum함수를 호출 할 때, sum으로 인자값을 전달해주는데 어떤 방법을 사용하고, sum함수의 호출이 끝났을 때 sum함수에서 return한 값을 어떻게 main함수로 가져오는지 등을 정해놓은 것이 함수 호출 규약이다. x86 함수 호출 규약 함수호출규약 사용 컴파일러 인자 전달 방식 스택 정리 적용 stdcall MSVC Stack Callee WINAPI cdecl GCC, MSVC Stack Caller 일반 함수 fastcall MSVC ECX, EDX Callee 최적화된 함수 thiscall MSVC ECX(인스턴스), Stack(인자) Callee 클래스의 함수 x86-64 함수 호출 .. 2023. 9. 14.
[포너블 기초] Docker 보호되어 있는 글 입니다. 2023. 9. 13.
[포너블 기초] 스택 프레임 스택 프레임(Stack Frame)이란 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위하여 생성되는 공간이다. 이 공간에는 함수와 관계되는 지역 변수, 매개변수가 저장되며, 함수 호출 시 할당되고, 함수가 종료될때 소멸한다. 이렇게 스택 영역에 차례대로 저장되는 함수의 호출 정보를 스택 프레임이라고 하며, 스택 프레임 덕분에 함수의 호출이 모두 끝난 뒤에, 해당 함수가 호출되기 이전 상태로 되돌아갈 수 있다. 아래에서 부터는 자주 사용하는 어셈블리어에 대해 알아보고 간단한 예제를 통해 스택 프레임에 대해 알아보겠다. 자주 사용하는 어셈블리 명령어와 사용 예시 push push eax: eax의 값을 스택에 저장한다. pop pop eax: 스택의 가장 상위에 있는 값을 꺼내서 eax에 저장한다... 2023. 9. 12.