00401640
/
$ 6A FF push
-
1
; 关键代码,作一些比较
00401642
|
.
68
18204000
push
00402018
; SE 处理程序安装
00401647
|
.
64
:A1
0000000
>
mov eax, dword ptr fs:[
0
]
0040164D
|
.
50
push eax
0040164E
|
.
64
:
8925
00000
>
mov dword ptr fs:[
0
], esp
00401655
|
. 83EC
28
sub esp,
28
00401658
|
.
53
push ebx
00401659
|
.
55
push ebp
0040165A
|
. 8BE9 mov ebp, ecx
0040165C
|
. B0
65
mov al,
65
0040165E
|
. B1 6C mov cl, 6C
00401660
|
. B2
72
mov dl,
72
00401662
|
. 884C24
11
mov
byte
ptr [esp
+
11
], cl
00401666
|
. 884C24
16
mov
byte
ptr [esp
+
16
], cl
0040166A
|
. 884C24
17
mov
byte
ptr [esp
+
17
], cl
0040166E
|
. B1
67
mov cl,
67
00401670
|
. B3
73
mov bl,
73
00401672
|
. 884C24
22
mov
byte
ptr [esp
+
22
], cl
00401676
|
. 884C24
23
mov
byte
ptr [esp
+
23
], cl
0040167A
|
.
56
push esi
0040167B
|
. 8D4C24 0C lea ecx, dword ptr [esp
+
C]
0040167F
|
. C64424
10
4B mov
byte
ptr [esp
+
10
], 4B ; 这一段就是传说中的硬编码啊
00401684
|
.
884424
11
mov
byte
ptr [esp
+
11
], al
00401688
|
.
885424
12
mov
byte
ptr [esp
+
12
], dl
0040168C
|
. C64424
13
6E mov
byte
ptr [esp
+
13
], 6E
00401691
|
.
884424
14
mov
byte
ptr [esp
+
14
], al
00401695
|
. C64424
16
33
mov
byte
ptr [esp
+
16
],
33
0040169A
|
. C64424
17
32
mov
byte
ptr [esp
+
17
],
32
0040169F
|
. C64424
18
2E mov
byte
ptr [esp
+
18
], 2E
004016A4
|
. C64424
19
64
mov
byte
ptr [esp
+
19
],
64
004016A9
|
. C64424 1C
00
mov
byte
ptr [esp
+
1C],
0
004016AE
|
. C64424
20
49
mov
byte
ptr [esp
+
20
],
49
004016B3
|
. 885C24
21
mov
byte
ptr [esp
+
21
], bl
004016B7
|
. C64424
22
44
mov
byte
ptr [esp
+
22
],
44
004016BC
|
.
884424
23
mov
byte
ptr [esp
+
23
], al
004016C0
|
. C64424
24
62
mov
byte
ptr [esp
+
24
],
62
004016C5
|
. C64424
25
75
mov
byte
ptr [esp
+
25
],
75
004016CA
|
.
884424
28
mov
byte
ptr [esp
+
28
], al
004016CE
|
.
885424
29
mov
byte
ptr [esp
+
29
], dl
004016D2
|
. C64424 2A
50
mov
byte
ptr [esp
+
2A],
50
004016D7
|
.
885424
2B mov
byte
ptr [esp
+
2B], dl
004016DB
|
.
884424
2C mov
byte
ptr [esp
+
2C], al
004016DF
|
. 885C24 2D mov
byte
ptr [esp
+
2D], bl
004016E3
|
.
884424
2E mov
byte
ptr [esp
+
2E], al
004016E7
|
. C64424 2F 6E mov
byte
ptr [esp
+
2F], 6E
004016EC
|
. C64424
30
74
mov
byte
ptr [esp
+
30
],
74
004016F1
|
. C64424
31
00
mov
byte
ptr [esp
+
31
],
0
004016F6
|
. E8 ED050000 call
<
jmp.
&
MFC42.#540_CString::CString
>
004016FB
|
. C74424 3C
000
>
mov dword ptr [esp
+
3C],
0
00401703
|
. 33F6 xor esi, esi
00401705
|>
8A4434
10
/
mov al,
byte
ptr [esp
+
esi
+
10
]
00401709
|
. 8D4C24 0C
|
lea ecx, dword ptr [esp
+
C]
0040170D
|
.
50
|
push eax
0040170E
|
. E8
05060000
|
call
<
jmp.
&
MFC42.#940_CString::
operator
+=>
00401713
|
.
46
|
inc esi
00401714
|
. 83FE 0C
|
cmp esi, 0C
00401717
|
.
^
7C EC \jl
short
00401705
00401719
|
. 8B4C24 0C mov ecx, dword ptr [esp
+
C]
0040171D
|
.
57
push edi
0040171E
|
.
51
push ecx ;
/
FileName
0040171F
|
. FF15
04304000
call dword ptr [
<&
KERNEL32.LoadLibraryA
>
] ; \LoadLibraryA
00401725
|
.
68
EC404000 push 004040EC
0040172A
|
. 8D4C24
14
lea ecx, dword ptr [esp
+
14
]
0040172E
|
. 8BF8 mov edi, eax
00401730
|
. E8 AD050000 call
<
jmp.
&
MFC42.#860_CString::
operator
=>
00401735
|
. 8B1D
00324000
mov ebx, dword ptr [
<&
USER32.PostQuitMessage
>
] ; USER32.PostQuitMessage
0040173B
|
. 85FF test edi, edi
0040173D
|
.
74
2C je
short
0040176B
0040173F
|
. 33F6 xor esi, esi
00401741
|>
8A5434
24
/
mov dl,
byte
ptr [esp
+
esi
+
24
]
00401745
|
. 8D4C24
10
|
lea ecx, dword ptr [esp
+
10
]
00401749
|
.
52
|
push edx
0040174A
|
. E8 C9050000
|
call
<
jmp.
&
MFC42.#940_CString::
operator
+=>
0040174F
|
.
46
|
inc esi
00401750
|
. 83FE
11
|
cmp esi,
11
00401753
|
.
^
7C EC \jl
short
00401741
00401755
|
. 8B4424
10
mov eax, dword ptr [esp
+
10
] ; isdebuggerpresent
00401759
|
.
50
push eax ;
/
ProcNameOrOrdinal
0040175A
|
.
57
push edi ;
|
hModule
0040175B
|
. FF15
00304000
call dword ptr [
<&
KERNEL32.GetProcAddress
>
] ; \GetProcAddress
00401761
|
. FFD0 call eax ; 调用IsDebuggerPresent
00401763
|
. 85C0 test eax, eax
00401765
74
04
je
short
0040176B ; 如果检测到调试器就退出
00401767
6A
00
push
0
00401769
|
. FFD3 call ebx ; 调用PostQuitMessage
0040176B
|>
8BCD mov ecx, ebp
0040176D
|
. E8 2E000000 call 004017A0 ; 如果没检测到就进行文件crc
00401772
|
. 85C0 test eax, eax
00401774
|
. 5F pop edi
00401775
|
.
75
03
jnz
short
0040177A
00401777
|
.
50
push eax
00401778
|
. FFD3 call ebx
0040177A
|>
8D4C24 0C lea ecx, dword ptr [esp
+
C]
0040177E
|
. C74424 3C FFF
>
mov dword ptr [esp
+
3C],
-
1
00401786
|
. E8 7F040000 call
<
jmp.
&
MFC42.#800_CString::
~
CString
>
0040178B
|
. 8B4C24
34
mov ecx, dword ptr [esp
+
34
]
0040178F
|
. 5E pop esi
00401790
|
. 5D pop ebp
00401791
|
. 5B pop ebx
00401792
|
.
64
:890D
00000
>
mov dword ptr fs:[
0
], ecx
00401799
|
. 83C4
34
add esp,
34
0040179C \. C3 retn