PE FORMAT

PE FORMAT] -5- Section Header

参考: docs.microsoft.com PE FILEを多数のSECTION構造にした時得られる利点→安定性 typedef struct _IMAGE_SECTION_HEADER { BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; union { DWORD PhysicalAddress; DWORD VirtualSize; } Misc; DWORD VirtualAddress; DWOR…

PE FORMAT] -4- NT Header (DOS Sign, IMAGE_FILE_HEADER, IMAGE_OPTIONAL_HEADER)

参考: docs.microsoft.com NT Headerの構造体はIMAGE_NT_HEADERS. typedef struct _IMAGE_NT_HEADERS { DWORD Signature; // PE sign (50 45 00 00) IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader; } IMAGE_NT_HEADERS32, *PIMAGE…

PE FORMAT] -3- DOS Stub

DOS Headerの下にはDOS Stubが存在する。 DOS StubはCompileするときにoptionで入れるかどうかが選択できる。 notepad.exeのDOS Stub もしプログラムがDOS環境で実行された時、This program cannot be run in DOS modeを出力してそのまま終了させる部分であ…

PE FORMAT] -2- DOS MZ HEADER

PE HEADERは最初にDOS EXE Headerを拡張させたIMAGE_DOS_HEADER構造体が存在。 typedef struct _IMAGE_DOS_HEADER { WORD e_magic; . . . WORD e_lfanew; } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; *structure size: 40 IMAGE_DOS_HEADER (notepad.exe) <必…

PE FORMAT] -1- 基本構造

[ VA & RVA ] - VA (Virtual Address) : プロセス仮想メモリーの絶対アドレス - RVA (Relative Virtual Address) : プロセス仮想メモリーの相対アドレス ** VA = RVA + ImageBase FILEでのアドレスは offset MEMORYでのアドレスは VA https://resources.info…