📄 pe文件结构剖析.htm
字号:
Ord:013Dh<BR> |<BR>:00401088
FF2500204000 Jmp
dword ptr [00402000] <FONT
color=green>;转去IDA表中对应的函数</FONT><BR><BR>* Reference To:
KERNEL32.WriteFile,
Ord:02B9h<BR> |<BR>:0040108E
FF2504204000 Jmp
dword ptr
[00402004]<BR><BR>==============================================================<BR><FONT
color=red>下面是PE文件剖析时设计到的结构,来自Windows.inc文件,供参考:</FONT><BR> <BR>IMAGE_DOS_HEADER
STRUCT<BR> e_magic
WORD ?<BR> e_cblp WORD ?<BR> e_cp WORD ?<BR> e_crlc WORD ?<BR> e_cparhdr
WORD ?<BR> e_minalloc WORD ?<BR> e_maxalloc WORD ?<BR> e_ss WORD ?<BR> e_sp WORD ?<BR> e_csum WORD ?<BR> e_ip WORD ?<BR> e_cs WORD ?<BR> e_lfarlc WORD ?<BR> e_ovno WORD ?<BR> e_res
WORD 4
dup(?)<BR> e_oemid
WORD ?<BR> e_oeminfo
WORD ?<BR> e_res2 WORD 10
dup(?)<BR> e_lfanew DWORD
?<BR>IMAGE_DOS_HEADER ENDS<BR><BR>IMAGE_NT_HEADERS
STRUCT<BR> Signature
DWORD
?<BR> FileHeader IMAGE_FILE_HEADER
<><BR> OptionalHeader IMAGE_OPTIONAL_HEADER32
<><BR>IMAGE_NT_HEADERS ENDS<BR><BR>IMAGE_FILE_HEADER
STRUCT<BR> Machine
WORD ?<BR> NumberOfSections WORD ?<BR> TimeDateStamp
DWORD
?<BR> PointerToSymbolTable DWORD
?<BR> NumberOfSymbols
DWORD
?<BR> SizeOfOptionalHeader WORD ?<BR> Characteristics
WORD ?<BR>IMAGE_FILE_HEADER
ENDS<BR><BR>IMAGE_NUMBEROF_DIRECTORY_ENTRIES
equ 16<BR><BR>IMAGE_OPTIONAL_HEADER32
STRUCT<BR> Magic
WORD
?<BR> MajorLinkerVersion BYTE
?<BR> MinorLinkerVersion BYTE
?<BR> SizeOfCode DWORD ?<BR> SizeOfInitializedData
DWORD ?<BR> SizeOfUninitializedData
DWORD ?<BR> AddressOfEntryPoint
DWORD ?<BR> BaseOfCode DWORD ?<BR> BaseOfData DWORD ?<BR> ImageBase
DWORD ?<BR> SectionAlignment DWORD ?<BR> FileAlignment
DWORD ?<BR> MajorOperatingSystemVersion
WORD
?<BR> MinorOperatingSystemVersion
WORD
?<BR> MajorImageVersion
WORD
?<BR> MinorImageVersion
WORD
?<BR> MajorSubsystemVersion
WORD
?<BR> MinorSubsystemVersion
WORD
?<BR> Win32VersionValue
DWORD ?<BR> SizeOfImage
DWORD ?<BR> SizeOfHeaders
DWORD ?<BR> CheckSum DWORD ?<BR> Subsystem
WORD
?<BR> DllCharacteristics WORD
?<BR> SizeOfStackReserve DWORD ?<BR> SizeOfStackCommit
DWORD ?<BR> SizeOfHeapReserve
DWORD ?<BR> SizeOfHeapCommit DWORD ?<BR> LoaderFlags
DWORD ?<BR> NumberOfRvaAndSizes
DWORD ?<BR> DataDirectory
IMAGE_DATA_DIRECTORY IMAGE_NUMBEROF_DIRECTORY_ENTRIES
dup(<>)<BR>IMAGE_OPTIONAL_HEADER32
ENDS<BR><BR>IMAGE_OPTIONAL_HEADER equ <BR><BR>IMAGE_DATA_DIRECTORY
STRUCT<BR> VirtualAddress DWORD ?<BR> isize
DWORD ?<BR>IMAGE_DATA_DIRECTORY
ENDS<BR><BR>IMAGE_SIZEOF_SHORT_NAME
equ 8<BR><BR>IMAGE_SECTION_HEADER
STRUCT<BR> Name1 db
IMAGE_SIZEOF_SHORT_NAME
dup(?)<BR> union
Misc<BR> PhysicalAddress
dd ?<BR> VirtualSize
dd ?<BR> ends<BR> VirtualAddress dd ?<BR> SizeOfRawData
dd ?<BR> PointerToRawData dd ?<BR> PointerToRelocations dd ?<BR> PointerToLinenumbers dd ?<BR> NumberOfRelocations
dw ?<BR> NumberOfLinenumbers
dw ?<BR> Characteristics
dd ?<BR>IMAGE_SECTION_HEADER
ENDS<BR><BR>IMAGE_IMPORT_DESCRIPTOR
STRUCT<BR> union<BR> Characteristics dd
?<BR> OriginalFirstThunk
dd
?<BR> ends<BR> TimeDateStamp dd
?<BR> ForwarderChain dd
?<BR> Name1 dd
?<BR> FirstThunk
dd ?<BR>IMAGE_IMPORT_DESCRIPTOR
ENDS<BR><BR><BR>IMAGE_IMPORT_BY_NAME
STRUCT<BR> Hint dw ?<BR> Name1
db ?<BR>IMAGE_IMPORT_BY_NAME
ENDS<BR><BR>IMAGE_THUNK_DATA32
STRUCT<BR> union
u1<BR> ForwarderString
dd ?<BR> Function dd ?<BR> Ordinal
dd ?<BR> AddressOfData
dd ?<BR> ends<BR>IMAGE_THUNK_DATA32
ENDS<BR><BR>IMAGE_THUNK_DATA EQU </P></TD>
<TD width=20
background=PE文件结构剖析.files/bg2.gif> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<HR align=center width=750 color=#51a8ff SIZE=1>
<TABLE cellSpacing=0 cellPadding=0 width=750 align=center border=0>
<TBODY>
<TR>
<TD align=middle height=74>
<SCRIPT src="PE文件结构剖析.files/explain.js"></SCRIPT>
</TD>
<TR>
<TD>
<HR align=center width=300 color=#51a8ff SIZE=1>
</TD></TR></TR>
<TR>
<TD align=middle height=74>
<SCRIPT src="PE文件结构剖析.files/foot1.js"></SCRIPT>
</TD></TR></TBODY></TABLE>
<SCRIPT src="PE文件结构剖析.files/left.js"></SCRIPT>
<SCRIPT language=javascript src="PE文件结构剖析.files/pf.js"></SCRIPT>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -