📄 pe文件结构剖析.htm
字号:
Modules = 1
(decimal) <FONT
color=green>;程序仅调用一dll中的函数</FONT><BR><BR> Import
Module 001: KERNEL32.dll<BR><BR>+++++++++++++++++++ IMPORT
MODULE DETAILS +++++++++++++++<BR><BR> Import
Module 001: KERNEL32.dll <BR><BR>Addr:00002064
hint(013D) Name: GetStdHandle <FONT
color=green>;将调用Kernel32中的三个函数</FONT><BR>Addr:00002074
hint(02B9) Name:
WriteFile <FONT
color=green>;这个Addr给出的值可不函数的真正地址</FONT><BR>Addr:00002048
hint(0075) Name:
ExitProcess <FONT
color=green>;执行时加载器会修改这三个值</FONT><BR><BR>+++++++++++++++++++
ASSEMBLY CODE LISTING
++++++++++++++++++<BR>//********************** Start of Code
in Object .text **************<BR>Program Entry Point =
00401000 (4.exe File Offset:00001600)<BR><BR>* Possible
StringData Ref from Data Obj ->"How are you
!"<BR> |<BR><BR>//********************
Program Entry Point ********<BR>:00401000
6800304000 push
00403000<BR>:00401005
E80E000000 call
00401018<BR>:0040100A
6A00 push
00000000<BR><BR>* Reference To: KERNEL32.ExitProcess,
Ord:0075h<BR> |<BR>:0040100C
E801000000 Call
00401012<BR>:00401011
CC int
03<BR><BR>* Referenced by a CALL at
Address:<BR>|:0040100C <BR>|<BR><BR>* Reference
To: KERNEL32.ExitProcess,
Ord:0075h<BR> |<BR>:00401012
FF2508204000 Jmp
dword ptr [00402008]<BR><BR>* Referenced by a CALL at
Address:<BR>|:00401005 <BR>|<BR>:00401018
55 push
ebp<BR>:00401019
8BEC mov
ebp, esp<BR>:0040101B
83C4F4 add
esp, FFFFFFF4<BR>:0040101E
6AF5 push
FFFFFFF5<BR><BR>* Reference To: KERNEL32.GetStdHandle,
Ord:013Dh<BR> |<BR>:00401020
E863000000 Call
00401088<BR>:00401025
8945FC mov
dword ptr [ebp-04], eax<BR>:00401028
FF7508 push
[ebp+08]<BR>:0040102B
E820000000 call
00401050<BR>:00401030
8945F4 mov
dword ptr [ebp-0C], eax<BR>:00401033
6A00 push
00000000<BR>:00401035
8D45F8 lea
eax, dword ptr [ebp-08]<BR>:00401038
50 push
eax<BR>:00401039
FF75F4 push
[ebp-0C]<BR>:0040103C
FF7508 push
[ebp+08]<BR>:0040103F
FF75FC push
[ebp-04]<BR><BR>* Reference To: KERNEL32.WriteFile,
Ord:02B9h<BR> |<BR>:00401042
E847000000 Call
0040108E<BR>:00401047
8B45F8 mov
eax, dword ptr [ebp-08]<BR>:0040104A
C9 leave<BR>:0040104B
C20400 ret
0004<BR><BR><BR>:0040104E
CC int
03<BR>:0040104F
CC int
03<BR><BR>* Referenced by a CALL at
Address:<BR>|:0040102B <BR>|<BR>:00401050
55 push
ebp<BR>:00401051
8BEC mov
ebp, esp<BR>:00401053
53 push
ebx<BR>:00401054
8B4508 mov
eax, dword ptr [ebp+08]<BR>:00401057
8D5003 lea
edx, dword ptr [eax+03]<BR><BR>* Referenced by a
(U)nconditional or (C)onditional Jump at
Address:<BR>|:0040106F(C)<BR>|<BR>:0040105A
8B18 mov
ebx, dword ptr [eax]<BR>:0040105C
83C004 add
eax, 00000004<BR>:0040105F
8D8BFFFEFEFE lea
ecx, dword ptr [ebx+FEFEFEFF]<BR>:00401065
F7D3 not
ebx<BR>:00401067
23CB and
ecx, ebx<BR>:00401069
81E180808080 and
ecx, 80808080<BR>:0040106F
74E9 je
0040105A<BR>:00401071
F7C180800000 test
ecx, 00008080<BR>:00401077
7506 jne
0040107F<BR>:00401079
C1E910 shr
ecx, 10<BR>:0040107C
83C002 add
eax, 00000002<BR><BR>* Referenced by a (U)nconditional or
(C)onditional Jump at
Address:<BR>|:00401077(C)<BR>|<BR>:0040107F
D0E1 shl
cl, 1<BR>:00401081
1BC2 sbb
eax, edx<BR>:00401083
5B pop
ebx<BR>:00401084
C9 leave<BR>:00401085
C20400 ret
0004<BR><BR>* Referenced by a CALL at
Address:<BR>|:00401020 <BR>|<BR><BR>* Reference
To: KERNEL32.GetStdHandle,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -