ping.exe十六进制源码分析.ppt
《ping.exe十六进制源码分析.ppt》由会员分享,可在线阅读,更多相关《ping.exe十六进制源码分析.ppt(26页珍藏版)》请在冰豆网上搜索。
![ping.exe十六进制源码分析.ppt](https://file1.bdocx.com/fileroot1/2022-10/7/b3e4a699-3072-4d69-a8ff-76de4878b88c/b3e4a699-3072-4d69-a8ff-76de4878b88c1.gif)
PING.EXEPING.EXE十六进制源码分析十六进制源码分析冉光宇(20124664)时间:
2014年1月8日ping.exe在存储空间的结构分析:
ping.exe十六进制源码示例如下:
ping.exe十六进制源码整体结构表1ping.exe源码结构序号结构名称起始偏移长度意义1DOS残余头0000h0040hDOS文件头结构数据2DOS文件体0040h0039hDOS执行程序与数据3PE头结点00E8h00F8hPE头结点和可选头结点结构数据4PE文件段表01E0h0074hPE文件3个段表数据ping.exe十六进制源码示例DOS文件头如下:
根据DOSEXE文件头结构体定义算出其大小structDOSEXEHEAD_t;ping.exe十六进制源码示例DOS文件体如下:
DOS文件体由执行代码和数据部分构成执行代码0B49:
00000EPUSHCS0B49:
00011FPOPDS0B49:
0002BA0E00MOVDX,000E0B49:
0005B409MOVAH,090B49:
0007CD21INT210B49:
0009B8014CMOVAX,4C010B49:
000CCD21INT213.2数据部分0B49:
00005468Th0B49:
001069732070726F6772-616D2063616E6E6Fisprogramcanno0B49:
0020742062652072756E-20696E20444F5320tberuninDOS0B49:
00306D6F64652E0D0D0A-24mode.$ping.exe十六进制源码示例DOS文件体如下:
DOS文件体由执行代码和数据部分构成ping.exe十六进制源码示例PE头结点结构定义如下:
typedefstruct_IMAGE_FILE_HEADERUSHORTMachine;USHORTNumberOfSections;ULONGTimeDateStamp;ULONGPointerToSymbolTable;ULONGNumberOfSymbols;USHORTSizeOfOptionalHeader;USHORTCharacteristics;IMAGE_FILE_HEADER,*PIMAGE_FILE_HEADER;由此可计算出其长度ping.exe十六进制源码示例PE头结点结构如下:
ping.exe十六进制源码示例表2PE头结点结构解析偏移长度值意义英文标签0000h0004h50450000文件标志值PEPESign0004h0002h4C01适合Intel80386及以上处理器运行Machine,i3860006h0002h0400PE头后段表的尺寸NumberOfSections0008h0004h64C95B4A创建时间2009714-07:
55:
16TimeDtaStamp000Ch0004h00000000通用对象文件格式符号表在文件中的偏移PointerToSymbolTable0010h0004h00000000符号表数量SizeOfOptionalHeader0014h0002hE000可选头大小SizeOfOptionalHeader0016h0002h0F01系列标志值的集合Characteristicsping.exe十六进制源码示例下面的标准域,附加域,以下面的标准域,附加域,以及数据目录、段表以此类推,及数据目录、段表以此类推,根据其所定义的结构体计算根据其所定义的结构体计算其长度即可。
其长度即可。
ping.exe十六进制源码示例标准域与附加域:
ping.exe十六进制源码示例表3PE可选头标准域数据解析偏移长度值意义0000h002h0B01可执行文件PE320002h001h09此映像主链接器版本0003h004h00此映像次链接器版本0004h004h00280000可执行代码的长度0008h004h00260000Datasegment的长度000Ch004h00000000Bsssegment的长度0010h004hA72A0000映像文件的起始地址0014h004h00100000代码(“.text”段)的相对偏移地址0018h004h00400000未初始化数据(“.bss”段)的相对偏移地址ping.exe十六进制源码示例表4PE可选头部附加数据解析偏移长度值意义0000h0004h00000001Windowexe文件地址空间首选基地址0004h0004h00100000装载时段能够占据的最小空间数量0008h0004h00020000映像文件首先装的最小的信息块间隔000Ch0002h0600操作系统的主版本号000Eh0002h0100操作系统的次版本号0010h0002h0600应用程序的主版本号0012h0002h0100应用程序的次版本号0014h0002h0600子系统的主版本号0016h0002h0100子系统的次版本号0018h0004h00000000WIN32版本值001Ch0004h00800000映像文件将使用的内存空间大小。
0020h0004h00040000文件头数据长度ping.exe十六进制源码示例0024h0004hB97B0000效验和0028h0002h0300标识可执行文件目标子系统,WIN32Console002Ah0002h4081一个DLL映像是否为进程和线程的初始化及终止包含入口点的标记002Ch0004h00000400栈空间的保留值0030h0004h00200000栈空间的申请值0034h0004h00001000堆空间的保留值0038h0004h00100000堆空间的申请值003Ch0004h00000000加载标志0040h0004h10000000标志接下来的DataDirectory数组0044h不定不确定数据目录表示文件中其它可执行信息重要组成部分的位置。
ping.exe十六进制源码示例数据目录:
ping.exe十六进制源码示例表5数据目录数据解析偏移长度值意义与可能的段命令0000h0004h000000000号数据目录ExportTable相对虚拟地址0004h0004h000000000号数据目录长度0008h0004hB43000001号数据目录ImportTable相对虚拟地址000Ch0004hA00000001号数据目录长度0010h0004h006000002号数据目录ResourceTable相对虚拟地址0014h0004h180800002号数据目录长度0018h0004h000000003号数据目录ExceptionTable相对虚拟地址001Ch0004h000000003号数据目录长度0020h0004h000000004号数据目录CertificateTable相对虚拟0024h0004h000000004号数据目录长度0028h0004h007000005号数据目录RelocationTable相对虚拟地址002Ch0004h200200005号数据目录长度0030h0004h301100006号数据目录DebugData相对虚拟地址ping.exe十六进制源码示例0034h0004h1C0000006号数据目录长度0038h0004h000000007号数据目录Architecture-specificdata相对虚拟地址003Ch0004h000000007号数据目录长度0040h0004h000000008号数据目录MachineValue(MIPSGP)相对虚拟地址0044h0004h000000008号数据目录长度0048h0004h000000009号数据目录TLSTable相对虚拟地址004Ch0004h000000009号数据目录长度0050h0004hA811000010号数据目录LoadConfigurationTable相对虚拟地址0054h0004h4000000010号数据目录长度ping.exe十六进制源码示例0058h0004h8002000011号数据目录BoundImportTable相对虚拟地址005Ch0004h9400000011号数据目录长度0060h0004h0010000012号数据目录ImportAddressTable相对虚拟地址0064h0004h0801000012号数据目录长度0068h0004h0000000013号数据目录DelayImportDescriptor相对虚拟地址006Ch0004h0000000013号数据目录长度0070h0004h0000000014号数据目录COM+RuntimeHeader相对虚拟地址0074h0004h0000000014号数据目录长度0078h0004h0000000015号数据目录Reserved相对虚拟地址007Ch0004h0000000015号数据目录长度ping.exe十六进制源码示例段表:
ping.exe十六进制源码示例表6段表结构入口表偏移字节数意义英文标签0000h08h逻辑分段的段名串SECTIONNAME0008h04h本段实际占用字节数VirtualSize000Ch04h本段进入内存后的内存地址偏移VirtualAddress0010h04h本段分配的字节数SizeOfRawData0014h04h本段在文件中的逻辑地址偏移PointerToRelocations0018h04h保留,00000000hPointerToLinenumbers001Ch04h保留,00000000hNumberOfRelocations001Eh02h保留,0000hNumberOfRelocations0020h02h保留,0000hNumberOfLinenubers0024h04h本段加载标志值Characteristicsping.exe十六进制源码示例表7段表数据解析偏移名称长度值意义0000.text08h2E74657874000000逻辑分段的段名串000804h72260000本段实际占用的字节数000C04h00100000本段进入内存后的地址偏移001004h00280000本段分配的字节数001404h00040000本段在文件中的逻辑地址偏移001804h00000000保留,00000000h001C04h00000000保留,00000000h002004h00000000保留,00000000h002404h20000060本段加载标志值ping.exe十六进制源码示例0028.data08h2E64617461000000逻辑分段的段名串003004hA0160000本段实际占用的字节数003404h00400000本段进入内存后的地址偏移003804h00020000本段分配的字节数003C04h002C0000本段在文件中的逻辑地址偏移004004h00000000保留,00000000h004404h00000000保留,00000000h004804h00000000保留,00000000h004C04h400000C0本段加载标志值ping.exe十六进制源码示例0050.rsrc08h2E72737263