hbqjxhw 发表于 2007-1-27 23:28:02

[破]Christmas-KeygenMe#4.Guetta

【破文作者】   hbqjxhw

【文章题目】   [破]Christmas-KeygenMe#4.Guetta

【软件名称】   Christmas-KeygenMe#4

【下载地址】   http://www.crackmes.de/users/guetta/christmas_keygenme/

----------------------------------------------------------------------------------------------
【破解工具】   OD,RSATool2v110,BigCalc,MD5,BASE64,MD5Crack V3.0

【破解平台】   WinXP SP2

----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
【破解过程】

1. PEiD查看,无壳,还找到了BASE64、RSA、MD5等加密算法;
2. OD载入;
3. 下BPX GetDlgItemTextA
00401EEA、00401F0C、00401F29、00401F4B保留这四个,F2去掉004029A0,为什么?自己试一试就知道了
然后一步一步去跟踪了:

00401ED5/$55            PUSH EBP                               ;(Initial CPU selection)
00401ED6|.8BEC          MOV EBP,ESP
00401ED8|.53            PUSH EBX
00401ED9|.56            PUSH ESI
00401EDA|.57            PUSH EDI
00401EDB|.6A 40         PUSH 40                              ; /Count = 40 (64.)
00401EDD|.68 26814000   PUSH Christma.00408126               ; |Buffer = Christma.00408126
00401EE2|.68 94010000   PUSH 194                               ; |ControlID = 194 (404.)
00401EE7|.FF75 08       PUSH DWORD PTR SS:            ; |hWnd
00401EEA|.E8 450F0000   CALL <Christma.GetDlgItemTextA>      ; \GetDlgItemTextA
00401EEF|.83F8 02       CMP EAX,2                              ;判断Name位数是否大于2
00401EF2|.0F82 15020000 JB Christma.0040210D
00401EF8|.A2 89834000   MOV BYTE PTR DS:,AL
00401EFD|.6A 40         PUSH 40                              ; /Count = 40 (64.)
00401EFF|.68 E6814000   PUSH Christma.004081E6               ; |Invalid registration informations.
00401F04|.68 95010000   PUSH 195                               ; |ControlID = 195 (405.)
00401F09|.FF75 08       PUSH DWORD PTR SS:            ; |hWnd
00401F0C|.E8 230F0000   CALL <Christma.GetDlgItemTextA>      ; \GetDlgItemTextA
00401F11|.83F8 02       CMP EAX,2                              ;判断Serial位数是否大于2
00401F14|.0F82 F3010000 JB Christma.0040210D
00401F1A|.6A 40         PUSH 40                              ; /Count = 40 (64.)
00401F1C|.68 66814000   PUSH Christma.00408166               ; |Buffer = Christma.00408166
00401F21|.68 99010000   PUSH 199                               ; |ControlID = 199 (409.)
00401F26|.FF75 08       PUSH DWORD PTR SS:            ; |hWnd
00401F29|.E8 060F0000   CALL <Christma.GetDlgItemTextA>      ; \GetDlgItemTextA
00401F2E|.83F8 02       CMP EAX,2                              ;判断Group位数是否大于2
00401F31|.0F82 D6010000 JB Christma.0040210D
00401F37|.A2 8B834000   MOV BYTE PTR DS:,AL
00401F3C|.6A 40         PUSH 40                              ; /Count = 40 (64.)
00401F3E|.68 A6814000   PUSH Christma.004081A6               ; |Buffer = Christma.004081A6
00401F43|.68 9A010000   PUSH 19A                               ; |ControlID = 19A (410.)
00401F48|.FF75 08       PUSH DWORD PTR SS:            ; |hWnd
00401F4B|.E8 E40E0000   CALL <Christma.GetDlgItemTextA>      ; \GetDlgItemTextA
00401F50|.83F8 06       CMP EAX,6                              ;判断E-Mail位数是否大于6
00401F53|.0F82 B4010000 JB Christma.0040210D
00401F59|.A2 8D834000   MOV BYTE PTR DS:,AL
00401F5E|.33DB          XOR EBX,EBX
00401F60|.BA A6814000   MOV EDX,Christma.004081A6
00401F65|>8A02          /MOV AL,BYTE PTR DS:
00401F67|.83FB 03       |CMP EBX,3
00401F6A|.74 19         |JE SHORT Christma.00401F85
00401F6C|.3C 00         |CMP AL,0
00401F6E|.0F84 99010000 |JE Christma.0040210D
00401F74|.3C 40         |CMP AL,40
00401F76|.75 03         |JNZ SHORT Christma.00401F7B
00401F78|.83C3 01       |ADD EBX,1
00401F7B|>3C 2E         |CMP AL,2E
00401F7D|.75 03         |JNZ SHORT Christma.00401F82
00401F7F|.83C3 02       |ADD EBX,2
00401F82|>42            |INC EDX
00401F83|.^ EB E0         \JMP SHORT Christma.00401F65
00401F85|>E8 48FBFFFF   CALL Christma.00401AD2               ; \关键CALL,KeyFile文件的生成及内容算法
00401F8A|.3C 01         CMP AL,1
00401F8C|.74 06         JE SHORT Christma.00401F94
00401F8E|.0F85 79010000 JNZ Christma.0040210D
00401F94|>33C0          XOR EAX,EAX
Name标准的MD5计算并转换为大写取前15位
00401F96|.A0 89834000   MOV AL,BYTE PTR DS:
00401F9B|.68 A4894000   PUSH Christma.004089A4               ; /Arg3 = 004089A4
00401FA0|.50            PUSH EAX                               ; |Arg2
00401FA1|.68 26814000   PUSH Christma.00408126               ; |Arg1 = 00408126
00401FA6|.E8 55F0FFFF   CALL Christma.00401000               ; \
00401FAB|.FF35 B0894000 PUSH DWORD PTR DS:             ; /<%.8x> = 71EB1925
00401FB1|.FF35 AC894000 PUSH DWORD PTR DS:             ; |<%.8x> = 352217E7
00401FB7|.FF35 A8894000 PUSH DWORD PTR DS:             ; |<%.8x> = 737A9385
00401FBD|.FF35 A4894000 PUSH DWORD PTR DS:             ; |<%.8x> = 84CC9A91
00401FC3|.68 53804000   PUSH Christma.00408053               ; |%.8x%.8x%.8x%.8x
00401FC8|.68 26834000   PUSH Christma.00408326               ; |s = Christma.00408326
00401FCD|.E8 1A0E0000   CALL <Christma.wsprintfA>            ; \wsprintfA
00401FD2|.83C4 18       ADD ESP,18
00401FD5|.68 26834000   PUSH Christma.00408326               ; /StringOrChar = "582C72D779E7F9B"
00401FDA|.E8 190E0000   CALL <Christma.CharUpperA>             ; \CharUpperA
00401FDF|.C605 35834000>MOV BYTE PTR DS:,0
00401FE6|.33C0          XOR EAX,EAX
Group标准的MD5计算并转换为大写取前15位
00401FE8|.A0 8B834000   MOV AL,BYTE PTR DS:
00401FED|.68 A4894000   PUSH Christma.004089A4               ; /Arg3 = 004089A4
00401FF2|.50            PUSH EAX                               ; |Arg2
00401FF3|.68 66814000   PUSH Christma.00408166               ; |Arg1 = 00408166
00401FF8|.E8 03F0FFFF   CALL Christma.00401000               ; \
00401FFD|.FF35 B0894000 PUSH DWORD PTR DS:             ; /<%.8x> = 71EB1925
00402003|.FF35 AC894000 PUSH DWORD PTR DS:             ; |<%.8x> = 352217E7
00402009|.FF35 A8894000 PUSH DWORD PTR DS:             ; |<%.8x> = 737A9385
0040200F|.FF35 A4894000 PUSH DWORD PTR DS:             ; |<%.8x> = 84CC9A91
00402015|.68 53804000   PUSH Christma.00408053               ; |%.8x%.8x%.8x%.8x
0040201A|.68 47834000   PUSH Christma.00408347               ; |s = Christma.00408347
0040201F|.E8 C80D0000   CALL <Christma.wsprintfA>            ; \wsprintfA
00402024|.83C4 18       ADD ESP,18
00402027|.68 47834000   PUSH Christma.00408347               ; /StringOrChar = "81393C93EE1717E"
0040202C|.E8 C70D0000   CALL <Christma.CharUpperA>             ; \CharUpperA
00402031|.C605 56834000>MOV BYTE PTR DS:,0
00402038|.33C0          XOR EAX,EAX
E-Mail标准的MD5计算并转换为大写取前15位
0040203A|.A0 8D834000   MOV AL,BYTE PTR DS:
0040203F|.68 A4894000   PUSH Christma.004089A4               ; /Arg3 = 004089A4
00402044|.50            PUSH EAX                               ; |Arg2
00402045|.68 A6814000   PUSH Christma.004081A6               ; |Arg1 = 004081A6
0040204A|.E8 B1EFFFFF   CALL Christma.00401000               ; \
0040204F|.FF35 B0894000 PUSH DWORD PTR DS:             ; /<%.8x> = 71EB1925
00402055|.FF35 AC894000 PUSH DWORD PTR DS:             ; |<%.8x> = 352217E7
0040205B|.FF35 A8894000 PUSH DWORD PTR DS:             ; |<%.8x> = 737A9385
00402061|.FF35 A4894000 PUSH DWORD PTR DS:             ; |<%.8x> = 84CC9A91
00402067|.68 53804000   PUSH Christma.00408053               ; |%.8x%.8x%.8x%.8x
0040206C|.68 68834000   PUSH Christma.00408368               ; |s = Christma.00408368
00402071|.E8 760D0000   CALL <Christma.wsprintfA>            ; \wsprintfA
00402076|.83C4 18       ADD ESP,18
00402079|.68 68834000   PUSH Christma.00408368               ; /StringOrChar = "84CC9A91737A938"
0040207E|.E8 750D0000   CALL <Christma.CharUpperA>             ; \CharUpperA
00402083|.C605 77834000>MOV BYTE PTR DS:,0
0040208A|.33DB          XOR EBX,EBX
0040208C|.BA E6814000   MOV EDX,Christma.004081E6            ;Serial赋给EDX
00402091|>8A02          /MOV AL,BYTE PTR DS:            ;Serial的格式检验
00402093|.83FB 04       |CMP EBX,4                                   ;Serial的格式为SN1-SN2-SN3
00402096|.74 2E         |JE SHORT Christma.004020C6
00402098|.3C 00         |CMP AL,0
0040209A|.74 71         |JE SHORT Christma.0040210D
0040209C|.3C 2D         |CMP AL,2D
0040209E|.75 23         |JNZ SHORT Christma.004020C3
004020A0|.83C3 02       |ADD EBX,2                           ;分支 (案例 2..2)
004020A3|.83FB 02       |CMP EBX,2
004020A6|.74 05         |JE SHORT Christma.004020AD
004020A8|.83FB 04       |CMP EBX,4
004020AB|.74 0B         |JE SHORT Christma.004020B8
004020AD|>8915 8F834000 |MOV DWORD PTR DS:,EDX         ;分支 004020A0 默认案例
004020B3|.C602 00       |MOV BYTE PTR DS:,0
004020B6|.EB 0B         |JMP SHORT Christma.004020C3
004020B8|>8915 94834000 |MOV DWORD PTR DS:,EDX         ;案例 2 --> 分支 004020A0
004020BE|.C602 00       |MOV BYTE PTR DS:,0
004020C1|.EB 00         |JMP SHORT Christma.004020C3
004020C3|>42            |INC EDX
004020C4|.^ EB CB         \JMP SHORT Christma.00402091
004020C6|>E8 7C010000   CALL Christma.00402247               ;重要CALL,第1个SN1的RSA计算
004020CB|.E8 B5020000   CALL Christma.00402385               ;重要CALL,第2个SN2的RSA计算
004020D0|.E8 F2030000   CALL Christma.004024C7               ;重要CALL,第3个SN3的RSA计算
004020D5|.68 26834000   PUSH Christma.00408326               ; /String2 = "582C72D779E7F9B"
004020DA|.68 66824000   PUSH Christma.00408266               ; |String1 = "582C72D779E7F9B"
004020DF|.E8 EC0D0000   CALL <Christma.lstrcmpA>               ; \lstrcmpA
004020E4|.75 27         JNZ SHORT Christma.0040210D            ;Name的MD5前15位是否等于第1个SN1的RSA计算的值
004020E6|.68 47834000   PUSH Christma.00408347               ; /String2 = "81393C93EE1717E"
004020EB|.68 A6824000   PUSH Christma.004082A6               ; |String1 = "81393C93EE1717E"
004020F0|.E8 DB0D0000   CALL <Christma.lstrcmpA>               ; \lstrcmpA
004020F5|.75 16         JNZ SHORT Christma.0040210D            ;Group的MD5前15位是否等于第2个SN2的RSA计算的值
004020F7|.68 68834000   PUSH Christma.00408368               ; /String2 = "84CC9A91737A938"
004020FC|.68 E6824000   PUSH Christma.004082E6               ; |String1 = "CDC180E6C4ECD06"
00402101|.E8 CA0D0000   CALL <Christma.lstrcmpA>               ; \lstrcmpA
00402106|.75 05         JNZ SHORT Christma.0040210D            ;E-Mail的MD5前15位是否等于第3个SN3的RSA计算的值
00402108|.E9 9B000000   JMP Christma.004021A8
0040210D|>68 3C854000   PUSH Christma.0040853C               ; /Invalid registration informations.
00402112|.68 95010000   PUSH 195                               ; |ControlID = 195 (405.)
00402117|.FF75 08       PUSH DWORD PTR SS:            ; |hWnd
0040211A|.E8 510D0000   CALL <Christma.SetDlgItemTextA>      ; \SetDlgItemTextA
0040211F|.6A 40         PUSH 40                              ; /Length = 40 (64.)
00402121|.68 26814000   PUSH Christma.00408126               ; |Destination = Christma.00408126
00402126|.E8 990D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
0040212B|.6A 40         PUSH 40                              ; /Length = 40 (64.)
0040212D|.68 66814000   PUSH Christma.00408166               ; |Destination = Christma.00408166
00402132|.E8 8D0D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
00402137|.6A 40         PUSH 40                              ; /Length = 40 (64.)
00402139|.68 A6814000   PUSH Christma.004081A6               ; |Destination = Christma.004081A6
0040213E|.E8 810D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
00402143|.6A 40         PUSH 40                              ; /Length = 40 (64.)
00402145|.68 66824000   PUSH Christma.00408266               ; |Destination = Christma.00408266
0040214A|.E8 750D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
0040214F|.6A 40         PUSH 40                              ; /Length = 40 (64.)
00402151|.68 A6824000   PUSH Christma.004082A6               ; |Destination = Christma.004082A6
00402156|.E8 690D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
0040215B|.6A 40         PUSH 40                              ; /Length = 40 (64.)
0040215D|.68 E6824000   PUSH Christma.004082E6               ; |Destination = Christma.004082E6
00402162|.E8 5D0D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
00402167|.6A 40         PUSH 40                              ; /Length = 40 (64.)
00402169|.68 26834000   PUSH Christma.00408326               ; |Destination = Christma.00408326
0040216E|.E8 510D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
00402173|.6A 40         PUSH 40                              ; /Length = 40 (64.)
00402175|.68 47834000   PUSH Christma.00408347               ; |Destination = Christma.00408347
0040217A|.E8 450D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
0040217F|.6A 40         PUSH 40                              ; /Length = 40 (64.)
00402181|.68 68834000   PUSH Christma.00408368               ; |Destination = Christma.00408368
00402186|.E8 390D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
0040218B|.6A 40         PUSH 40                              ; /Length = 40 (64.)
0040218D|.68 26824000   PUSH Christma.00408226               ; |Destination = Christma.00408226
00402192|.E8 2D0D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
00402197|.6A 27         PUSH 27                              ; /Length = 27 (39.)
00402199|.68 A4894000   PUSH Christma.004089A4               ; |Destination = Christma.004089A4
0040219E|.E8 210D0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
004021A3|.E9 98000000   JMP Christma.00402240
004021A8|>68 36804000   PUSH Christma.00408036               ; /Merry christmas my friend =)
004021AD|.68 95010000   PUSH 195                               ; |ControlID = 195 (405.)
004021B2|.FF75 08       PUSH DWORD PTR SS:            ; |hWnd
004021B5|.E8 B60C0000   CALL <Christma.SetDlgItemTextA>      ; \SetDlgItemTextA
004021BA|.6A 40         PUSH 40                              ; /Length = 40 (64.)
004021BC|.68 26814000   PUSH Christma.00408126               ; |Destination = Christma.00408126
004021C1|.E8 FE0C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
004021C6|.6A 40         PUSH 40                              ; /Length = 40 (64.)
004021C8|.68 66814000   PUSH Christma.00408166               ; |Destination = Christma.00408166
004021CD|.E8 F20C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
004021D2|.6A 40         PUSH 40                              ; /Length = 40 (64.)
004021D4|.68 A6814000   PUSH Christma.004081A6               ; |Destination = Christma.004081A6
004021D9|.E8 E60C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
004021DE|.6A 40         PUSH 40                              ; /Length = 40 (64.)
004021E0|.68 66824000   PUSH Christma.00408266               ; |Destination = Christma.00408266
004021E5|.E8 DA0C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
004021EA|.6A 40         PUSH 40                              ; /Length = 40 (64.)
004021EC|.68 A6824000   PUSH Christma.004082A6               ; |Destination = Christma.004082A6
004021F1|.E8 CE0C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
004021F6|.6A 40         PUSH 40                              ; /Length = 40 (64.)
004021F8|.68 E6824000   PUSH Christma.004082E6               ; |Destination = Christma.004082E6
004021FD|.E8 C20C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
00402202|.6A 40         PUSH 40                              ; /Length = 40 (64.)
00402204|.68 26834000   PUSH Christma.00408326               ; |Destination = Christma.00408326
00402209|.E8 B60C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
0040220E|.6A 40         PUSH 40                              ; /Length = 40 (64.)
00402210|.68 47834000   PUSH Christma.00408347               ; |Destination = Christma.00408347
00402215|.E8 AA0C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
0040221A|.6A 40         PUSH 40                              ; /Length = 40 (64.)
0040221C|.68 68834000   PUSH Christma.00408368               ; |Destination = Christma.00408368
00402221|.E8 9E0C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
00402226|.6A 40         PUSH 40                              ; /Length = 40 (64.)
00402228|.68 26824000   PUSH Christma.00408226               ; |Destination = Christma.00408226
0040222D|.E8 920C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
00402232|.6A 27         PUSH 27                              ; /Length = 27 (39.)
00402234|.68 A4894000   PUSH Christma.004089A4               ; |Destination = Christma.004089A4
00402239|.E8 860C0000   CALL <Christma.RtlZeroMemory>          ; \RtlZeroMemory
0040223E|.EB 00         JMP SHORT Christma.00402240
00402240|>5F            POP EDI
00402241|.5E            POP ESI
00402242|.5B            POP EBX
00402243|.C9            LEAVE
00402244\.C2 0400       RETN 4


------------------------CALL Christma.00401AD2-------------------------
00401AD2/$55            PUSH EBP                        ;KeyFile文件的生成及内容算法
00401AD3|.8BEC          MOV EBP,ESP
00401AD5|.83C4 FC       ADD ESP,-4
00401AD8|.53            PUSH EBX
00401AD9|.56            PUSH ESI
00401ADA|.57            PUSH EDI
00401ADB|.6A 00         PUSH 0                        ; /hTemplateFile = NULL
00401ADD|.6A 00         PUSH 0                        ; |Attributes = 0
00401ADF|.6A 03         PUSH 3                        ; |Mode = OPEN_EXISTING
00401AE1|.6A 00         PUSH 0                        ; |pSecurity = NULL
00401AE3|.6A 01         PUSH 1                        ; |ShareMode = FILE_SHARE_READ
00401AE5|.68 00000080   PUSH 80000000                   ; |Access = GENERIC_READ
00401AEA|.68 73844000   PUSH Christma.00408473          ; |merryREchristmas
00401AEF|.E8 9A130000   CALL <Christma.CreateFileA>   ; \CreateFileA
00401AF4|.83F8 FF       CMP EAX,-1                      ;创建名为merryREchristmas这样一个文件
00401AF7|.75 05         JNZ SHORT Christma.00401AFE
00401AF9|.E9 A4020000   JMP Christma.00401DA2
00401AFE|>6A 00         PUSH 0                        ; /pOverlapped = NULL
00401B00|.68 CB844000   PUSH Christma.004084CB          ; |pBytesRead = Christma.004084CB
00401B05|.6A 46         PUSH 46                         ; |BytesToRead = 46 (70.)
00401B07|.68 84844000   PUSH Christma.00408484          ; |Buffer = Christma.00408484
00401B0C|.50            PUSH EAX                        ; |hFile
00401B0D|.E8 AC130000   CALL <Christma.ReadFile>      ; \ReadFile
00401B12|.85C0          TEST EAX,EAX                  ;读出文件内容
00401B14|.75 05         JNZ SHORT Christma.00401B1B
00401B16|.E9 87020000   JMP Christma.00401DA2
00401B1B|>A1 84844000   MOV EAX,DWORD PTR DS:
00401B20|.A3 F0844000   MOV DWORD PTR DS:,EAX
00401B25|.C605 F3844000>MOV BYTE PTR DS:,0
00401B2C|.B8 03000000   MOV EAX,3                     ;这几行应该是想取前3个字符
00401B31|.68 A4894000   PUSH Christma.004089A4          ; /Arg3 = 004089A4
00401B36|.50            PUSH EAX                        ; |Arg2 => 00000003
00401B37|.68 F0844000   PUSH Christma.004084F0          ; |Arg1 = 004084F0
00401B3C|.E8 BFF4FFFF   CALL Christma.00401000          ; \前3个字符标准的MD5计算
00401B41|.FF35 B0894000 PUSH DWORD PTR DS:      ; /<%.8x> = 71EB1925
00401B47|.FF35 AC894000 PUSH DWORD PTR DS:      ; |<%.8x> = 352217E7
00401B4D|.FF35 A8894000 PUSH DWORD PTR DS:      ; |<%.8x> = 737A9385
00401B53|.FF35 A4894000 PUSH DWORD PTR DS:      ; |<%.8x> = 84CC9A91
00401B59|.68 53804000   PUSH Christma.00408053          ; |%.8x%.8x%.8x%.8x
00401B5E|.68 26834000   PUSH Christma.00408326          ; |s = Christma.00408326
00401B63|.E8 84120000   CALL <Christma.wsprintfA>       ; \wsprintfA
00401B68|.83C4 18       ADD ESP,18
00401B6B|.68 CF844000   PUSH Christma.004084CF          ; /3c6e0b8a9c15224a8228b9a98ca1531d
00401B70|.68 26834000   PUSH Christma.00408326          ; |String1 = "582C72D779E7F9B"
00401B75|.E8 56130000   CALL <Christma.lstrcmpA>      ; \lstrcmpA
00401B7A|.74 05         JE SHORT Christma.00401B81      ;前3个字符标准的MD5计算与3c6e0b8a9c15224a8228b9a98ca1531d是否相等
00401B7C|.E9 21020000   JMP Christma.00401DA2         ;根据3c6e0b8a9c15224a8228b9a98ca1531d用MD5Crack V3.0很快计算出为key
00401B81|>803D 87844000>CMP BYTE PTR DS:,0      ;判断merryREchristmas文件的第4位HEX码是否为0
00401B88|.0F85 14020000 JNZ Christma.00401DA2
00401B8E|.803D 88844000>CMP BYTE PTR DS:,0      ;判断merryREchristmas文件的第5位HEX码是否为0
00401B95|.0F85 07020000 JNZ Christma.00401DA2
00401B9B|.803D 99844000>CMP BYTE PTR DS:,0      ;判断merryREchristmas文件的第22位HEX码是否为0
00401BA2|.0F85 FA010000 JNZ Christma.00401DA2
00401BA8|.803D 9A844000>CMP BYTE PTR DS:,0      ;判断merryREchristmas文件的第23位HEX码是否为0
00401BAF|.0F85 ED010000 JNZ Christma.00401DA2
00401BB5|.803D AB844000>CMP BYTE PTR DS:,0      ;判断merryREchristmas文件的第40位HEX码是否为0
00401BBC|.0F85 E0010000 JNZ Christma.00401DA2
00401BC2|.803D AC844000>CMP BYTE PTR DS:,0      ;判断merryREchristmas文件的第41位HEX码是否为0
00401BC9|.0F85 D3010000 JNZ Christma.00401DA2
00401BCF|.803D BD844000>CMP BYTE PTR DS:,0      ;判断merryREchristmas文件的第58位HEX码是否为0
00401BD6|.0F85 C6010000 JNZ Christma.00401DA2
00401BDC|.803D BE844000>CMP BYTE PTR DS:,0      ;判断merryREchristmas文件的第59位HEX码是否为0
00401BE3|.0F85 B9010000 JNZ Christma.00401DA2
00401BE9|.68 89844000   PUSH Christma.00408489          ; /String = "C2D6D2FFA7BA10D9"
00401BEE|.E8 E3120000   CALL <Christma.lstrlenA>      ; \lstrlenA
00401BF3|.8945 FC       MOV DWORD PTR SS:,EAX
00401BF6|.BE 89844000   MOV ESI,Christma.00408489       ;ASCII "C2D6D2FFA7BA10D9"
00401BFB|.BF E6804000   MOV EDI,Christma.004080E6       ;ASCII "OTU2QTRBNkU5NzcyNTFEMQ=="
00401C00|>33C0          /XOR EAX,EAX
00401C02|.837D FC 01    |CMP DWORD PTR SS:,1
00401C06|.75 10         |JNZ SHORT Christma.00401C18
00401C08|.AC            |LODS BYTE PTR DS:
00401C09|.B9 02000000   |MOV ECX,2
00401C0E|.BA 3D3D0000   |MOV EDX,3D3D
00401C13|.FF4D FC       |DEC DWORD PTR SS:
00401C16|.EB 25         |JMP SHORT Christma.00401C3D
00401C18|>837D FC 02    |CMP DWORD PTR SS:,2
00401C1C|.75 12         |JNZ SHORT Christma.00401C30
00401C1E|.66:AD         |LODS WORD PTR DS:
00401C20|.B9 03000000   |MOV ECX,3
00401C25|.BA 3D000000   |MOV EDX,3D
00401C2A|.836D FC 02    |SUB DWORD PTR SS:,2
00401C2E|.EB 0D         |JMP SHORT Christma.00401C3D
00401C30|>AD            |LODS DWORD PTR DS:
00401C31|.B9 04000000   |MOV ECX,4
00401C36|.33D2          |XOR EDX,EDX
00401C38|.4E            |DEC ESI
00401C39|.836D FC 03    |SUB DWORD PTR SS:,3
00401C3D|>86C4          |XCHG AH,AL
00401C3F|.C1C0 10       |ROL EAX,10
00401C42|.86C4          |XCHG AH,AL
00401C44|>50            |/PUSH EAX
00401C45|.25 000000FC   ||AND EAX,FC000000
00401C4A|.C1C0 06       ||ROL EAX,6
00401C4D|.8A80 64804000 ||MOV AL,BYTE PTR DS:[EAX+40806>
00401C53|.AA            ||STOS BYTE PTR ES:
00401C54|.58            ||POP EAX
00401C55|.C1E0 06       ||SHL EAX,6
00401C58|.49            ||DEC ECX
00401C59|.^ 75 E9         |\JNZ SHORT Christma.00401C44
00401C5B|.837D FC 00    |CMP DWORD PTR SS:,0
00401C5F|.^ 75 9F         \JNZ SHORT Christma.00401C00
00401C61|.8BC2          MOV EAX,EDX                     ;取merryREchristmas文件的第6位到第21位字符串并计算出它的BASE64
00401C63|.AB            STOS DWORD PTR ES:
00401C64|.68 28844000   PUSH Christma.00408428          ; /QzJENkQyRkZBN0JBMTBEOQ==
00401C69|.68 E6804000   PUSH Christma.004080E6          ; |String1 = "OTU2QTRBNkU5NzcyNTFEMQ=="
00401C6E|.E8 5D120000   CALL <Christma.lstrcmpA>      ; \lstrcmpA
00401C73|.74 05         JE SHORT Christma.00401C7A      ;判断上面计算的值是否等于QzJENkQyRkZBN0JBMTBEOQ==
00401C75|.E9 28010000   JMP Christma.00401DA2
00401C7A|>68 9B844000   PUSH Christma.0040849B          ; /String = "DC8058C0540D1B89"
00401C7F|.E8 52120000   CALL <Christma.lstrlenA>      ; \lstrlenA
00401C84|.8945 FC       MOV DWORD PTR SS:,EAX
00401C87|.BE 9B844000   MOV ESI,Christma.0040849B       ;ASCII "DC8058C0540D1B89"
00401C8C|.BF E6804000   MOV EDI,Christma.004080E6       ;ASCII "OTU2QTRBNkU5NzcyNTFEMQ=="
00401C91|>33C0          /XOR EAX,EAX
00401C93|.837D FC 01    |CMP DWORD PTR SS:,1
00401C97|.75 10         |JNZ SHORT Christma.00401CA9
00401C99|.AC            |LODS BYTE PTR DS:
00401C9A|.B9 02000000   |MOV ECX,2
00401C9F|.BA 3D3D0000   |MOV EDX,3D3D
00401CA4|.FF4D FC       |DEC DWORD PTR SS:
00401CA7|.EB 25         |JMP SHORT Christma.00401CCE
00401CA9|>837D FC 02    |CMP DWORD PTR SS:,2
00401CAD|.75 12         |JNZ SHORT Christma.00401CC1
00401CAF|.66:AD         |LODS WORD PTR DS:
00401CB1|.B9 03000000   |MOV ECX,3
00401CB6|.BA 3D000000   |MOV EDX,3D
00401CBB|.836D FC 02    |SUB DWORD PTR SS:,2
00401CBF|.EB 0D         |JMP SHORT Christma.00401CCE
00401CC1|>AD            |LODS DWORD PTR DS:
00401CC2|.B9 04000000   |MOV ECX,4
00401CC7|.33D2          |XOR EDX,EDX
00401CC9|.4E            |DEC ESI
00401CCA|.836D FC 03    |SUB DWORD PTR SS:,3
00401CCE|>86C4          |XCHG AH,AL
00401CD0|.C1C0 10       |ROL EAX,10
00401CD3|.86C4          |XCHG AH,AL
00401CD5|>50            |/PUSH EAX
00401CD6|.25 000000FC   ||AND EAX,FC000000
00401CDB|.C1C0 06       ||ROL EAX,6
00401CDE|.8A80 64804000 ||MOV AL,BYTE PTR DS:[EAX+40806>
00401CE4|.AA            ||STOS BYTE PTR ES:
00401CE5|.58            ||POP EAX
00401CE6|.C1E0 06       ||SHL EAX,6
00401CE9|.49            ||DEC ECX
00401CEA|.^ 75 E9         |\JNZ SHORT Christma.00401CD5
00401CEC|.837D FC 00    |CMP DWORD PTR SS:,0
00401CF0|.^ 75 9F         \JNZ SHORT Christma.00401C91
00401CF2|.8BC2          MOV EAX,EDX                     ;取merryREchristmas文件的第24位到第39位字符串并计算出它的BASE64
00401CF4|.AB            STOS DWORD PTR ES:
00401CF5|.68 41844000   PUSH Christma.00408441          ; /REM4MDU4QzA1NDBEMUI4OQ==
00401CFA|.68 E6804000   PUSH Christma.004080E6          ; |String1 = "OTU2QTRBNkU5NzcyNTFEMQ=="
00401CFF|.E8 CC110000   CALL <Christma.lstrcmpA>      ; \lstrcmpA
00401D04|.74 05         JE SHORT Christma.00401D0B      ;判断上面计算的值是否等于REM4MDU4QzA1NDBEMUI4OQ==
00401D06|.E9 97000000   JMP Christma.00401DA2
00401D0B|>68 AD844000   PUSH Christma.004084AD          ; /String = "956A4A6E977251D1"
00401D10|.E8 C1110000   CALL <Christma.lstrlenA>      ; \lstrlenA
00401D15|.8945 FC       MOV DWORD PTR SS:,EAX
00401D18|.BE AD844000   MOV ESI,Christma.004084AD       ;ASCII "956A4A6E977251D1"
00401D1D|.BF E6804000   MOV EDI,Christma.004080E6       ;ASCII "OTU2QTRBNkU5NzcyNTFEMQ=="
00401D22|>33C0          /XOR EAX,EAX
00401D24|.837D FC 01    |CMP DWORD PTR SS:,1
00401D28|.75 10         |JNZ SHORT Christma.00401D3A
00401D2A|.AC            |LODS BYTE PTR DS:
00401D2B|.B9 02000000   |MOV ECX,2
00401D30|.BA 3D3D0000   |MOV EDX,3D3D
00401D35|.FF4D FC       |DEC DWORD PTR SS:
00401D38|.EB 25         |JMP SHORT Christma.00401D5F
00401D3A|>837D FC 02    |CMP DWORD PTR SS:,2
00401D3E|.75 12         |JNZ SHORT Christma.00401D52
00401D40|.66:AD         |LODS WORD PTR DS:
00401D42|.B9 03000000   |MOV ECX,3
00401D47|.BA 3D000000   |MOV EDX,3D
00401D4C|.836D FC 02    |SUB DWORD PTR SS:,2
00401D50|.EB 0D         |JMP SHORT Christma.00401D5F
00401D52|>AD            |LODS DWORD PTR DS:
00401D53|.B9 04000000   |MOV ECX,4
00401D58|.33D2          |XOR EDX,EDX
00401D5A|.4E            |DEC ESI
00401D5B|.836D FC 03    |SUB DWORD PTR SS:,3
00401D5F|>86C4          |XCHG AH,AL
00401D61|.C1C0 10       |ROL EAX,10
00401D64|.86C4          |XCHG AH,AL
00401D66|>50            |/PUSH EAX
00401D67|.25 000000FC   ||AND EAX,FC000000
00401D6C|.C1C0 06       ||ROL EAX,6
00401D6F|.8A80 64804000 ||MOV AL,BYTE PTR DS:[EAX+40806>
00401D75|.AA            ||STOS BYTE PTR ES:
00401D76|.58            ||POP EAX
00401D77|.C1E0 06       ||SHL EAX,6
00401D7A|.49            ||DEC ECX
00401D7B|.^ 75 E9         |\JNZ SHORT Christma.00401D66
00401D7D|.837D FC 00    |CMP DWORD PTR SS:,0
00401D81|.^ 75 9F         \JNZ SHORT Christma.00401D22
00401D83|.8BC2          MOV EAX,EDX                     ;取merryREchristmas文件的第42位到第57位字符串并计算出它的BASE64
00401D85|.AB            STOS DWORD PTR ES:
00401D86|.68 5A844000   PUSH Christma.0040845A          ; /OTU2QTRBNkU5NzcyNTFEMQ==
00401D8B|.68 E6804000   PUSH Christma.004080E6          ; |String1 = "OTU2QTRBNkU5NzcyNTFEMQ=="
00401D90|.E8 3B110000   CALL <Christma.lstrcmpA>      ; \lstrcmpA
00401D95|.74 02         JE SHORT Christma.00401D99      ;判断上面计算的值是否等于OTU2QTRBNkU5NzcyNTFEMQ==
00401D97|.EB 09         JMP SHORT Christma.00401DA2
00401D99|>B0 01         MOV AL,1
00401D9B|.5F            POP EDI
00401D9C|.5E            POP ESI
00401D9D|.5B            POP EBX
00401D9E|.C9            LEAVE
00401D9F|.C2 0400       RETN 4
00401DA2|>B0 00         MOV AL,0
00401DA4|.5F            POP EDI
00401DA5|.5E            POP ESI
00401DA6|.5B            POP EBX
00401DA7|.C9            LEAVE
00401DA8\.C2 0400       RETN 4

进入CALL Christma.00401000之后很快就会找到,MD5的四个标准常数
00401054|.C706 01234567 MOV DWORD PTR DS:,67452301      
0040105A|.C746 04 89ABC>MOV DWORD PTR DS:,EFCDAB89
00401061|.C746 08 FEDCB>MOV DWORD PTR DS:,98BADCFE
00401068|.C746 0C 76543>MOV DWORD PTR DS:,10325476
----------------------------------------------------------------------------------------------






第1个SN1的RSA计算
------------------CALL Christma.00402247------------------
00402247/$55            PUSH EBP
00402248|.8BEC          MOV EBP,ESP
0040224A|.83C4 F0       ADD ESP,-10
0040224D|.60            PUSHAD
0040224E|.6A 00         PUSH 0
00402250|.E8 DB0C0000   CALL <Christma.__BigCreate@4>
00402255|.8945 F0       MOV DWORD PTR SS:,EAX
00402258|.6A 00         PUSH 0
0040225A|.E8 D10C0000   CALL <Christma.__BigCreate@4>
0040225F|.8945 FC       MOV DWORD PTR SS:,EAX
00402262|.6A 00         PUSH 0
00402264|.E8 C70C0000   CALL <Christma.__BigCreate@4>
00402269|.8945 F8       MOV DWORD PTR SS:,EAX
0040226C|.6A 00         PUSH 0
0040226E|.E8 BD0C0000   CALL <Christma.__BigCreate@4>
00402273|.8945 F4       MOV DWORD PTR SS:,EAX
00402276|.FF75 F0       PUSH DWORD PTR SS:             ; /Arg3
00402279|.6A 10         PUSH 10                              ; |Arg2 = 00000010
0040227B|.68 E6814000   PUSH Christma.004081E6               ; |Invalid registration informations.
00402280|.E8 4E0E0000   CALL <Christma.__BigIn@12>             ; \Christma.004030D3
00402285|.FF75 FC       PUSH DWORD PTR SS:            ; /Arg3
00402288|.6A 10         PUSH 10                              ; |Arg2 = 00000010
0040228A|.68 89844000   PUSH Christma.00408489               ; |Arg1 = 00408489 N="C2D6D2FFA7BA10D9"
0040228F|.E8 3F0E0000   CALL <Christma.__BigIn@12>             ; \Christma.004030D3
00402294|.FF75 F8       PUSH DWORD PTR SS:            ; /Arg3
00402297|.6A 10         PUSH 10                              ; |Arg2 = 00000010
00402299|.68 DE834000   PUSH Christma.004083DE               ; |E="10001"
0040229E|.E8 300E0000   CALL <Christma.__BigIn@12>             ; \Christma.004030D3
004022A3|.FF75 F4       PUSH DWORD PTR SS:
004022A6|.FF75 FC       PUSH DWORD PTR SS:
004022A9|.FF75 F8       PUSH DWORD PTR SS:
004022AC|.FF75 F0       PUSH DWORD PTR SS:
004022AF|.E8 301C0000   CALL <Christma.__BigPowMod@16>
004022B4|.68 66824000   PUSH Christma.00408266               ; /Arg3 = 00408266 ASCII "582C72D779E7F9B"
004022B9|.6A 10         PUSH 10                              ; |Arg2 = 00000010
004022BB|.FF75 F4       PUSH DWORD PTR SS:            ; |Arg1
004022BE|.E8 F2100000   CALL <Christma.__BigOut@12>            ; \Christma.004033B5
004022C3|.FF75 FC       PUSH DWORD PTR SS:
004022C6|.E8 920C0000   CALL <Christma.__BigDestroy@4>
004022CB|.FF75 F8       PUSH DWORD PTR SS:
004022CE|.E8 8A0C0000   CALL <Christma.__BigDestroy@4>
004022D3|.FF75 F4       PUSH DWORD PTR SS:
004022D6|.E8 820C0000   CALL <Christma.__BigDestroy@4>
004022DB|.FF75 F0       PUSH DWORD PTR SS:
004022DE|.E8 7A0C0000   CALL <Christma.__BigDestroy@4>
004022E3|.61            POPAD
004022E4|.C9            LEAVE
004022E5\.C3            RETN
P=E3A6B0C3
Q=DB1A1E33
N=C2D6D2FFA7BA10D9
D=E1FE2B5D380D65D
E=10001

第2个RSA计算
------------------CALL Christma.00402385------------------
00402385/$55            PUSH EBP
00402386|.8BEC          MOV EBP,ESP
00402388|.83C4 F0       ADD ESP,-10
0040238B|.60            PUSHAD
0040238C|.6A 00         PUSH 0
0040238E|.E8 9D0B0000   CALL <Christma.__BigCreate@4>
00402393|.8945 F0       MOV DWORD PTR SS:,EAX
00402396|.6A 00         PUSH 0
00402398|.E8 930B0000   CALL <Christma.__BigCreate@4>
0040239D|.8945 FC       MOV DWORD PTR SS:,EAX
004023A0|.6A 00         PUSH 0
004023A2|.E8 890B0000   CALL <Christma.__BigCreate@4>
004023A7|.8945 F8       MOV DWORD PTR SS:,EAX
004023AA|.6A 00         PUSH 0
004023AC|.E8 7F0B0000   CALL <Christma.__BigCreate@4>
004023B1|.8945 F4       MOV DWORD PTR SS:,EAX
004023B4|.A1 8F834000   MOV EAX,DWORD PTR DS:
004023B9|.83C0 01       ADD EAX,1
004023BC|.FF75 F0       PUSH DWORD PTR SS:             ; /Arg3
004023BF|.6A 10         PUSH 10                              ; |Arg2 = 00000010
004023C1|.50            PUSH EAX                               ; |Arg1
004023C2|.E8 0C0D0000   CALL <Christma.__BigIn@12>             ; \Christma.004030D3
004023C7|.FF75 FC       PUSH DWORD PTR SS:            ; /Arg3
004023CA|.6A 10         PUSH 10                              ; |Arg2 = 00000010
004023CC|.68 9B844000   PUSH Christma.0040849B               ; |Arg1 = 0040849B N="DC8058C0540D1B89"
004023D1|.E8 FD0C0000   CALL <Christma.__BigIn@12>             ; \Christma.004030D3
004023D6|.FF75 F8       PUSH DWORD PTR SS:            ; /Arg3
004023D9|.6A 10         PUSH 10                              ; |Arg2 = 00000010
004023DB|.68 DE834000   PUSH Christma.004083DE               ; |E="10001"
004023E0|.E8 EE0C0000   CALL <Christma.__BigIn@12>             ; \Christma.004030D3
004023E5|.FF75 F4       PUSH DWORD PTR SS:
004023E8|.FF75 FC       PUSH DWORD PTR SS:
004023EB|.FF75 F8       PUSH DWORD PTR SS:
004023EE|.FF75 F0       PUSH DWORD PTR SS:
004023F1|.E8 EE1A0000   CALL <Christma.__BigPowMod@16>
004023F6|.68 A6824000   PUSH Christma.004082A6               ; /Arg3 = 004082A6 ASCII "81393C93EE1717E"
004023FB|.6A 10         PUSH 10                              ; |Arg2 = 00000010
004023FD|.FF75 F4       PUSH DWORD PTR SS:            ; |Arg1
00402400|.E8 B00F0000   CALL <Christma.__BigOut@12>            ; \Christma.004033B5
00402405|.FF75 FC       PUSH DWORD PTR SS:
00402408|.E8 500B0000   CALL <Christma.__BigDestroy@4>
0040240D|.FF75 F8       PUSH DWORD PTR SS:
00402410|.E8 480B0000   CALL <Christma.__BigDestroy@4>
00402415|.FF75 F4       PUSH DWORD PTR SS:
00402418|.E8 400B0000   CALL <Christma.__BigDestroy@4>
0040241D|.FF75 F0       PUSH DWORD PTR SS:
00402420|.E8 380B0000   CALL <Christma.__BigDestroy@4>
00402425|.61            POPAD
00402426|.C9            LEAVE
00402427\.C3            RETN
P=E96E7F93
Q=F1D1D1F3
N=DC8058C0540D1B89
D=9678D396AFB2F8CD
E=10001

第3个RSA计算
------------------CALL Christma.004024C7------------------
004024C7/$55            PUSH EBP
004024C8|.8BEC          MOV EBP,ESP
004024CA|.83C4 F0       ADD ESP,-10
004024CD|.60            PUSHAD
004024CE|.6A 00         PUSH 0
004024D0|.E8 5B0A0000   CALL <Christma.__BigCreate@4>
004024D5|.8945 F0       MOV DWORD PTR SS:,EAX
004024D8|.6A 00         PUSH 0
004024DA|.E8 510A0000   CALL <Christma.__BigCreate@4>
004024DF|.8945 FC       MOV DWORD PTR SS:,EAX
004024E2|.6A 00         PUSH 0
004024E4|.E8 470A0000   CALL <Christma.__BigCreate@4>
004024E9|.8945 F8       MOV DWORD PTR SS:,EAX
004024EC|.6A 00         PUSH 0
004024EE|.E8 3D0A0000   CALL <Christma.__BigCreate@4>
004024F3|.8945 F4       MOV DWORD PTR SS:,EAX
004024F6|.A1 94834000   MOV EAX,DWORD PTR DS:
004024FB|.83C0 01       ADD EAX,1
004024FE|.FF75 F0       PUSH DWORD PTR SS:             ; /Arg3
00402501|.6A 10         PUSH 10                              ; |Arg2 = 00000010
00402503|.50            PUSH EAX                               ; |Arg1
00402504|.E8 CA0B0000   CALL <Christma.__BigIn@12>             ; \Christma.004030D3
00402509|.FF75 FC       PUSH DWORD PTR SS:            ; /Arg3
0040250C|.6A 10         PUSH 10                              ; |Arg2 = 00000010
0040250E|.68 AD844000   PUSH Christma.004084AD               ; |Arg1 = 004084AD N="956A4A6E977251D1"
00402513|.E8 BB0B0000   CALL <Christma.__BigIn@12>             ; \Christma.004030D3
00402518|.FF75 F8       PUSH DWORD PTR SS:            ; /Arg3
0040251B|.6A 10         PUSH 10                              ; |Arg2 = 00000010
0040251D|.68 DE834000   PUSH Christma.004083DE               ; |E="10001"
00402522|.E8 AC0B0000   CALL <Christma.__BigIn@12>             ; \Christma.004030D3
00402527|.FF75 F4       PUSH DWORD PTR SS:
0040252A|.FF75 FC       PUSH DWORD PTR SS:
0040252D|.FF75 F8       PUSH DWORD PTR SS:
00402530|.FF75 F0       PUSH DWORD PTR SS:
00402533|.E8 AC190000   CALL <Christma.__BigPowMod@16>
00402538|.68 E6824000   PUSH Christma.004082E6               ; /Arg3 = 004082E6 ASCII "CDC180E6C4ECD06"
0040253D|.6A 10         PUSH 10                              ; |Arg2 = 00000010
0040253F|.FF75 F4       PUSH DWORD PTR SS:            ; |Arg1
00402542|.E8 6E0E0000   CALL <Christma.__BigOut@12>            ; \Christma.004033B5
00402547|.FF75 FC       PUSH DWORD PTR SS:
0040254A|.E8 0E0A0000   CALL <Christma.__BigDestroy@4>
0040254F|.FF75 F8       PUSH DWORD PTR SS:
00402552|.E8 060A0000   CALL <Christma.__BigDestroy@4>
00402557|.FF75 F4       PUSH DWORD PTR SS:
0040255A|.E8 FE090000   CALL <Christma.__BigDestroy@4>
0040255F|.FF75 F0       PUSH DWORD PTR SS:
00402562|.E8 F6090000   CALL <Christma.__BigDestroy@4>
00402567|.61            POPAD
00402568|.C9            LEAVE
00402569\.C3            RETN
P=A3074563
Q=EA9F9C3B
N=956A4A6E977251D1
D=6C668806A1B389FD
E=10001


RSA用到的三个N,就是merryREchristmas内的三个数也就是:
QzJENkQyRkZBN0JBMTBEOQ== 这个解密之后为   C2D6D2FFA7BA10D9
REM4MDU4QzA1NDBEMUI4OQ== 这个解密之后为   DC8058C0540D1B89
OTU2QTRBNkU5NzcyNTFEMQ== 这个解密之后为   956A4A6E977251D1
----------------------------------------------------------------------------------------------
【破解总结】
1、建立merryREchristmas文件及内容。
2、第1个RSA(MD5(Name)并转换为大写取前15位)=SN1
3、第2个RSA(MD5(Group)并转换为大写取前15位)=SN2
4、第3个RSA(MD5(E-Mail)并转换为大写取前15位)=SN3
5、组合为:SN1-SN2-SN3

----------------------------------------------------------------------------------------------
【破解声明】   我是一只小菜鸟,偶得一点心得,愿与大家分享:)

【版权声明】   本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
----------------------------------------------------------------------------------------------
                                                                                 文章写于2007-1-27 23:20:12

[ 本帖最后由 hbqjxhw 于 2007-1-28 13:05 编辑 ]

wan 发表于 2007-1-28 10:34:53

算法很清晰,密码学+耐心大考验。学习了

飘云 发表于 2007-2-10 21:14:14

NX!
页: [1]
查看完整版本: [破]Christmas-KeygenMe#4.Guetta