본문 바로가기

Chapter 6. PE header I - PE Format Chapter 6. PE header I - PE Format 1. PE(Portable Executable) Format - Microsoft Windows에서 지원하는 실행파일의 유형 - 유닉스 COFF(Common Object File Format)를 기반으로 한다. - PE Format을 사용하는 File 확장자 · Execute File ◦ exe ◦ scr · Library File ◦ dll ◦ ocx ◦ cpl ◦ drv · Driver File ◦ sys ◦ vxd · Object File ◦ obj - PE Structure · PE 구조는 PE Header와 Body 부분으로 나뉜다. · 해당 실행 Program이 어떻게 Memory에 쌓이고, 관련 DLL File 등 해당 Progr.. 더보기
Chapter 5. Calling Convention Chapter 5. Calling Convention 1. Calling Convention(함수 호출 규약) - 함수를 호출할 때 Stack(Buffer)에 인자 값(Parameter)을 어떤 식으로 전달할 것인지에 대한 규약을 정의한 것 - 함수 호출 후에 ESP를 어떻게 정리하는지에 대한 규약 - Stack(Buffer)의 특징 · Process 내에서 Stack(Buffer)은 주소가 점점 줄어드는 방향으로 값이 채워진다. · 해당 Process의 PE Header에 Stack의 크기가 명시된다. · Stack(Buffer)에 채워지는 변수 값은 지역변수이며 malloc/new와 같은 함수를 이용해 동적 할당되는 변수와는 다르다. · Stack(Buffer)에 채워지는 변수는 해당 Process가.. 더보기
Chapter 4. Stack Chapter 4. Stack 1. Stack Memory - 지역변수와 매개변수가 할당 되는 공간으로 함수를 빠져나가면 소멸되는 변수를 저장하는 Memory 공간 - 임시저장장소 또는 Buffer라고도 하며 Program이 실행되는 Runtime에 Memory의 Stack Area에 생성된다. - Thread 단위로 Memory에 할당된다. - Stack(Buffer)의 위치는 Memory상에 Random으로 생성된다. - 시작위치는 대체로 비슷하거나 같은 위치에 생성되지만 해제된 Program을 재 시작해 Stack을 재할당한다고해서 같은 위치에서 생성되는 것을 보장할 순 없다. - PUSH 명령어를 Data를 입력하고 POP 명령어를 이용해 제거한다. - Algorithm의 Stack 구조와 같은 .. 더보기