반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 랜섬웨어
- 보안
- Code Up
- 오늘의 영어
- 리버싱
- 코드업
- 오늘의 보안
- Defcon DFIR CTF 2019
- sql
- Volatility
- defcon.mem
- codeup
- ctf
- C language
- 보안동향
- DEFCON
- C
- Memory Forensics
- C 프로그래밍
- SQLD
- 리버싱 핵심원리
- 멀웨어
- 오늘의 보안동향
- 정보보안기사
- 코딩
- 다운로드
- cmd
- c언어
- 설치
- 악성코드
Archives
- Today
- Total
오브의 빛나는 별
2부 13장 PE File Format(2) 본문
반응형
안녕하세요, 오브입니다.
오늘은 PE 헤더의 많은 구조체 중 DOS Header와 DOS Stub에 대해 알아보겠습니다.
https://staraube.tistory.com/51?category=548043
PE File Format
13.3. PE 헤더
13.3.1. DOS Header
- DOS 파일에 대한 하위 호환성 고려하여 PE 헤더 앞부분에 기존 DOS EXE Header를 확장시킨 IMAGE_DOS_HEADER 구조체 존재
- IMAGE_DOS_HEADER 구조체 크기 40
- e_magic : DOS signature (4D5A =) ASCII 값 “MZ")
- e_Ifanew : NT header의 옵셋을 표시(파일에 따라 가변적인 값을 가짐)
- 모든 PE 파일은 시작 부분(e_magic)에 DOS signature(”MZ”) 존재
- e_Ifanew 값이 가리키는 위치에 NT Header 구조체 존재
- notepad.exe를 hex editor로 열어서 IMAGE_DOS_HEADER 구조체를 확인해보면 파일 시작 2바이트는 4D5A이며, e_Ifanew 값은 000000E0임
- Intel 계열 CPU는 자료를 역순으로 저장하는 리틀 엔디언임
13.3.2. DOS Stub
- DOS Header 밑에는 DOS Stub 존재.
- DOS Stub 존재 여부는 옵션이면 크기 일정x
- DOS Stub이 없어도 파일 실행에는 문제x
- DOS Stub는 코드와 데이터 혼합
- 파일 옵셋 40~4D 영역은 16비트 어셈블리 명령어임
- PE 파일로 인식하기 때문에 32비트 Windows OS에서는 이쪽 명령어 실행x
- Notepad.exe 파일을 DOS 환경에서 실행하거나, DOS용 디버거를 이용하면 코드 실행 가능
- cmd.exe 창에서 “debug C:\Windows\notepad.exe” 입력
- “u” 입력하면 16비트 어셈블리 명령어 나타남
- notepad.exe파일은 32비트용 PE 파일이지만 MS-DOS 호환 모드 가지고 있어서 DOS 환경에서 실행하면 DOS EXE 실행코드가 동작하면서 문자열 출력 후 종료
- 하나의 실행 파일에 DOS와 Windows에서 모두 실행 가능한 파일을 만들 수도 있음
반응형
'리버싱' 카테고리의 다른 글
2부 13장 PE File Format(4) (0) | 2022.04.24 |
---|---|
2부 13장 PE File Format(3) (0) | 2022.04.24 |
2부 13장 PE File Format(1) (0) | 2022.04.23 |
1부 3장 리틀 엔디언 표기법 (0) | 2022.04.23 |
1부 2장 Hello World! 리버싱(3) (0) | 2022.04.23 |