Reversing : The Hacker's Guide to Reverse Engineering

(ff) #1
00401DF8 CALL cryptex.00401030
00401DFD ADD ESP,0C
00401E00 MOV EAX,DS:[40504C]
00401E05 LEA EDX,SS:[ESP+44]
00401E09 PUSH EDX
00401E0A PUSH EAX
00401E0B CALL ESI
00401E0D MOV ECX,SS:[ESP+30]
00401E11 MOV EDX,DS:[40504C]
00401E17 PUSH ECX ; /CursorPos
00401E18 PUSH EDX ; |hConsole => 00000007
00401E19 CALL DS:[<&KERNEL32.SetConsoleCursorPosition>]
00401E1F TEST EDI,EDI
00401E21 MOVSS XMM0,SS:[ESP+10]
00401E27 ADDSS XMM0,SS:[ESP+20]
00401E2D MOVSS SS:[ESP+10],XMM0
00401E33 JNZ cryptex.00401D70
00401E39 FLD QWORD PTR DS:[403B98]
00401E3F SUB ESP,8
00401E42 FSTP QWORD PTR SS:[ESP]
00401E45 PUSH cryptex.00403368 ; ASCII “%2.2f percent
completed.”
00401E4A CALL EBP
00401E4C PUSH cryptex.00403384
00401E51 CALL EBP
00401E53 XOR EAX,EAX
00401E55 MOV SS:[ESP+6D],EAX
00401E59 MOV SS:[ESP+71],EAX
00401E5D MOV SS:[ESP+75],EAX
00401E61 MOV SS:[ESP+79],AX
00401E66 ADD ESP,10
00401E69 LEA ECX,SS:[ESP+24]
00401E6D LEA EDX,SS:[ESP+5C]
00401E71 MOV SS:[ESP+6B],AL
00401E75 MOV BYTE PTR SS:[ESP+5C],0
00401E7A MOV DWORD PTR SS:[ESP+24],10
00401E82 PUSH EAX
00401E83 MOV EAX,SS:[ESP+20]
00401E87 PUSH ECX
00401E88 PUSH EDX
00401E89 PUSH 2
00401E8B PUSH EAX
00401E8C CALL DS:[<&ADVAPI32.CryptGetHashParam>]
00401E92 TEST EAX,EAX
00401E94 JNZ SHORT cryptex.00401EA0
00401E96 PUSH cryptex.00403388 ; ASCII “Unable to obtain MD5
hash value for file.”

Listing 6.8 (continued)

232 Chapter 6

Free download pdf