教材参考

实验原理请参考教材。附上该部分教材的PDF下载链接

https://gryffinbit.lanzoui.com/iUvfRpbfjlg

实验目的

通过对Win32平台下PE文件结构的分析,熟练掌握PE文件结构中各主要组成部分的构成,以及文件偏移FOA与内存相对虚拟地址RVA之间的转换。

实验内容

  1. 、在Win10下编译如下汇编源程序pedemo.asm,编译后的PE文件命名为pedemo.exe; 文件名: pedemo.asm

    .386
    .model flat, stdcall
    option casemap:none
    include windows.inc
    include kernel32.inc
    include user32.inc
    includelib kernel32.lib
    includelib user32.lib
    
    .data?  
    data   db 1000h dup (?)  ; 未初始化数据
    .data   
    szText db 'Test', 0  ; 5字节数据
    .code
    start:
       invoke MessageBox, NULL, offset szText, NULL, MB_OK
       mov data, 1
       invoke ExitProcess, NULL
    end start
    
  2. 分析pedemo.exe文件中如下几部分内容:

    参考教材P70~84

    (1) DOS头部

    (2) PE标识

    (3) IMAGE_FILE_HEADER

    (4) IMAGE_OPTIONAL_HEADER

    (5) IMAGE_DATA_DIRECTORY中与IMAGE_IMPORT_DESCRIPTOR有关部分

    (6) IMAGE_SECTION_HEADER

    (7) IMAGE_IMPORT_DESCRIPTOR(INT、IAT)

实验要求

1、使用C32asm与LordPE两个工具对pedemo.exe文件进行分析。

​ (可以使用010editor进行分析)

2、要求对PE文件各个部分的字段的值逐一进行说明,其中DOS头部仅需要说明e_magic和e_lfanew两个字段。此外,要求在C32asm工具中对PE文件相关部分分别截图,然后对照截图,对PE结构体中的字段,在实验结果中用表格进行说明。

实验结果

请在此处按照实验要求进行截图,并逐一在其后通过表格对PE结构中各个结构体内部字段值进行记录,例如:

1. IMAGE_DOS_HEADER

地址 值(内存映像) 字段名
00000000 4D5A e_magic
0000003C B0000000 e_lfanew

2. IMAGE_FILE_HEADER

地址 值(内存映像) 字段名
000000B4 4C01 Machine
000000C6 0F01 Characteristics

3. IMAGE_OPTIONAL_HEADER

地址 值(内存映像) 字段名
000000C8 0B01 Magic
000001A6 0000 Size

4. IMAGE_DATA_DIRECTORY中与IMAGE_IMPORT_DESCRIPTOR有关部分

地址 值(内存映像) 字段名
00000128 0000 VirtualAddress
000001A6 0000 Size

5. IMAGE_SECTION_HEADER

地址 值(内存映像) 字段名
000001A8 2E746578 74000000 .text
00001D8h 146 VirtualSize
000001E0 200H SizeofRawdata
000001E4 600H PointerToRaeData

6. IMAGE_IMPORT_DESCRIPTOR

地址 值(内存映像) 字段名
00000610 Kernel32.dll Kernel32.dll
00000614 0 TimeDateStamp
00000618 0 ForwarderChain
0000061C 206A Name
00000620 2000 firstThunk

评论