스택
-
스택 프레임(Stack Frame) 실습 - stackframe.exeIT/리버싱 핵심원리 2017. 11. 23. 17:57
공부를 시작하기에 앞서 본 글은 '리버싱핵심원리', 이승원 저자, 인사이트 를 참고했음을 밝힙니다. 또한 공부하는 입장에서 정리를 목적으로 작성하였기때문에 틀린 정보가 있을수도 있다는 것을 알려드립니다. 관련글 스택(Stack) 이란 무엇인가? 스택 프레임(Stack Frame) 에 대해 알아보자 스택 프레임(Stack Frame) 실습 - stackframe.exe 실습 '리버싱핵심원리' 에서 제공하는 stackframe.exe 파일을 예제로 실습을 진행하겠다. stackframe.exe 다운로드 먼저, "StackFrame.exe" 파일이 어떠한 코드로 작성 되었는지 아래 그림을 통해 살펴보자. StackFrame.cpp 소스코드 위의 코드를 간단히 살펴보면, 1. 메인함수 시작 2. a 변수에 1 ..
-
스택 프레임(Stack Frame) 에 대해 알아보자IT/리버싱 핵심원리 2017. 11. 23. 17:42
공부를 시작하기에 앞서 본 글은 '리버싱핵심원리', 이승원 저자, 인사이트 를 참고했음을 밝힙니다.또한 공부하는 입장에서 정리를 목적으로 작성하였기때문에 틀린 정보가 있을수도 있다는 것을 알려드립니다. 관련 글스택(Stack) 이란 무엇인가?스택 프레임(Stack Frame) 에 대해 알아보자스택 프레임(Stack Frame) 실습 - stackframe.exe 1. 스택 프레임스택 프레임이란 ESP(스택 포인터)가 아닌 EBP(베이스 포인터) 레지스터를 사용하여 스택 내의 로컬 변수, 파라미터, 복귀 주소에 접근하는 기법을 말한다. 스택 프레임을 어셈블리 코드로 보면 다음과 같은 형식이다. PUSH EBPMOV PEB, ESP ; 함수 시작 ; 현재의 ESP(스택포인터)를 EBP에 저장 ... ; 함수..
-
스택(Stack) 이란 무엇인가?IT/리버싱 핵심원리 2017. 11. 23. 17:37
공부를 시작하기에 앞서 본 글은 '리버싱핵심원리', 이승원 저자, 인사이트 를 참고했음을 밝힙니다.또한 공부하는 입장에서 정리를 목적으로 작성하였기때문에 틀린 정보가 있을수도 있다는 것을 알려드립니다. 관련 글스택(Stack) 이란 무엇인가?스택 프레임(Stack Frame) 에 대해서 알아보자스택 프레임(Stack Frame) 실습 - stackframe.exe 1. 스택 프로세스에서 스택 메모리의 역할은 아래와 같다. - 함수 내의 로컬 변수 임시 저장 - 함수 호출 시 파라미터 전달 - 복귀 주소(return address) 저장 스택은 FILO(First In Last Out) 구조 위 그림을 설명하자면, 1. PUSH A 명령을 실행하여 빈 스택에 A가 들어간다. 2. PUSH B 명령을 실행하..