koalazb

用Winhex软件解析PE文件

打开user32.dll
User32.dll
3CH 处为PE头位置:0x F8

DOS头部分:
DOS头部分
转到 F8处
这里写图片描述
PE文件标志(4H字节): 0000455000 00 45 50

映像文件头(14H字节):

NumberOfSections:0006>6NumberOfSections : 00 06 --> 6
SizeOfOptionalHeader:00E0>224SizeOfOptionalHeader:00 E0 --> 224

可选映像头:
部分
这里写图片描述

SizeOfCode():00083000SizeOfCode(可执行代码长度): 00 08 30 00
AddressOfEntryPoint(RVA):000158A0AddressOfEntryPoint(代码入口RVA): 00 01 58 A0
ImageBase(PE34):6BA80000ImageBase(相对PE头偏移 34): 6B A8 00 00
$SectionAlignment: 00 00 10 00 $
FileAlignment:00000200FileAlignment: 00 00 02 00

SizeOfImage:00153000SizeOfImage: 00 15 30 00
NumberOfRvaAndSizes:00000010NumberOfRvaAndSizes: 00 00 00 10
DataDirectory:000024E4DataDirectory : 00 00 24 E4

PS: 017001 70起8字节为导出表描述部分前四个字节为 000024E400 00 24 E4

SectionTable(节表):

从PE映像文件末尾 01 10偏移00E0(SizeOfOptionalHeader)>01F000 E0(SizeOfOptionalHeader) --> 01 F0

这里写图片描述

Name:.textName: .text
VirtualSize:00082E9CVirtualSize: 00 08 2E 9C
VirtualAddress():00001000VirtualAddress(内存对齐后地址): 00 00 10 00
SizeOfRawData():00083000SizeOfRawData(文件对齐后尺寸): 00 08 30 00
PointerToRawData():00000400PointerToRawData(文件对齐处位置): 00 00 04 00

Name:.dataName: .data
VirtualSize:0000103AVirtualSize: 00 00 10 3A
VirtualAddress():00084000VirtualAddress(内存对齐后地址): 00 08 40 00
SizeOfRawData():00001000SizeOfRawData(文件对齐后尺寸): 00 00 10 00
PointerToRawData():00083400PointerToRawData(文件对齐处位置): 00 08 34 00

Name:.idataName: .idata
VirtualSize:00002D72VirtualSize: 00 00 2D 72
VirtualAddress():00086000VirtualAddress(内存对齐后地址): 00 08 60 00
SizeOfRawData():00002E00SizeOfRawData(文件对齐后尺寸): 00 00 2E 00
PointerToRawData():00084400PointerToRawData(文件对齐处位置): 00 08 44 00

Name:.didatName: .didat
VirtualSize:0000004CVirtualSize: 00 00 00 4C
VirtualAddress():00089000VirtualAddress(内存对齐后地址): 00 08 90 00
SizeOfRawData():00000200SizeOfRawData(文件对齐后尺寸): 00 00 02 00
PointerToRawData():00087200PointerToRawData(文件对齐处位置): 00 08 72 00

Name:.rsrcName: .rsrc
VirtualSize:000C3E18VirtualSize: 00 0C 3E 18
VirtualAddress():0008A000VirtualAddress(内存对齐后地址): 00 08 A0 00
SizeOfRawData():000C4000SizeOfRawData(文件对齐后尺寸): 00 0C 40 00
PointerToRawData():00087400PointerToRawData(文件对齐处位置): 00 08 74 00

Name:.relocName: .reloc
VirtualSize:00004DE8VirtualSize: 00 00 4D E8
VirtualAddress():0014E000VirtualAddress(内存对齐后地址): 00 14 E0 00
SizeOfRawData():00004E00SizeOfRawData(文件对齐后尺寸): 00 00 4E 00
PointerToRawData():0014B400PointerToRawData(文件对齐处位置): 00 14 B4 00

Export(导出表):

RVA:000024E4RVA: 00 00 24 E4 (从之前可选头部分关于导出表描述部分读取)
$Offset = 00 00 24 E4 - 00 00 10 00 + 00 00 04 00 = 00 00 18 E4 $

减数为第一个节表 .textVirtualAddress00001000text的VirtualAddress( 00 00 10 00),之后加上的是PointerToRawData00000400)PointerToRawData( 00 00 04 00)

Name:00004A98>3E98Name: 00 00 4A 98 --> 3E 98

这里写图片描述

AddressOfFunction:0000250C>190CAddressOfFunction: 00 00 25 0C --> 19 0C

00059A9000 05 9A 90
0003616000 03 61 60
0003618000 03 61 80
000244D000 02 44 D0
0001E45000 01 E4 50
.....
AddressofName:000035A4>29A4AddressofName: 00 00 35 A4 --> 29 A4

00004AA3>3EA4>ActivateKeyboardLayout00 00 4A A3 --> 3E A4 --> “ActivateKeyboardLayout”
00004ABA>3EBA>AddChipboardFormatListener00 00 4A BA --> 3E BA--> “AddChipboardFormatListener”
00004AD5>3ED5>AdjustWindowRect00 00 4A D5 --> 3E D5 --> “AdjustWindowRect”
00004AE6>3EE6>AdjustWindowRectEx00 00 4A E6 --> 3E E6 --> “AdjustWindowRectEx”
00004AF9>3EF9>AlignRects00 00 4A F9 --> 3E F9 --> “AlignRects”
.....
AddressofOrdinals:0000439C>379CAddressofOrdinals: 00 00 43 9C --> 37 9C

000100 01
000200 02
000300 03
000400 04
000500 05
.....

发表于 2016-11-12 23:10  KoalaZB  阅读(158)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-01-04
  • 2021-10-05
  • 2022-12-23
  • 2021-11-05
  • 2021-04-24
  • 2021-11-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-15
  • 2021-12-24
  • 2021-08-22
  • 2021-09-13
相关资源
相似解决方案