일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- GT-S80
- Splunk
- Numpy
- SPL
- imread
- dataframe
- GitHub
- mariadb
- Python
- E-P1
- DFS
- SciPy
- pycharm
- 알고리즘
- pandas
- ipad
- pip
- 삼성소프트웨어멤버십
- install
- CNN
- LSTM
- index
- mean
- Button
- Series
- RNN
- javascript
- synology
- Lotto
- keras
Archives
- Today
- Total
잠토의 잠망경
IMAGE_OPTIONAL_HEADER 구조 본문
typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard fields. // WORD Magic; //pe32: 0x10b, PE64: 0x20B, ROM: 0x107, .NET PE: 0x10B BYTE MajorLinkerVersion; //linker Version: 9 BYTE MinorLinkerVersion; //linker version: 0 DWORD SizeOfCode; //코드섹션의 크기 DWORD SizeOfInitializedData; //초기화된 데이터섹션의 크기 DWORD SizeOfUninitializedData; //초기화되지 않은 데이터섹션의 크기 //보통 0이다. DWORD AddressOfEntryPoint; //런타임 시작루틴으로 //점프하는 코드가 있는 곳이다. DWORD BaseOfCode; //첫 번째 코드 섹션이 시작되는 RVA를 의미한다. DWORD BaseOfData; //데이터의 첫 번째 바이트의 RVA를 의미한다. // // NT additional fields. // DWORD ImageBase; // 해당 PE가 가상주소공간에 매핑될 때 // 매핑시키고자하는 메모리 상의 시작주소이다. // exe: 0x00400000, dll: 0x10000000 DWORD SectionAlignment;// 각 섹션의 시작주소는 이것의 배수이다. // 보통 4K==0x1000 이다. DWORD FileAlignment; //PE 파일내에서의 정렬단위 WORD MajorOperatingSystemVersion;// 실행하는데 필요한 운영체제의 최소 버전 WORD MinorOperatingSystemVersion;// WORD MajorImageVersion;//유저 나름대로의 버전을 주입할 수 있도록해준다. WORD MinorImageVersion;// WORD MajorSubsystemVersion;//Subsystem의 버전. Subsystem은 pe를 분석하여 WORD MinorSubsystemVersion;//메모리에 로딩시켜주는 역할을 한다. DWORD Win32VersionValue; //거의 사용되고 있지 않다. 0이다. DWORD SizeOfImage; //Subsystem이 pe를 메모리 상에 로드할 때 확보/예약해야할 //해당 PE의 충분한 크기를 가리킨다. DWORD SizeOfHeaders; //MS-DOS헤더,PE헤더,섹션테이블의 크기를 모두 합친 바이트 DWORD CheckSum; WORD Subsystem; // 유저모드에서는 서브시스템이라는 컴포넌트가 존재한다. //IMAGE_SUBSYSTEM_WINDOWS_GUI(WinMain) //->Image runs in the Windows GUI subsystem. //IMAGE_SUBSYSTEM_WINDOWS_CUI(main) //->Image runs in the Windows character subsystem. WORD DllCharacteristics; DWORD SizeOfStackReserve;//default: 예약 크기 DWORD SizeOfStackCommit;// default: 4K ==0x1000 DWORD SizeOfHeapReserve;// default: 0x10000 DWORD SizeOfHeapCommit;// default: 4K ==0x1000 DWORD LoaderFlags;//0으로 셋 DWORD NumberOfRvaAndSizes;//다음의 DataDirectory의 원소의 개수 16이다. IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];// } IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;
Comments