原创:
00452DA8 /$ 55 PUSH EBP
00452DA9 |. 8BEC MOV EBP,ESP
00452DAB |. 83C4 94 ADD ESP,-6C
00452DAE |. 8955 9C MOV DWORD PTR SS:[EBP-64],EDX
00452DB1 |. 8945 A0 MOV DWORD PTR SS:[EBP-60],EAX
00452DB4 |. B8 80535800 MOV EAX,010Edito.00585380
00452DB9 |. E8 3E361000 CALL 010Edito.005563FC //see below
00452DBE |. 66:C745 B4 080>MOV WORD PTR SS:[EBP-4C],8
00452DC4 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
00452DC7 |. E8 80E8FAFF CALL 010Edito.0040164C //see below
00452DCC |. 8BD0 MOV EDX,EAX
00452DCE |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00452DD1 |. 8B4D A0 MOV ECX,DWORD PTR SS:[EBP-60]
00452DD4 |. 8B81 D4020000 MOV EAX,DWORD PTR DS:[ECX+2D4]
00452DDA |. E8 35BB0B00 CALL 010Edito.0050E914
00452DDF |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
00452DE2 |. E8 A9241100 CALL 010Edito.00565290
00452DE7 |. 50 PUSH EAX ; /Arg1
00452DE8 |. FF4D C0 DEC DWORD PTR SS:[EBP-40] ; |
00452DEB |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4] ; |
00452DEE |. BA 02000000 MOV EDX,2 ; |
00452DF3 |. E8 8C221100 CALL 010Edito.00565084 ; \010Edito.00565084 //检查用户名是否为空
00452DF8 |. 59 POP ECX
00452DF9 |. 84C9 TEST CL,CL
00452DFB |. 74 3F JE SHORT 010Edito.00452E3C ; JUMP
00452DFD |. 66:C745 B4 140>MOV WORD PTR SS:[EBP-4C],14
00452E03 |. BA EA4C5800 MOV EDX,010Edito.00584CEA
00452E08 |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
00452E0B |. E8 E4201100 CALL 010Edito.00564EF4
00452E10 |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00452E13 |. 8D4D F8 LEA ECX,DWORD PTR SS:[EBP-8]
00452E16 |. 51 PUSH ECX ; /Arg1
00452E17 |. E8 7C62FDFF CALL /*afxMessagbox*/ ; \/*afxMessagbox*/ //提示输入用户名
00452E1C |. 59 POP ECX
00452E1D |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
00452E20 |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
00452E23 |. BA 02000000 MOV EDX,2
00452E28 |. E8 57221100 CALL 010Edito.00565084
00452E2D |. 8B4D A4 MOV ECX,DWORD PTR SS:[EBP-5C]
00452E30 |. 64:890D 000000>MOV DWORD PTR FS:[0],ECX
00452E37 |. E9 86030000 JMP 010Edito.004531C2 //return
00452E3C |> 66:C745 B4 200>MOV WORD PTR SS:[EBP-4C],20 ; HERE TO GO
00452E42 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
00452E45 |. E8 02E8FAFF CALL 010Edito.0040164C
00452E4A |. 8BD0 MOV EDX,EAX
00452E4C |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00452E4F |. 8B4D A0 MOV ECX,DWORD PTR SS:[EBP-60]
00452E52 |. 8B81 DC020000 MOV EAX,DWORD PTR DS:[ECX+2DC]
00452E58 |. E8 63DC0800 CALL 010Edito.004E0AC0
00452E5D |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
00452E60 |. E8 2B241100 CALL 010Edito.00565290
00452E65 |. 84C0 TEST AL,AL
00452E67 |. 75 6A JNZ SHORT 010Edito.00452ED3 ; NO JUMP
00452E69 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
00452E6C |. E8 DBE7FAFF CALL 010Edito.0040164C
00452E71 |. 8BD0 MOV EDX,EAX
00452E73 |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00452E76 |. 8B4D A0 MOV ECX,DWORD PTR SS:[EBP-60]
00452E79 |. 8B81 DC020000 MOV EAX,DWORD PTR DS:[ECX+2DC]
00452E7F |. E8 3CDC0800 CALL 010Edito.004E0AC0
00452E84 |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
00452E87 |. 52 PUSH EDX
00452E88 |. BA FF4C5800 MOV EDX,010Edito.00584CFF
00452E8D |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
00452E90 |. E8 5F201100 CALL 010Edito.00564EF4
00452E95 |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00452E98 |. 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
00452E9B |. 58 POP EAX
00452E9C |. E8 D7241100 CALL 010Edito.00565378
00452EA1 |. 85C0 TEST EAX,EAX
00452EA3 |. 0F95C1 SETNE CL
00452EA6 |. 83E1 01 AND ECX,1
00452EA9 |. 51 PUSH ECX
00452EAA |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
00452EAD |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
00452EB0 |. BA 02000000 MOV EDX,2
00452EB5 |. E8 CA211100 CALL 010Edito.00565084
00452EBA |. FF4D C0 DEC DWORD PTR SS:[EBP-40] ; |
00452EBD |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10] ; |
00452EC0 |. BA 02000000 MOV EDX,2 ; |
00452EC5 |. E8 BA211100 CALL 010Edito.00565084 ; \010Edito.00565084
00452ECA |. 59 POP ECX
00452ECB |. 85C9 TEST ECX,ECX
00452ECD |. 75 04 JNZ SHORT 010Edito.00452ED3
00452ECF |. 33C0 XOR EAX,EAX
00452ED1 |. EB 05 JMP SHORT 010Edito.00452ED8
00452ED3 |> B8 01000000 MOV EAX,1
00452ED8 |> 50 PUSH EAX ; /Arg1
00452ED9 |. FF4D C0 DEC DWORD PTR SS:[EBP-40] ; |"06CD-D29C-0DBA-7753"
00452EDC |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C] ; |
00452EDF |. BA 02000000 MOV EDX,2 ; |
00452EE4 |. E8 9B211100 CALL 010Edito.00565084 ; \010Edito.00565084
00452EE9 |. 59 POP ECX
00452EEA |. 84C9 TEST CL,CL
00452EEC |. 74 3F JE SHORT 010Edito.00452F2D ; JUMP
00452EEE |. 66:C745 B4 2C0>MOV WORD PTR SS:[EBP-4C],2C //注册码不全.
00452EF4 |. BA 014D5800 MOV EDX,010Edito.00584D01
00452EF9 |. 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
00452EFC |. E8 F31F1100 CALL 010Edito.00564EF4
00452F01 |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00452F04 |. 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18]
00452F07 |. 51 PUSH ECX ; /Arg1
00452F08 |. E8 8B61FDFF CALL /*afxMessagbox*/ ; \/*afxMessagbox*/
00452F0D |. 59 POP ECX
00452F0E |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
00452F11 |. 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
00452F14 |. BA 02000000 MOV EDX,2
00452F19 |. E8 66211100 CALL 010Edito.00565084
00452F1E |. 8B4D A4 MOV ECX,DWORD PTR SS:[EBP-5C]
00452F21 |. 64:890D 000000>MOV DWORD PTR FS:[0],ECX
00452F28 |. E9 95020000 JMP 010Edito.004531C2 //return
00452F2D |> 66:C745 B4 380>MOV WORD PTR SS:[EBP-4C],38 ; HERE TO GO
00452F33 |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
00452F36 |. E8 11E7FAFF CALL 010Edito.0040164C
00452F3B |. 8BD0 MOV EDX,EAX
00452F3D |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00452F40 |. 8B4D A0 MOV ECX,DWORD PTR SS:[EBP-60]
00452F43 |. 8B81 D4020000 MOV EAX,DWORD PTR DS:[ECX+2D4]
00452F49 |. E8 C6B90B00 CALL 010Edito.0050E914
00452F4E |. 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C] ; arg2 == "AAAAA"
00452F51 |. 52 PUSH EDX ; /Arg2
00452F52 |. FF35 44775600 PUSH DWORD PTR DS:[567744] ; |Arg1 = 00FF2D74
00452F58 |. E8 6B020000 CALL 010Edito.004531C8 ; \010Edito.004531C8
00452F5D |. 83C4 08 ADD ESP,8
00452F60 |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
00452F63 |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
00452F66 |. BA 02000000 MOV EDX,2
00452F6B |. E8 14211100 CALL 010Edito.00565084
00452F70 |. 66:C745 B4 440>MOV WORD PTR SS:[EBP-4C],44
00452F76 |. 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
00452F79 |. E8 CEE6FAFF CALL 010Edito.0040164C
00452F7E |. 8BD0 MOV EDX,EAX
00452F80 |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00452F83 |. 8B4D A0 MOV ECX,DWORD PTR SS:[EBP-60]
00452F86 |. 8B81 DC020000 MOV EAX,DWORD PTR DS:[ECX+2DC]
00452F8C |. E8 2FDB0800 CALL 010Edito.004E0AC0
00452F91 |. 8D55 E0 LEA EDX,DWORD PTR SS:[EBP-20] ; arg2 =="06CD-D29C-0DBA-7753"
00452F94 |. 52 PUSH EDX ; /Arg2
00452F95 |. FF35 44775600 PUSH DWORD PTR DS:[567744] ; |Arg1 = 00FF2D74
00452F9B |. E8 3C020000 CALL 010Edito.004531DC ; \010Edito.004531DC
00452FA0 |. 83C4 08 ADD ESP,8
00452FA3 |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
00452FA6 |. 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
00452FA9 |. BA 02000000 MOV EDX,2
00452FAE |. E8 D1201100 CALL 010Edito.00565084
00452FB3 |. 6A 01 PUSH 1
00452FB5 |. FF35 44775600 PUSH DWORD PTR DS:[567744]
00452FBB |. E8 0CDFFFFF CALL 010Edito.00450ECC
00452FC0 |. 83C4 08 ADD ESP,8
00452FC3 |. 8945 98 MOV DWORD PTR SS:[EBP-68],EAX
00452FC6 |. 6A 01 PUSH 1 ; /Arg2 = 00000001
00452FC8 |. FF35 44775600 PUSH DWORD PTR DS:[567744] ; |Arg1 = 00FF2D74
**00452FCE |. E8 85DEFFFF CALL 010Edito.00450E58 ; \010Edito.00450E58 //see below\
00452FD3 |. 83C4 08 ADD ESP,8
00452FD6 |. 8945 94 MOV DWORD PTR SS:[EBP-6C],EAX
00452FD9 |. 817D 94 DB0000>CMP DWORD PTR SS:[EBP-6C],0DB ; 比较结果 eax ==177
00452FE0 |. 75 35 JNZ SHORT 010Edito.00453017 ; jump!!!
00452FE2 |. 66:C745 B4 500>MOV WORD PTR SS:[EBP-4C],50
00452FE8 |. BA 284D5800 MOV EDX,010Edito.00584D28
00452FED |. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
00452FF0 |. E8 FF1E1100 CALL 010Edito.00564EF4
00452FF5 |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00452FF8 |. 8D4D DC LEA ECX,DWORD PTR SS:[EBP-24]
00452FFB |. 51 PUSH ECX ; /Arg1
00452FFC |. E8 6F61FDFF CALL /*POPUP_DIALOG*/ ; \010Edito.00429170
00453001 |. 59 POP ECX
00453002 |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
00453005 |. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
00453008 |. BA 02000000 MOV EDX,2
0045300D |. E8 72201100 CALL 010Edito.00565084
00453012 |. E9 04010000 JMP 010Edito.0045311B
00453017 |> 837D 94 10 CMP DWORD PTR SS:[EBP-6C],10
0045301B |. 75 3F JNZ SHORT 010Edito.0045305C ; here to go是否==10 jump!!
0045301D |. 66:C745 B4 5C0>MOV WORD PTR SS:[EBP-4C],5C
00453023 |. BA 534D5800 MOV EDX,010Edito.00584D53
00453028 |. 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
0045302B |. E8 C41E1100 CALL 010Edito.00564EF4
00453030 |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00453033 |. 8D4D D8 LEA ECX,DWORD PTR SS:[EBP-28]
00453036 |. 51 PUSH ECX ; /Arg1
00453037 |. E8 3461FDFF CALL /*POPUP_DIALOG*/ ; \010Edito.00429170
0045303C |. 59 POP ECX
0045303D |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
00453040 |. 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
00453043 |. BA 02000000 MOV EDX,2
00453048 |. E8 37201100 CALL 010Edito.00565084
0045304D |. 8B4D A4 MOV ECX,DWORD PTR SS:[EBP-5C]
00453050 |. 64:890D 000000>MOV DWORD PTR FS:[0],ECX
00453057 |. E9 66010000 JMP 010Edito.004531C2 //return
0045305C |> 817D 98 930000>CMP DWORD PTR SS:[EBP-68],93 ; here to go
00453063 |. 75 77 JNZ SHORT 010Edito.004530DC ; jmp
00453065 |. 837D 94 71 CMP DWORD PTR SS:[EBP-6C],71
00453069 |. 75 32 JNZ SHORT 010Edito.0045309D
0045306B |. 66:C745 B4 680>MOV WORD PTR SS:[EBP-4C],68
00453071 |. BA E54D5800 MOV EDX,010Edito.00584DE5
00453076 |. 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
00453079 |. E8 761E1100 CALL 010Edito.00564EF4
0045307E |. FF45 C0 INC DWORD PTR SS:[EBP-40]
00453081 |. 8D4D D4 LEA ECX,DWORD PTR SS:[EBP-2C]
00453084 |. 51 PUSH ECX ; /Arg1
00453085 |. E8 E660FDFF CALL /*POPUP_DIALOG*/ ; \010Edito.00429170
0045308A |. 59 POP ECX
0045308B |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
0045308E |. 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
00453091 |. BA 02000000 MOV EDX,2
00453096 |. E8 E91F1100 CALL 010Edito.00565084
0045309B |. EB 7E JMP SHORT 010Edito.0045311B
0045309D |> 66:C745 B4 740>MOV WORD PTR SS:[EBP-4C],74
004530A3 |. BA 1D4E5800 MOV EDX,010Edito.00584E1D
004530A8 |. 8D45 D0 LEA EAX,DWORD PTR SS:[EBP-30]
004530AB |. E8 441E1100 CALL 010Edito.00564EF4
004530B0 |. FF45 C0 INC DWORD PTR SS:[EBP-40]
004530B3 |. 8D4D D0 LEA ECX,DWORD PTR SS:[EBP-30]
004530B6 |. 51 PUSH ECX ; /Arg1
004530B7 |. E8 B460FDFF CALL /*POPUP_DIALOG*/ ; \010Edito.00429170
004530BC |. 59 POP ECX
004530BD |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
004530C0 |. 8D45 D0 LEA EAX,DWORD PTR SS:[EBP-30]
004530C3 |. BA 02000000 MOV EDX,2
004530C8 |. E8 B71F1100 CALL 010Edito.00565084
004530CD |. 8B4D A4 MOV ECX,DWORD PTR SS:[EBP-5C]
004530D0 |. 64:890D 000000>MOV DWORD PTR FS:[0],ECX
004530D7 |. E9 E6000000 JMP 010Edito.004531C2 //return
004530DC |> 66:C745 B4 800>MOV WORD PTR SS:[EBP-4C],80 ; here to go
004530E2 |. BA 554E5800 MOV EDX,010Edito.00584E55
004530E7 |. 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34]
004530EA |. E8 051E1100 CALL 010Edito.00564EF4
004530EF |. FF45 C0 INC DWORD PTR SS:[EBP-40]
004530F2 |. 8D4D CC LEA ECX,DWORD PTR SS:[EBP-34] ; 显示对话框"无效口令。请按注.."
004530F5 |. 51 PUSH ECX ; /Arg1
004530F6 |. E8 7560FDFF CALL /*POPUP_DIALOG*/ ; \010Edito.00429170
004530FB |. 59 POP ECX
004530FC |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
004530FF |. 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34]
00453102 |. BA 02000000 MOV EDX,2
00453107 |. E8 781F1100 CALL 010Edito.00565084
0045310C |. 8B4D A4 MOV ECX,DWORD PTR SS:[EBP-5C]
0045310F |. 64:890D 000000>MOV DWORD PTR FS:[0],ECX
00453116 |. E9 A7000000 JMP 010Edito.004531C2 //return;
0045311B |> FF35 44775600 PUSH DWORD PTR DS:[567744]
00453121 |. E8 C6F0FFFF CALL 010Edito.004521EC
00453126 |. 59 POP ECX
00453127 |. A1 44775600 MOV EAX,DWORD PTR DS:[567744]
0045312C |. 8945 C8 MOV DWORD PTR SS:[EBP-38],EAX
0045312F |. 837D C8 00 CMP DWORD PTR SS:[EBP-38],0
00453133 |. 74 4B JE SHORT 010Edito.00453180
00453135 |. 66:C745 B4 980>MOV WORD PTR SS:[EBP-4C],98
0045313B |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
0045313E |. 8B45 C8 MOV EAX,DWORD PTR SS:[EBP-38]
00453141 |. 83C0 08 ADD EAX,8
00453144 |. BA 02000000 MOV EDX,2
00453149 |. E8 361F1100 CALL 010Edito.00565084
0045314E |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
00453151 |. 8B45 C8 MOV EAX,DWORD PTR SS:[EBP-38]
00453154 |. 83C0 04 ADD EAX,4
00453157 |. BA 02000000 MOV EDX,2
0045315C |. E8 231F1100 CALL 010Edito.00565084
00453161 |. FF4D C0 DEC DWORD PTR SS:[EBP-40]
00453164 |. BA 02000000 MOV EDX,2
00453169 |. 8B45 C8 MOV EAX,DWORD PTR SS:[EBP-38]
0045316C |. E8 131F1100 CALL 010Edito.00565084
00453171 |. FF75 C8 PUSH DWORD PTR SS:[EBP-38] ; /Arg1
00453174 |. E8 231F1000 CALL 010Edito.0055509C ; \010Edito.0055509C
00453179 |. 59 POP ECX
0045317A |. 66:C745 B4 8C0>MOV WORD PTR SS:[EBP-4C],8C
00453180 |> 33C9 XOR ECX,ECX
00453182 |. 890D 44775600 MOV DWORD PTR DS:[567744],ECX
00453188 |. 8B45 A0 MOV EAX,DWORD PTR SS:[EBP-60]
0045318B |. 83B8 00030000 >CMP DWORD PTR DS:[EAX+300],0
00453192 |. 74 17 JE SHORT 010Edito.004531AB
00453194 |. 8B15 E41A5A00 MOV EDX,DWORD PTR DS:[5A1AE4] ; 010Edito._Form010Ed
0045319A |. 8B02 MOV EAX,DWORD PTR DS:[EDX]
0045319C |. E8 8B830A00 CALL 010Edito.004FB52C
004531A1 |. 8B45 A0 MOV EAX,DWORD PTR SS:[EBP-60]
004531A4 |. E8 7B830A00 CALL 010Edito.004FB524
004531A9 |. EB 0D JMP SHORT 010Edito.004531B8
004531AB |> 8B55 A0 MOV EDX,DWORD PTR SS:[EBP-60]
004531AE |. C782 2C020000 >MOV DWORD PTR DS:[EDX+22C],1
004531B8 |> 8B4D A4 MOV ECX,DWORD PTR SS:[EBP-5C]
004531BB |. 64:890D 000000>MOV DWORD PTR FS:[0],ECX
004531C2 |> 8BE5 MOV ESP,EBP
004531C4 |. 5D POP EBP
004531C5 \. C3 RETN
/////////////////////////////////////////////////////////////////////////////////////////////
00450E58 /$ 55 PUSH EBP
00450E59 |. 8BEC MOV EBP,ESP
00450E5B |. FF75 0C PUSH DWORD PTR SS:[EBP+C]
00450E5E |. FF75 08 PUSH DWORD PTR SS:[EBP+8]
00450E61 |. E8 66000000 CALL 010Edito.00450ECC //see below
00450E66 |. 83C4 08 ADD ESP,8
00450E69 |. 83E8 2D SUB EAX,2D ; Switch (cases 2D..E7)
00450E6C |. 74 0E JE SHORT 010Edito.00450E7C
00450E6E |. 83E8 21 SUB EAX,21
00450E71 |. 74 17 JE SHORT 010Edito.00450E8A
00450E73 |. 2D 99000000 SUB EAX,99
00450E78 |. 74 09 JE SHORT 010Edito.00450E83
00450E7A |. EB 15 JMP SHORT 010Edito.00450E91
00450E7C |> B8 DB000000 MOV EAX,0DB ; Case 2D of switch 00450E69
00450E81 |. 5D POP EBP
00450E82 |. C3 RETN
00450E83 |> B8 77010000 MOV EAX,177 ; Case E7 of switch 00450E69 //here
00450E88 |. 5D POP EBP
00450E89 |. C3 RETN
00450E8A |> B8 10000000 MOV EAX,10 ; Case 4E of switch 00450E69
00450E8F |. 5D POP EBP
00450E90 |. C3 RETN
00450E91 |> FF75 08 PUSH DWORD PTR SS:[EBP+8] ; /Arg1; Default case of switch 00450E69
00450E94 |. E8 03030000 CALL 010Edito.0045119C ; \010Edito.0045119C
00450E99 |. 59 POP ECX
00450E9A |. 83E8 17 SUB EAX,17 ; Switch (cases 17..138)
00450E9D |. 74 0E JE SHORT 010Edito.00450EAD
00450E9F |. 83E8 13 SUB EAX,13
00450EA2 |. 74 17 JE SHORT 010Edito.00450EBB
00450EA4 |. 2D 0E010000 SUB EAX,10E
00450EA9 |. 74 09 JE SHORT 010Edito.00450EB4
00450EAB |. EB 15 JMP SHORT 010Edito.00450EC2
00450EAD |> B8 71000000 MOV EAX,71 ; Case 17 of switch 00450E9A
00450EB2 |. 5D POP EBP
00450EB3 |. C3 RETN
00450EB4 |> B8 2F000000 MOV EAX,2F ; Case 138 of switch 00450E9A
00450EB9 |. 5D POP EBP
00450EBA |. C3 RETN
00450EBB |> B8 77010000 MOV EAX,177 ; Case 2A of switch 00450E9A
00450EC0 |. 5D POP EBP
00450EC1 |. C3 RETN
00450EC2 |> B8 77010000 MOV EAX,177 ; Default case of switch 00450E9A
00450EC7 |. 5D POP EBP
00450EC8 \. C3 RETN
///////////////////////////////////////////////////////////////////////////////////////////
00450ECC $ 55 PUSH EBP
00450ECD . 8BEC MOV EBP,ESP
00450ECF . 83C4 C0 ADD ESP,-40
00450ED2 . B8 10435800 MOV EAX,010Edito.00584310 //global variable
00450ED7 . E8 20551000 CALL 010Edito.005563FC //初始化
00450EDC . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00450EDF . 83C0 04 ADD EAX,4
00450EE2 . E8 A9431100 CALL 010Edito.00565290 //检测EAX是否为空
00450EE7 . 84C0 TEST AL,AL
00450EE9 . 75 0F JNZ SHORT 010Edito.00450EFA //jump(go die!)
00450EEB . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]//go go go
00450EEE . 83C0 08 ADD EAX,8
00450EF1 . E8 9A431100 CALL 010Edito.00565290 //test eax + 8 (user name )
00450EF6 . 84C0 TEST AL,AL
00450EF8 . 74 14 JE SHORT 010Edito.00450F0E //go further
00450EFA > B8 93000000 MOV EAX,93
00450EFF . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
00450F02 . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00450F09 . E9 89020000 JMP 010Edito.00451197 //go to return
00450F0E > 8D4D C4 LEA ECX,DWORD PTR SS:[EBP-3C]
00450F11 . 51 PUSH ECX ; /Arg2
00450F12 . FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |Arg1
00450F15 . E8 6A0C0000 CALL 010Edito.00451B84 ; \010Edito.00451B84
00450F1A . 83C4 08 ADD ESP,8 ; 将序列号ascii转为二进制
00450F1D . 33C0 XOR EAX,EAX
00450F1F . 8945 D4 MOV DWORD PTR SS:[EBP-2C],EAX
00450F22 > 66:C745 E8 080>MOV WORD PTR SS:[EBP-18],8
00450F28 . 8B55 D4 MOV EDX,DWORD PTR SS:[EBP-2C]
00450F2B . 8B1495 6841580>MOV EDX,DWORD PTR DS:[EDX*4+584168] ; =="999"
00450F32 . 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
00450F35 . E8 BA3F1100 CALL 010Edito.00564EF4
00450F3A . FF45 F4 INC DWORD PTR SS:[EBP-C]
00450F3D . 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
00450F40 . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00450F43 . 83C0 04 ADD EAX,4
00450F46 . E8 1D421100 CALL 010Edito.00565168
00450F4B . 50 PUSH EAX ; /Arg1
00450F4C . FF4D F4 DEC DWORD PTR SS:[EBP-C] ; |
00450F4F . 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4] ; |
00450F52 . BA 02000000 MOV EDX,2 ; |
00450F57 . E8 28411100 CALL 010Edito.00565084 ; \010Edito.00565084
00450F5C . 59 POP ECX
00450F5D . 84C9 TEST CL,CL
00450F5F . 74 14 JE SHORT 010Edito.00450F75 //go further
00450F61 . B8 E7000000 MOV EAX,0E7
00450F66 . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
00450F69 . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00450F70 . E9 22020000 JMP 010Edito.00451197
00450F75 > FF45 D4 INC DWORD PTR SS:[EBP-2C]
00450F78 . 837D D4 01 CMP DWORD PTR SS:[EBP-2C],1 ; HERE TO GO
00450F7C .^7C A4 JL SHORT 010Edito.00450F22 ; NO JUMP
00450F7E . 807D C7 9C CMP BYTE PTR SS:[EBP-39],9C ; if 9C
00450F82 . 0F85 83000000 JNZ 010Edito.0045100B ; NO JUMP
00450F88 . 8A4D C4 MOV CL,BYTE PTR SS:[EBP-3C]
00450F8B . 324D CA XOR CL,BYTE PTR SS:[EBP-36] ; cl =1 xor 7
00450F8E . 884D C3 MOV BYTE PTR SS:[EBP-3D],CL ; save dl to [ebp-3d]
00450F91 . 8A45 C5 MOV AL,BYTE PTR SS:[EBP-3B]
00450F94 . 3245 CB XOR AL,BYTE PTR SS:[EBP-35] ; al = 2 xor 8
00450F97 . 33D2 XOR EDX,EDX
00450F99 . 8AD0 MOV DL,AL ; dl = al
00450F9B . C1E2 08 SHL EDX,8 ; ??8bit dh = al
00450F9E . 8A4D C6 MOV CL,BYTE PTR SS:[EBP-3A]
00450FA1 . 324D C9 XOR CL,BYTE PTR SS:[EBP-37] ; cl = ?3? xor ?5?
00450FA4 . 33C0 XOR EAX,EAX
00450FA6 . 8AC1 MOV AL,CL
00450FA8 . 66:03D0 ADD DX,AX ; ?????????????,
00450FAB . 66:8955 C0 MOV WORD PTR SS:[EBP-40],DX ; A VALUE USE LATER
00450FAF . 8A55 C3 MOV DL,BYTE PTR SS:[EBP-3D] ; ???1? xor ?7??????
00450FB2 . 52 PUSH EDX ; /Arg1
00450FB3 . E8 FA170000 CALL 010Edito.004527B2 ; \010Edito.004527B2
00450FB8 . 59 POP ECX
00450FB9 . 33C9 XOR ECX,ECX
00450FBB . 8AC8 MOV CL,AL
00450FBD . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00450FC0 . 8948 18 MOV DWORD PTR DS:[EAX+18],ECX ; sav0
00450FC3 . 66:8B55 C0 MOV DX,WORD PTR SS:[EBP-40] ; VALUE calc before
00450FC7 . 52 PUSH EDX ; /Arg1
00450FC8 . E8 FB170000 CALL 010Edito.004527C8 ; \010Edito.004527C8
00450FCD . 59 POP ECX
00450FCE . 0FB7C8 MOVZX ECX,AX
00450FD1 . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00450FD4 . 8948 1C MOV DWORD PTR DS:[EAX+1C],ECX ; save1
00450FD7 . 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8]
00450FDA . 837A 18 00 CMP DWORD PTR DS:[EDX+18],0 ; compare sav0
00450FDE . 74 15 JE SHORT 010Edito.00450FF5 ; NO JUMP(go die!)
00450FE0 . 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
00450FE3 . 8379 1C 00 CMP DWORD PTR DS:[ECX+1C],0 ; compare sav1
00450FE7 . 74 0C JE SHORT 010Edito.00450FF5 ; NO JUMP(go die!)
00450FE9 . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00450FEC . 8178 1C E80300>CMP DWORD PTR DS:[EAX+1C],3E8
00450FF3 . 76 46 JBE SHORT 010Edito.0045103B ; JUMP to further compare
00450FF5 > B8 E7000000 MOV EAX,0E7 ; Here return error!
00450FFA . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
00450FFD . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00451004 . E9 8E010000 JMP 010Edito.00451197
00451009 . EB 30 JMP SHORT 010Edito.0045103B
0045100B > 807D C7 FC CMP BYTE PTR SS:[EBP-39],0FC
0045100F . 75 16 JNZ SHORT 010Edito.00451027
00451011 . 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
00451014 . C741 18 FF0000>MOV DWORD PTR DS:[ECX+18],0FF
0045101B . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0045101E . C740 1C 010000>MOV DWORD PTR DS:[EAX+1C],1
00451025 . EB 14 JMP SHORT 010Edito.0045103B
00451027 > B8 E7000000 MOV EAX,0E7
0045102C . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
0045102F . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00451036 . E9 5C010000 JMP 010Edito.00451197
0045103B > 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8] ; HERE TO GO
0045103E . FF71 1C PUSH DWORD PTR DS:[ECX+1C] ; arg4 = sav1
00451041 . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00451044 . FF70 18 PUSH DWORD PTR DS:[EAX+18] ; arg3 = sav0
00451047 . 807D C7 9C CMP BYTE PTR SS:[EBP-39],9C ; ??????9C
0045104B . 0F94C2 SETE DL ; SET DL 1 IF EQUEAL
0045104E . 83E2 01 AND EDX,1
00451051 . 52 PUSH EDX ; arg2
00451052 . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00451055 . 83C0 04 ADD EAX,4
00451058 . E8 330DFBFF CALL 010Edito.00401D90
0045105D . 50 PUSH EAX ; |arg1= user name
0045105E . E8 AD140000 CALL 010Edito.00452510 ; \010Edito.00452510
00451063 . 83C4 10 ADD ESP,10
00451066 . 8945 D0 MOV DWORD PTR SS:[EBP-30],EAX ; 结果: eax ==be030747
00451069 . 8A55 D0 MOV DL,BYTE PTR SS:[EBP-30]
0045106C . 80E2 FF AND DL,0FF
0045106F . 3A55 C8 CMP DL,BYTE PTR SS:[EBP-38]
00451072 . 74 14 JE SHORT 010Edito.00451088
00451074 . B8 E7000000 MOV EAX,0E7
00451079 . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
0045107C . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00451083 . E9 0F010000 JMP 010Edito.00451197 //go to return //go to return
00451088 > 8B4D D0 MOV ECX,DWORD PTR SS:[EBP-30]
0045108B . C1E9 08 SHR ECX,8
0045108E . 80E1 FF AND CL,0FF
00451091 . 3A4D C9 CMP CL,BYTE PTR SS:[EBP-37]
00451094 . 74 14 JE SHORT 010Edito.004510AA
00451096 . B8 E7000000 MOV EAX,0E7
0045109B . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
0045109E . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
004510A5 . E9 ED000000 JMP 010Edito.00451197 //go to return //go to return
004510AA > 8B4D D0 MOV ECX,DWORD PTR SS:[EBP-30]
004510AD . C1E9 10 SHR ECX,10
004510B0 . 80E1 FF AND CL,0FF
004510B3 . 3A4D CA CMP CL,BYTE PTR SS:[EBP-36]
004510B6 . 74 14 JE SHORT 010Edito.004510CC
004510B8 . B8 E7000000 MOV EAX,0E7
004510BD . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
004510C0 . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
004510C7 . E9 CB000000 JMP 010Edito.00451197 //go to return //go to return
004510CC > 8B4D D0 MOV ECX,DWORD PTR SS:[EBP-30]
004510CF . C1E9 18 SHR ECX,18
004510D2 . 80E1 FF AND CL,0FF
004510D5 . 3A4D CB CMP CL,BYTE PTR SS:[EBP-35]
004510D8 . 74 14 JE SHORT 010Edito.004510EE
004510DA . B8 E7000000 MOV EAX,0E7
004510DF . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
004510E2 . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
004510E9 . E9 A9000000 JMP 010Edito.00451197 //go to return //go to return
004510EE > 807D C7 9C CMP BYTE PTR SS:[EBP-39],9C
004510F2 . 75 30 JNZ SHORT 010Edito.00451124
004510F4 . 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004510F7 . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
004510FA . 3B48 18 CMP ECX,DWORD PTR DS:[EAX+18]
004510FD . 76 14 JBE SHORT 010Edito.00451113
004510FF . B8 4E000000 MOV EAX,4E
00451104 . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
00451107 . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
0045110E . E9 84000000 JMP 010Edito.00451197 //go to return //go to return
00451113 > B8 2D000000 MOV EAX,2D
00451118 . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
0045111B . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00451122 . EB 73 JMP SHORT 010Edito.00451197 //go to return
00451124 > 807D C7 FC CMP BYTE PTR SS:[EBP-39],0FC
00451128 . 75 5E JNZ SHORT 010Edito.00451188
0045112A . 33C9 XOR ECX,ECX
0045112C . 8A4D C4 MOV CL,BYTE PTR SS:[EBP-3C]
0045112F . 33C0 XOR EAX,EAX
00451131 . 8A45 C5 MOV AL,BYTE PTR SS:[EBP-3B]
00451134 . C1E0 08 SHL EAX,8
00451137 . 03C8 ADD ECX,EAX
00451139 . 33D2 XOR EDX,EDX
0045113B . 8A55 C6 MOV DL,BYTE PTR SS:[EBP-3A]
0045113E . C1E2 10 SHL EDX,10
00451141 . 03CA ADD ECX,EDX
00451143 . 894D CC MOV DWORD PTR SS:[EBP-34],ECX
00451146 . FF75 D0 PUSH DWORD PTR SS:[EBP-30] ; /Arg2
00451149 . FF75 CC PUSH DWORD PTR SS:[EBP-34] ; |Arg1
0045114C . E8 1C160000 CALL 010Edito.0045276D ; \010Edito.0045276D
00451151 . 83C4 08 ADD ESP,8
00451154 . 8945 CC MOV DWORD PTR SS:[EBP-34],EAX
00451157 . 837D CC 00 CMP DWORD PTR SS:[EBP-34],0
0045115B . 75 11 JNZ SHORT 010Edito.0045116E
0045115D . B8 E7000000 MOV EAX,0E7
00451162 . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
00451165 . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
0045116C . EB 29 JMP SHORT 010Edito.00451197
0045116E > 8B4D CC MOV ECX,DWORD PTR SS:[EBP-34]
00451171 . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00451174 . 8948 14 MOV DWORD PTR DS:[EAX+14],ECX
00451177 . B8 93000000 MOV EAX,93
0045117C . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
0045117F . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00451186 . EB 0F JMP SHORT 010Edito.00451197
00451188 > B8 E7000000 MOV EAX,0E7
0045118D . 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
00451190 . 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00451197 > 8BE5 MOV ESP,EBP
00451199 . 5D POP EBP
0045119A . C3 RETN
00555F7C /$ 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
00555F80 |. A8 03 TEST AL,3
00555F82 |. 75 2D JNZ SHORT 010Edito.00555FB1
00555F84 |> 8B10 /MOV EDX,DWORD PTR DS:[EAX] AAAAAA
00555F86 |. 83C0 04 |ADD EAX,4
00555F89 |. 8BCA |MOV ECX,EDX
00555F8B |. 81EA 01010101 |SUB EDX,1010101
00555F91 |. 81E2 80808080 |AND EDX,80808080
00555F97 |.^74 EB |JE SHORT 010Edito.00555F84
00555F99 |. F7D1 |NOT ECX
00555F9B |. 23D1 |AND EDX,ECX
00555F9D |.^74 E5 \JE SHORT 010Edito.00555F84
00555F9F |. 84D2 TEST DL,DL
00555FA1 |. 75 28 JNZ SHORT 010Edito.00555FCB
00555FA3 |. 84F6 TEST DH,DH
00555FA5 |. 75 25 JNZ SHORT 010Edito.00555FCC
00555FA7 |. F7C2 0000FF00 TEST EDX,0FF0000
00555FAD |. 75 1E JNZ SHORT 010Edito.00555FCD
00555FAF |. EB 1D JMP SHORT 010Edito.00555FCE
00555FB1 |> 83C0 04 ADD EAX,4
00555FB4 |. F640 FC FF TEST BYTE PTR DS:[EAX-4],0FF
00555FB8 |. 74 11 JE SHORT 010Edito.00555FCB
00555FBA |. F640 FD FF TEST BYTE PTR DS:[EAX-3],0FF
00555FBE |. 74 0C JE SHORT 010Edito.00555FCC
00555FC0 |. F640 FE FF TEST BYTE PTR DS:[EAX-2],0FF
00555FC4 |. 74 07 JE SHORT 010Edito.00555FCD
00555FC6 |. 48 DEC EAX
00555FC7 |. 24 FC AND AL,0FC
00555FC9 |.^EB B9 JMP SHORT 010Edito.00555F84
00555FCB |> 48 DEC EAX
00555FCC |> 48 DEC EAX
00555FCD |> 48 DEC EAX
00555FCE |> 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
00555FD2 |. 48 DEC EAX
00555FD3 |. 2BC1 SUB EAX,ECX
00555FD5 \. C3 RETN
//////////////////////////////////////////////////////////calc_func1
/*004527B2*/ PUSH EBP
/*004527B3*/ MOV EBP,ESP
/*004527B5*/ PUSH ECX
/*004527B6*/ MOV AL,BYTE PTR SS:[EBP+8]
/*004527B9*/ XOR AL,18
/*004527BB*/ ADD AL,3D
/*004527BD*/ XOR AL,0A7
/*004527BF*/ MOV BYTE PTR SS:[EBP-1],AL
/*004527C2*/ MOV AL,BYTE PTR SS:[EBP-1]
/*004527C5*/ POP ECX
/*004527C6*/ POP EBP
/*004527C7*/ RETN
///////////////////////////////////////////////////////////////////calc_func2
/*004527C8*/ PUSH EBP
/*004527C9*/ MOV EBP,ESP
/*004527CB*/ PUSH ECX
/*004527CC*/ MOV AX,WORD PTR SS:[EBP+8] //param1
/*004527D0*/ XOR AX,7892
/*004527D4*/ ADD AX,4D30
/*004527D8*/ XOR AX,3421
/*004527DC*/ MOV WORD PTR SS:[EBP-2],AX
/*004527E0*/ MOVZX EAX,WORD PTR SS:[EBP-2] //被除数
/*004527E4*/ MOV ECX,0B //除数
/* */
/*004527E9*/ CDQ
/*004527EA*/ IDIV ECX
/*004527EC*/ TEST EDX,EDX
/*004527EE*/ JNZ AA4527FF
/*004527F0*/ MOVZX EAX,WORD PTR SS:[EBP-2]
/*004527F4*/ MOV ECX,0B
/*004527F9*/ CDQ
/*004527FA*/ IDIV ECX //
/*004527FC*/ POP ECX //返回倍数,
/*004527FD*/ POP EBP
/*004527FE*/ RETN
AA4527FF:
/*004527FF*/ XOR EAX,EAX
/*00452801*/ POP ECX
/*00452802*/ POP EBP
/*00452803*/ RETN
计算用户和key的函数:
00452510 /$ 55 PUSH EBP
00452511 |. 8BEC MOV EBP,ESP
00452513 |. 83C4 F0 ADD ESP,-10
00452516 |. 53 PUSH EBX
00452517 |. 33C0 XOR EAX,EAX
00452519 |. 8945 FC MOV /*RESULT*/,EAX
0045251C |. FF75 08 PUSH /*USER_NAME*/
0045251F |. E8 583A1000 CALL 010Edito.00555F7C //SEE BELOW
00452524 |. 59 POP ECX
00452525 |. 8945 F0 MOV /*CALC_COUNT*/,EAX //SAVE CALC_COUNT
00452528 |. 33D2 XOR EDX,EDX
0045252A |. 8955 F4 MOV /*VARIABLE_I*/,EDX //VARIABLE_I =0;
0045252D |. 8B4D F4 MOV ECX,/*VARIABLE_I*/
00452530 |. 3B4D F0 CMP ECX,/*CALC_COUNT*/ // (IF CALC_COUNT <= 0)
00452533 |. 0F8D 3B010000 JGE 010Edito.00452674 // RETURN 0
00452539 |> 8B45 08 /MOV EAX,/*USER_NAME*/
0045253C |. 8B55 F4 |MOV EDX,/*VARIABLE_I*/
0045253F |. 0FBE0C10 |MOVSX ECX,BYTE PTR DS:[EAX+EDX] // USER_NAME[VARIABLE_I]
00452543 |. 51 |PUSH ECX ; /Arg1 = USER_NAME[VARIABLE_I]
00452544 |. E8 8BA41000 |CALL 010Edito.0055C9D4 ; \010Edito.0055C9D4 //SEE BELOW
00452549 |. 59 |POP ECX
0045254A |. 8945 F8 |MOV /*SEED_BYTE*/,EAX
0045254D |. 837D 0C 00 |CMP DWORD PTR SS:[EBP+C],0 //EBP+C == 1
00452551 |. 0F84 86000000 |JE 010Edito.004525DD //NO JUMP
00452557 |. 8B45 F8 |MOV EAX,/*SEED_BYTE*/
0045255A |. 8B1485 DC48580>|MOV EDX,DWORD PTR DS:[EAX*4+5848DC] //EDX = G_ARR[SEED_BYTE *4]
00452561 |. 0355 FC |ADD EDX,/*RESULT*/ //EDX += RESULT;
00452564 |. 8B4D F8 |MOV ECX,/*SEED_BYTE*/
00452567 |. 83C1 0D |ADD ECX,0D
0045256A |. 81E1 FF000000 |AND ECX,0FF
00452570 |. 33148D DC48580>|XOR EDX,DWORD PTR DS:[ECX*4+5848DC] // EDX ^= G_ARR[((SEED_BYTE +0D)&0FF) *4]
00452577 |. 8B45 F8 |MOV EAX,/*SEED_BYTE*/
0045257A |. 83C0 2F |ADD EAX,2F
0045257D |. 25 FF000000 |AND EAX,0FF
00452582 |. 0FAF1485 DC485>|IMUL EDX,DWORD PTR DS:[EAX*4+5848DC]//EDX *=G_ARR[((SEED_BYTE +2F)&0FF) *4]
0045258A |. 6B4D F4 13 |IMUL ECX,/*VARIABLE_I*/,13 //ECX = VARIABLE_I *13;
0045258E |. 81E1 FF000000 |AND ECX,0FF
00452594 |. 03148D DC48580>|ADD EDX,DWORD PTR DS:[ECX*4+5848DC]
0045259B |. 8B45 F4 |MOV EAX,/*VARIABLE_I*/
0045259E |. 8D04C0 |LEA EAX,DWORD PTR DS:[EAX+EAX*8] // DS:[i+i*8]
004525A1 |. 8B4D 10 |MOV ECX,DWORD PTR SS:[EBP+10] //[EBP+10] == 01
004525A4 |. 8BD9 |MOV EBX,ECX
004525A6 |. C1E1 04 |SHL ECX,4 // ECX <<4;
004525A9 |. 03CB |ADD ECX,EBX // ECX += EBX;
004525AB |. 03C1 |ADD EAX,ECX //
004525AD |. 25 FF000000 |AND EAX,0FF
004525B2 |. 031485 DC48580>|ADD EDX,DWORD PTR DS:[EAX*4+5848DC]//EDX += G_ARR[EAX*4];
004525B9 |. 6B45 F4 0D |IMUL EAX,/*VARIABLE_I*/,0D //EAX = VARIABLE_I * 0D
004525BD |. 8B4D 14 |MOV ECX,DWORD PTR SS:[EBP+14] // ==01
004525C0 |. 8BD9 |MOV EBX,ECX //
004525C2 |. C1E1 04 |SHL ECX,4 //ECX <<4;
004525C5 |. 2BCB |SUB ECX,EBX
004525C7 |. 03C1 |ADD EAX,ECX
004525C9 |. 25 FF000000 |AND EAX,0FF
004525CE |. 031485 DC48580>|ADD EDX,DWORD PTR DS:[EAX*4+5848DC]//EDX += G_ARR[EAX*4];
004525D5 |. 8955 FC |MOV /*RESULT*/,EDX //RESULT == EDX;
004525D8 |. E9 88000000 |JMP 010Edito.00452665
004525DD |> 8B45 F8 |MOV EAX,/*SEED_BYTE*/
004525E0 |. 8B1485 DC48580>|MOV EDX,DWORD PTR DS:[EAX*4+5848DC]
004525E7 |. 0355 FC |ADD EDX,/*RESULT*/
004525EA |. 8B4D F8 |MOV ECX,/*SEED_BYTE*/
004525ED |. 83C1 3F |ADD ECX,3F
004525F0 |. 81E1 FF000000 |AND ECX,0FF
004525F6 |. 33148D DC48580>|XOR EDX,DWORD PTR DS:[ECX*4+5848DC]
004525FD |. 8B45 F8 |MOV EAX,/*SEED_BYTE*/
00452600 |. 83C0 17 |ADD EAX,17
00452603 |. 25 FF000000 |AND EAX,0FF
00452608 |. 0FAF1485 DC485>|IMUL EDX,DWORD PTR DS:[EAX*4+5848DC]
00452610 |. 8B4D F4 |MOV ECX,/*VARIABLE_I*/
00452613 |. 8BC1 |MOV EAX,ECX
00452615 |. C1E1 03 |SHL ECX,3
00452618 |. 2BC8 |SUB ECX,EAX
0045261A |. 81E1 FF000000 |AND ECX,0FF
00452620 |. 03148D DC48580>|ADD EDX,DWORD PTR DS:[ECX*4+5848DC]
00452627 |. 8B4D F4 |MOV ECX,/*VARIABLE_I*/
0045262A |. 8D0CC9 |LEA ECX,DWORD PTR DS:[ECX+ECX*8]
0045262D |. 8B45 10 |MOV EAX,DWORD PTR SS:[EBP+10]
00452630 |. 8BD8 |MOV EBX,EAX
00452632 |. C1E0 04 |SHL EAX,4
00452635 |. 03C3 |ADD EAX,EBX
00452637 |. 03C8 |ADD ECX,EAX
00452639 |. 81E1 FF000000 |AND ECX,0FF
0045263F |. 03148D DC48580>|ADD EDX,DWORD PTR DS:[ECX*4+5848DC]
00452646 |. 6B45 F4 0D |IMUL EAX,/*VARIABLE_I*/,0D
0045264A |. 8B4D 14 |MOV ECX,DWORD PTR SS:[EBP+14]
0045264D |. 8BD9 |MOV EBX,ECX
0045264F |. C1E1 04 |SHL ECX,4
00452652 |. 2BCB |SUB ECX,EBX
00452654 |. 03C1 |ADD EAX,ECX
00452656 |. 25 FF000000 |AND EAX,0FF
0045265B |. 031485 DC48580>|ADD EDX,DWORD PTR DS:[EAX*4+5848DC]
00452662 |. 8955 FC |MOV /*RESULT*/,EDX
00452665 |> FF45 F4 |INC /*VARIABLE_I*/ // VARIABLE_I ++;
00452668 |. 8B45 F4 |MOV EAX,/*VARIABLE_I*/
0045266B |. 3B45 F0 |CMP EAX,/*CALC_COUNT*/
0045266E |.^0F8C C5FEFFFF \JL 010Edito.00452539 //WHILE (VARIAL < CALC_COUNT)
00452674 |> 8B45 FC MOV EAX,/*RESULT*/ //RETURN RESULT;
00452677 |. 5B POP EBX
00452678 |. 8BE5 MOV ESP,EBP
0045267A |. 5D POP EBP
0045267B \. C3 RETN
///////////////////////////////////////////////////////////////////////////////////////
00555F7C /$ 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4] // EAX = USER_NAME
00555F80 |. A8 03 TEST AL,3
00555F82 |. 75 2D JNZ AA555FB1 //NO JUMP
00555F84 |> 8B10 /MOV EDX,DWORD PTR DS:[EAX]
00555F86 |. 83C0 04 |ADD EAX,4
00555F89 |. 8BCA |MOV ECX,EDX
00555F8B |. 81EA 01010101 |SUB EDX,1010101
00555F91 |. 81E2 80808080 |AND EDX,80808080
00555F97 |.^74 EB |JE SHORT 010Edito.00555F84
00555F99 |. F7D1 |NOT ECX
00555F9B |. 23D1 |AND EDX,ECX
00555F9D |.^74 E5 \JE SHORT 010Edito.00555F84
00555F9F |. 84D2 TEST DL,DL
00555FA1 |. 75 28 JNZ SHORT 010Edito.00555FCB
00555FA3 |. 84F6 TEST DH,DH
00555FA5 |. 75 25 JNZ SHORT 010Edito.00555FCC
00555FA7 |. F7C2 0000FF00 TEST EDX,0FF0000
00555FAD |. 75 1E JNZ SHORT 010Edito.00555FCD
00555FAF |. EB 1D JMP SHORT 010Edito.00555FCE
00555FB1 |> 83C0 04 ADD EAX,4
00555FB4 |. F640 FC FF TEST BYTE PTR DS:[EAX-4],0FF
00555FB8 |. 74 11 JE SHORT 010Edito.00555FCB
00555FBA |. F640 FD FF TEST BYTE PTR DS:[EAX-3],0FF
00555FBE |. 74 0C JE SHORT 010Edito.00555FCC
00555FC0 |. F640 FE FF TEST BYTE PTR DS:[EAX-2],0FF
00555FC4 |. 74 07 JE SHORT 010Edito.00555FCD
00555FC6 |. 48 DEC EAX
00555FC7 |. 24 FC AND AL,0FC
00555FC9 |.^EB B9 JMP SHORT 010Edito.00555F84
00555FCB |> 48 DEC EAX
00555FCC |> 48 DEC EAX
00555FCD |> 48 DEC EAX
00555FCE |> 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
00555FD2 |. 48 DEC EAX
00555FD3 |. 2BC1 SUB EAX,ECX
00555FD5 \. C3 RETN
////////////////////////////////////////////////////////////////////////////////////////
0055C9D4 /$ 55 PUSH EBP
0055C9D5 |. 8BEC MOV EBP,ESP
0055C9D7 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] //MOVE EAX,PARAM1
0055C9DA |. 83F8 FF CMP EAX,-1 //IF EAX != FF
0055C9DD |. 75 05 JNZ SHORT 010Edito.0055C9E4
0055C9DF |. 83C8 FF OR EAX,FFFFFFFF
0055C9E2 |. 5D POP EBP
0055C9E3 |. C3 RETN
0055C9E4 |> 33D2 XOR EDX,EDX //EDX = 0
0055C9E6 |. 8AD0 MOV DL,AL
0055C9E8 |. F60455 36EF590>TEST BYTE PTR DS:[EDX*2+59EF36],2 //IF (! (59EF36(PARAM1*2) & 2) )
0055C9F0 |. 74 07 JE SHORT 010Edito.0055C9F9 // RETURN PARAM1;
0055C9F2 |. 83C2 E0 ADD EDX,-20
0055C9F5 |. 8BC2 MOV EAX,EDX // RETURN PARAM1-20
0055C9F7 |. 5D POP EBP
0055C9F8 |. C3 RETN
0055C9F9 |> 8BC2 MOV EAX,EDX
0055C9FB |. 5D POP EBP
0055C9FC \. C3 RETN
注册机的C代码:
#include <stdio.h>
#include <windows.h>
DWORD G_SEEDS[]=
{
0x39CB44B8,0x23754F67,0x5F017211,0x3EBB24DA
,0x351707C6,0x63F9774B,0x17827288,0x0FE74821
,0x5B5F670F,0x48315AE8,0x785B7769,0x2B7A1547
,0x38D11292,0x42A11B32,0x35332244,0x77437B60
,0x1EAB3B10,0x53810000,0x1D0212AE,0x6F0377A8
,0x43C03092,0x2D3C0A8E,0x62950CBF,0x30F06FFA
,0x34F710E0,0x28F417FB,0x350D2F95,0x5A361D5A
,0x15CC060B,0x0AFD13CC,0x28603BCF,0x3371066B
,0x30CD14E4,0x175D3A67,0x6DD66A13,0x2D3409F9
,0x581E7B82,0x76526B99,0x5C8D5188,0x2C857971
,0x15F51FC0,0x68CC0D11,0x49F55E5C,0x275E4364
,0x2D1E0DBC,0x4CEE7CE3,0x32555840,0x112E2E08
,0x6978065A,0x72921406,0x314578E7,0x175621B7
,0x40771DBF,0x3FC238D6,0x4A31128A,0x2DAD036E
,0x41A069D6,0x25400192,0x00DD4667,0x6AFC1F4F
,0x571040CE,0x62FE66DF,0x41DB4B3E,0x3582231F
,0x55F6079A,0x1CA70644,0x1B1643D2,0x3F7228C9
,0x5F141070,0x3E1474AB,0x444B256E,0x537050D9
,0x0F42094B,0x2FD820E6,0x778B2E5E,0x71176D02
,0x7FEA7A69,0x5BB54628,0x19BA6C71,0x39763A99
,0x178D54CD,0x01246E88,0x3313537E,0x2B8E2D17
,0x2A3D10BE,0x59D10582,0x37A163DB,0x30D6489A
,0x6A215C46,0x0E1C7A76,0x1FC760E7,0x79B80C65
,0x27F459B4,0x799A7326,0x50BA1782,0x2A116D5C
,0x63866E1B,0x3F920E3C,0x55023490,0x55B56089
,0x2C391FD1,0x2F8035C2,0x64FD2B7A,0x4CE8759A
,0x518504F0,0x799501A8,0x3F5B2CAD,0x38E60160
,0x637641D8,0x33352A42,0x51A22C19,0x085C5851
,0x032917AB,0x2B770AC7,0x30AC77B3,0x2BEC1907
,0x035202D0,0x0FA933D3,0x61255DF3,0x22AD06BF
,0x58B86971,0x5FCA0DE5,0x700D6456,0x56A973DB
,0x5AB759FD,0x330E0BE2,0x5B3C0DDD,0x495D3C60
,0x53BD59A6,0x4C5E6D91,0x49D9318D,0x103D5079
,0x61CE42E3,0x7ED5121D,0x14E160ED,0x212D4EF2
,0x270133F0,0x62435A96,0x1FA75E8B,0x6F092FBE
,0x4A000D49,0x57AE1C70,0x004E2477,0x561E7E72
,0x468C0033,0x5DCC2402,0x78507AC6,0x58AF24C7
,0x0DF62D34,0x358A4708,0x3CFB1E11,0x2B71451C
,0x77A75295,0x56890721,0x0FEF75F3,0x120F24F1
,0x01990AE7,0x339C4452,0x27A15B8E,0x0BA7276D
,0x60DC1B7B,0x4F4B7F82,0x67DB7007,0x4F4A57D9
,0x621252E8,0x20532CFC,0x6A390306,0x18800423
,0x19F3778A,0x462316F0,0x56AE0937,0x43C2675C
,0x65CA45FD,0x0D604FF2,0x0BFD22CB,0x3AFE643B
,0x3BF67FA6,0x44623579,0x184031F8,0x32174F97
,0x4C6A092A,0x5FB50261,0x01650174,0x33634AF1
,0x712D18F4,0x6E997169,0x5DAB7AFE,0x7C2B2EE8
,0x6EDB75B4,0x5F836FB6,0x3C2A6DD6,0x292D05C2
,0x052244DB,0x149A5F4F,0x5D486540,0x331D15EA
,0x4F456920,0x483A699F,0x3B450F05,0x3B207C6C
,0x749D70FE,0x417461F6,0x62B031F1,0x2750577B
,0x29131533,0x588C3808,0x1AEF3456,0x0F3C00EC
,0x7DA74742,0x4B797A6C,0x5EBB3287,0x786558B8
,0x00ED4FF2,0x6269691E,0x24A2255F,0x62C11F7E
,0x2F8A7DCD,0x643B17FE,0x778318B8,0x253B60FE
,0x34BB63A3,0x5B03214F,0x5F1571F4,0x1A316E9F
,0x7ACF2704,0x28896838,0x18614677,0x1BF569EB
,0x0BA85EC9,0x6ACA6B46,0x1E43422A,0x514D5F0E
,0x413E018C,0x307626E9,0x01ED1DFA,0x49F46F5A
,0x461B642B,0x7D7007F2,0x13652657,0x6B160BC5
,0x65E04849,0x1F526E1C,0x5A0251B6,0x2BD73F69
,0x2DBF7ACD,0x51E63E80,0x5CF2670F,0x21CD0A03
,0x5CFF0261,0x33AE061E,0x3BB6345F,0x5D814A75
,0x257B5DF4,0x0A5C2C5B,0x16A45527,0x16F23945
,0xB3CBCD26,0xA1C800F6,0x2628FBCF,0xEBC70043
};
WORD _G_BYTESEEDS[]=
{
0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020
,0x0020,0x0028,0x0028,0x0028,0x0028,0x0028,0x0020,0x0020
,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020
,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020
,0x0048,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010
,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010
,0x0084,0x0084,0x0084,0x0084,0x0084,0x0084,0x0084,0x0084
,0x0084,0x0084,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010
,0x0010,0x0181,0x0181,0x0181,0x0181,0x0181,0x0181,0x0101
,0x0101,0x0101,0x0101,0x0101,0x0101,0x0101,0x0101,0x0101
,0x0101,0x0101,0x0101,0x0101,0x0101,0x0101,0x0101,0x0101
,0x0101,0x0101,0x0101,0x0010,0x0010,0x0010,0x0010,0x0010
,0x0010,0x0182,0x0182,0x0182,0x0182,0x0182,0x0182,0x0102
,0x0102,0x0102,0x0102,0x0102,0x0102,0x0102,0x0102,0x0102
,0x0102,0x0102,0x0102,0x0102,0x0102,0x0102,0x0102,0x0102
,0x0102,0x0102,0x0102,0x0010,0x0010,0x0010,0x0010,0x0020
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
};
PBYTE G_BYTESEEDS = (PBYTE)_G_BYTESEEDS;
DWORD __declspec( naked ) GetCalc_Count(char *username)
{
_asm
{
/*00555F7C*/ MOV EAX,DWORD PTR SS:[ESP+4] // EAX = USER_NAME
/*00555F80*/ TEST AL,3
/*00555F82*/ JNZ AA555FB1 //NO JUMP
AA555F84:
/*00555F84*/ MOV EDX,DWORD PTR DS:[EAX]
/*00555F86*/ ADD EAX,4
/*00555F89*/ MOV ECX,EDX
/*00555F8B*/ SUB EDX,1010101h
/*00555F91*/ AND EDX,80808080h
/*00555F97*/ JE AA555F84
/*00555F99*/ NOT ECX
/*00555F9B*/ AND EDX,ECX
/*00555F9D*/ JE AA555F84
/*00555F9F*/ TEST DL,DL
/*00555FA1*/ JNZ AA555FCB
/*00555FA3*/ TEST DH,DH
/*00555FA5*/ JNZ AA555FCC
/*00555FA7*/ TEST EDX,0FF0000h
/*00555FAD*/ JNZ AA555FCD
/*00555FAF*/ JMP AA555FCE
AA555FB1:
/*00555FB1*/ ADD EAX,4
/*00555FB4*/ TEST BYTE PTR DS:[EAX-4],0FFh
/*00555FB8*/ JE AA555FCB
/*00555FBA*/ TEST BYTE PTR DS:[EAX-3],0FFh
/*00555FBE*/ JE AA555FCC
/*00555FC0*/ TEST BYTE PTR DS:[EAX-2],0FFh
/*00555FC4*/ JE AA555FCD
/*00555FC6*/ DEC EAX
/*00555FC7*/ AND AL,0FCh
/*00555FC9*/ JMP AA555F84
AA555FCB:
/*00555FCB*/ DEC EAX
AA555FCC:
/*00555FCC*/ DEC EAX
AA555FCD:
/*00555FCD*/ DEC EAX
AA555FCE:
/*00555FCE*/ MOV ECX,DWORD PTR SS:[ESP+4]
/*00555FD2*/ DEC EAX
/*00555FD3*/ SUB EAX,ECX
/*00555FD5*/ RETN
}
}
BYTE __declspec( naked ) GetCalcSeed(char seed)
{
_asm{
/*0055C9D4*/ PUSH EBP
/*0055C9D5*/ MOV EBP,ESP
/*0055C9D7*/ MOV EAX,DWORD PTR SS:[EBP+8] //MOVE EAX,PARAM1
/*0055C9DA*/ CMP EAX,-1 //IF EAX != FF
/*0055C9DD*/ JNZ AA55C9E4
/*0055C9DF*/ OR EAX,0xFFFFFFFF
/*0055C9E2*/ POP EBP
/*0055C9E3*/ RETN
AA55C9E4:
/*0055C9E4*/ XOR EDX,EDX //EDX = 0
/*0055C9E6*/ MOV DL,AL
/*0055C9E8*/ TEST BYTE PTR DS:[EDX*2+G_BYTESEEDS],2 //IF (! (59EF36(PARAM1*2) & 2) )
/*0055C9F0*/ JE AA55C9F9 // RETURN PARAM1;
/*0055C9F2*/ ADD EDX,-20h
/*0055C9F5*/ MOV EAX,EDX // RETURN PARAM1-20
/*0055C9F7*/ POP EBP
/*0055C9F8*/ RETN
AA55C9F9:
/*0055C9F9*/ MOV EAX,EDX
/*0055C9FB*/ POP EBP
/*0055C9FC*/ RETN
}
}
DWORD calckey(char * USER_NAME,BOOL bSth,BOOL CTRL1, BOOL CTRL2)
{
DWORD tmpEDX,CALC_COUNT;
DWORD RESULT = 0;
DWORD tmp1,tmp2;
BYTE SEED_BYTE;
DWORD i;
CALC_COUNT = GetCalc_Count(USER_NAME);
if(CALC_COUNT <= 0)
return 0;
for(i=0;i<CALC_COUNT;i++)
{
SEED_BYTE = GetCalcSeed(USER_NAME[i]);
if(bSth ==0)
{
}
else
{
tmpEDX = G_SEEDS[SEED_BYTE]; //1
tmpEDX += RESULT; //2
tmpEDX ^=G_SEEDS[(SEED_BYTE +0x0D)&0xFF ];//3
tmpEDX *=G_SEEDS[(SEED_BYTE +0x2F)&0xFF];//4
tmp1 = (i*0x13) & 0xff;
tmpEDX +=G_SEEDS[tmp1];//5;
tmp1 = i+i*8;
tmp2 = CTRL1;
tmp2 = tmp2 <<4;
tmp2 += CTRL1;
tmp1 += tmp2;
tmp1 &= 0xff;
tmpEDX +=G_SEEDS[tmp1];//6
tmp1 = (i*0x0D) & 0xff;
tmp2 = CTRL2;
tmp2 = tmp2 <<4;
tmp2 -= CTRL2;
tmp1 += tmp2;
tmpEDX +=G_SEEDS[tmp1];//7
RESULT = tmpEDX;
}
}
return RESULT;
}
BYTE __declspec( naked ) CALC_CTRL1(BYTE seedb)
{
_asm{
/*004527B2*/ PUSH EBP
/*004527B3*/ MOV EBP,ESP
/*004527B5*/ PUSH ECX
/*004527B6*/ MOV AL,BYTE PTR SS:[EBP+8]
/*004527B9*/ XOR AL,0x18
/*004527BB*/ ADD AL,0x3D
/*004527BD*/ XOR AL,0xA7
/*004527BF*/ MOV BYTE PTR SS:[EBP-1],AL
/*004527C2*/ MOV AL,BYTE PTR SS:[EBP-1]
/*004527C5*/ POP ECX
/*004527C6*/ POP EBP
/*004527C7*/ RETN
}
}
WORD __declspec( naked ) CALC_CTRL2(WORD seedw)
{
_asm
{
/*004527C8*/ PUSH EBP
/*004527C9*/ MOV EBP,ESP
/*004527CB*/ PUSH ECX
/*004527CC*/ MOV AX,WORD PTR SS:[EBP+8] //param1
/*004527D0*/ XOR AX,7892h
/*004527D4*/ ADD AX,4D30h
/*004527D8*/ XOR AX,3421h
/*004527DC*/ MOV WORD PTR SS:[EBP-2],AX
/*004527E0*/ MOVZX EAX,WORD PTR SS:[EBP-2] //被除数
/*004527E4*/ MOV ECX,0Bh //除数
/* */
/*004527E9*/ CDQ
/*004527EA*/ IDIV ECX
/*004527EC*/ TEST EDX,EDX
/*004527EE*/ JNZ AA4527FF
/*004527F0*/ MOVZX EAX,WORD PTR SS:[EBP-2]
/*004527F4*/ MOV ECX,0Bh
/*004527F9*/ CDQ
/*004527FA*/ IDIV ECX //
/*004527FC*/ POP ECX //返回倍数,
/*004527FD*/ POP EBP
/*004527FE*/ RETN
AA4527FF:
/*004527FF*/ XOR EAX,EAX
/*00452801*/ POP ECX
/*00452802*/ POP EBP
/*00452803*/ RETN
}
}
CHAR INFO[][255]=
{
"*********************************************\n",
"** **\n",
"** KEYGEN FOR 010 Editor V1.3 **\n",
"** **\n",
"** BY YANG**\n",
"** 2004.5.15**\n",
"** ANY QUESTION ABOUT THIS KEYGEN**\n",
"** PLEASE MAIL TO YHF@CHINAWEAL.COM**\n"
"*********************************************\n",
"GOT THE KEY SUCCESSFULLY,ENJOY IT! :) \n"
};
int main(int argc,char *arg[])
{
DWORD KEYGEN = 0;
CHAR USER_NAME[255]="";
BYTE KEYS[8]={0};
BYTE i,j,tmpa;
WORD testword,tmpb;
if(argc <2)
{
printf("Input A user Name please!\n");
return 0;
}
for(i=1;i<argc;i++)
{
if(lstrlen(USER_NAME)!=0)
{
lstrcat(USER_NAME," ");
}
lstrcat(USER_NAME,arg[i]);
}
KEYGEN = calckey(USER_NAME,1,1,1);
//printf("%X\n",KEYGEN);
memcpy(&KEYS[4],&KEYGEN,sizeof(KEYGEN));
KEYS[3] = 0x9C;
for(i=0;i<255;i++)
{
tmpa = i;
tmpa ^= KEYS[6]; //1ST XOR 7TH
if(CALC_CTRL1(tmpa) == 1)
{
KEYS[0] = i;
break;
}
}
for(i=0;i<255;i++)
{
for(j=0;j<255;j++)
{
tmpa = i;
tmpb = j;
tmpa ^= KEYS[7]; //2ND XOR 8TH
testword = 0;
testword = tmpa;
testword <<=8;
tmpb ^= KEYS[5]; //3rd xor 6th
testword |= tmpb;
if(CALC_CTRL2(testword)==1)
{
KEYS[1] = i;
KEYS[2] = j;
for(j=0;j<10;j++)
{
printf("%s",INFO[j]);
}
printf("NAME: %s\n",USER_NAME);
printf("KEYS: ");
for(j = 0;j<8;j++)
{
if(KEYS[j]<0x10)
{
printf("0");
}
printf("%X",KEYS[j]);
if((j+1)%2 == 0 && j!=7)
{
printf("-");
}
}
printf("\n");
return 0;
}
}
}
return 0;
}