태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'MZ'에 해당되는 글 1건

  1. 2009.08.24 PE Header 실행파일 구조 (5)
리버싱지식2009. 8. 24. 10:07


Virus 분석하는데 참고용입니다.

클릭하시면 큰 화면으로 보실 수 있습니다.


IMAGE_DOS_HEADER

MZ + 0x00 = e_magic (IMAGE_DOS_SIGNATURE (0x5a4d)
MZ + 0x02 = e_cblp (Bytes on last page of file)
MZ + 0x04 = e_cp (Pages in file)
MZ + 0x06 = e_crlc (Relocations)
MZ + 0x08 = e_cparhdr (Size of header in paragraphs)
MZ + 0x0a = e_minalloc (Minimum extra paragraphs needed)
MZ + 0x0c = e_maxalloc (Maximum extra paragraphs needed)
MZ + 0x0e = e_ss (Initial (relative) SS value)
MZ + 0x10 = e_sp (Initial SP value)
MZ + 0x12 = e_csum (Checksum)
MZ + 0x14 = e_ip (Initial (relative) CS value)
MZ + 0x16 = e_cs (Initial (relative) CS value)
MZ + 0x18 = e_lfarlc (File address of relocation table)
MZ + 0x1a = e_ovno (Overlay number)
MZ + 0x1c = e_res[4] (4 words)
MZ + 0x24 = e_oemid (OEM identifier)
MZ + 0x26 = e_oeminfo (OEM information)
MZ + 0x28 = e_res2[10] ( 10 words)
MZ + 0x3c = e_lfanew (offset PE, 0x4550)

IMAGE_FILE_HEADER

PE +0x04 = Machine
PE +0x06 = NumberOfSections
PE +0x08 = TimeDateStamp
PE +0x0c = PointerToSymbolTable
PE +0x10 = NumberOfSymbols
PE +0x14 = SizeOfOptionalHeader
PE +0x16 = Characteristics

IMAGE_OPTIONAL_HEADER

PE +0x18 = Magic
PE +0x1a = MajorLinkerVersion
PE +0x1b = MinorLinkerVersion
PE +0x1c = SizeOfCode
PE +0x20 = SizeOfInitializedData
PE +0x24 = SizeOfUninitializedData
PE +0x28 = AddressOfEntryPoint
PE +0x2c = BaseOfCode
PE +0x30 = BaseOfData
PE +0x34 = ImageBase
PE +0x38 = SectionAlignment
PE +0x3c = FileAlignment
PE +0x40 = MajorOperatingSystemVersion
PE +0x42 = MinorOperatingSystemVersion
PE +0x44 = MajorImageVersion
PE +0x46 = MinorImageVersion
PE +0x48 = MajorSubsystemVersion
PE +0x4a = MinorSubsystemVersion
PE +0x4c = Win32VersionValue
PE +0x50 = SizeOfImage
PE +0x54 = SizeOfHeaders
PE +0x58 = CheckSum
PE +0x5c = Subsystem
PE +0x5e = DllCharacteristics
PE +0x60 = SizeOfStackReserve
PE +0x64 = SizeOfStackCommit
PE +0x68 = SizeOfHeapReserve
PE +0x6c = SizeOfHeapCommit
PE +0x70 = LoaderFlags
PE +0x74 = NumberOfRvaAndSizes

 IMAGE_DATA_DIRECTORY

PE +0x78 = IMAGE_DIRECTORY_ENTRY_EXPORT
PE +0x78 = VirtualAddress
PE +0x7c = Size

PE +0x80 = IMAGE_DIRECTORY_ENTRY_IMPORT
PE +0x80 = VirtualAddress
PE +0x84 = Size

PE +0x88 = IMAGE_DIRECTORY_ENTRY_RESOURCE
PE +0x88 = VirtualAddress
PE +0x8c = Size

PE +0x90 = IMAGE_DIRECTORY_ENTRY_EXCEPTION
PE +0x90 = VirtualAddress
PE +0x94 = Size

PE +0x98 = IMAGE_DIRECTORY_ENTRY_SECURITY
PE +0x98 = VirtualAddress
PE +0x9c = Size

PE +0xa0 = IMAGE_DIRECTORY_ENTRY_BASERELOC
PE +0xa0 = VirtualAddress
PE +0xa4 = Size

PE +0xa8 = IMAGE_DIRECTORY_ENTRY_DEBUG
PE +0xa8 = VirtualAddress
PE +0xac = Size

PE +0xb0 = IMAGE_DIRECTORY_ENTRY_COPYRIGHT
PE +0xb0 = VirtualAddress
PE +0xb4 = Size

PE +0xb8 = IMAGE_DIRECTORY_ENTRY_GLOBALPTR
PE +0xb8 = VirtualAddress
PE +0xbc = Size

PE +0xc0 = IMAGE_DIRECTORY_ENTRY_TLS
PE +0xc0 = VirtualAddress
PE +0xc4 = Size

PE +0xc8 = IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG
PE +0xc8 = VirtualAddress
PE +0xcc = Size

PE +0xd0 = IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT
PE +0xd0 = VirtualAddress
PE +0xd4 = Size

PE +0xd8 = IMAGE_DIRECTORY_ENTRY_IAT
PE +0xd8 = VirtualAddress
PE +0xdc = Size

PE +0xe0 = IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT
PE +0xe0 = VirtualAddress
PE +0xe4 = Size

PE +0x18 + [PE +0x14] = IMAGE_SECTION_HEADER
(NumberOfRvaAndSizes (PE +0x74) = 0x10, IMAGE_SECTION_HEADER = PE +0xf8)

PE +0xf8 = Name Section1
PE +0x100 = VirtualSize
PE +0x104 = VirtualAddress
PE +0x108 = SizeOfRawData
PE +0x10c = PointerToRawData
PE +0x110 = PointerToRelocations
PE +0x114 = PointerToLinenumbers
PE +0x118 = NumberOfRelocations
PE +0x11a = NumberOfLinenumbers
PE +0x11c = Characteristics
PE +0x120 = Name Section2

Posted by viruslab
TAG ,

댓글을 달아 주세요

  1. 필요한 구조체멤버를 어셈블리코드로 접근시 아주 유용하게 쓰일것 같습니다
    혹은 PE조작을 하는 넘들을 분석할때도 좋을것 같네요
    감사합니다. ^^

    2007.12.27 15:47 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 도움이 되었으면 좋겠습니다.^^

      저도 seyool 님 블로그에 놀러갈께요.

      2007.12.28 14:41 신고 [ ADDR : EDIT/ DEL ]
  2. 감사합니다 ^^
    새해복많이 받으세용~

    2008.01.04 16:21 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 잘 볼게요 ^^

    2009.08.24 18:42 신고 [ ADDR : EDIT/ DEL : REPLY ]
  4. PE 헤더 구조가 필요했는데 정리가 잘되있네요 유용하게 쓰겠습니다

    2009.10.27 09:02 신고 [ ADDR : EDIT/ DEL : REPLY ]