飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3685|回复: 2

[原创] [破]Christmas-KeygenMe#4.Guetta

[复制链接]
  • TA的每日心情
    无聊
    2018-12-10 18:30
  • 签到天数: 70 天

    [LV.6]常住居民II

    发表于 2007-1-27 23:28:02 | 显示全部楼层 |阅读模式
    【破文作者】   hbqjxhw[pyg]

    【文章题目】   [破]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:[EBP+8]              ; |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:[408389],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:[EBP+8]              ; |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:[EBP+8]              ; |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:[40838B],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:[EBP+8]              ; |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:[40838D],AL
    00401F5E  |.  33DB          XOR EBX,EBX
    00401F60  |.  BA A6814000   MOV EDX,Christma.004081A6
    00401F65  |>  8A02          /MOV AL,BYTE PTR DS:[EDX]
    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:[408389]
    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:[4089B0]             ; /<%.8x> = 71EB1925
    00401FB1  |.  FF35 AC894000 PUSH DWORD PTR DS:[4089AC]             ; |<%.8x> = 352217E7
    00401FB7  |.  FF35 A8894000 PUSH DWORD PTR DS:[4089A8]             ; |<%.8x> = 737A9385
    00401FBD  |.  FF35 A4894000 PUSH DWORD PTR DS:[4089A4]             ; |<%.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:[408335],0
    00401FE6  |.  33C0          XOR EAX,EAX
    Group标准的MD5计算并转换为大写取前15位
    00401FE8  |.  A0 8B834000   MOV AL,BYTE PTR DS:[40838B]
    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:[4089B0]             ; /<%.8x> = 71EB1925
    00402003  |.  FF35 AC894000 PUSH DWORD PTR DS:[4089AC]             ; |<%.8x> = 352217E7
    00402009  |.  FF35 A8894000 PUSH DWORD PTR DS:[4089A8]             ; |<%.8x> = 737A9385
    0040200F  |.  FF35 A4894000 PUSH DWORD PTR DS:[4089A4]             ; |<%.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:[408356],0
    00402038  |.  33C0          XOR EAX,EAX
    E-Mail标准的MD5计算并转换为大写取前15位
    0040203A  |.  A0 8D834000   MOV AL,BYTE PTR DS:[40838D]
    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:[4089B0]             ; /<%.8x> = 71EB1925
    00402055  |.  FF35 AC894000 PUSH DWORD PTR DS:[4089AC]             ; |<%.8x> = 352217E7
    0040205B  |.  FF35 A8894000 PUSH DWORD PTR DS:[4089A8]             ; |<%.8x> = 737A9385
    00402061  |.  FF35 A4894000 PUSH DWORD PTR DS:[4089A4]             ; |<%.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:[408377],0
    0040208A  |.  33DB          XOR EBX,EBX
    0040208C  |.  BA E6814000   MOV EDX,Christma.004081E6              ;  Serial赋给EDX
    00402091  |>  8A02          /MOV AL,BYTE PTR DS:[EDX]              ;  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:[40838F],EDX         ;  分支 004020A0 默认案例
    004020B3  |.  C602 00       |MOV BYTE PTR DS:[EDX],0
    004020B6  |.  EB 0B         |JMP SHORT Christma.004020C3
    004020B8  |>  8915 94834000 |MOV DWORD PTR DS:[408394],EDX         ;  案例 2 --> 分支 004020A0
    004020BE  |.  C602 00       |MOV BYTE PTR DS:[EDX],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:[EBP+8]              ; |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:[EBP+8]              ; |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:[408484]
    00401B20  |.  A3 F0844000   MOV DWORD PTR DS:[4084F0],EAX
    00401B25  |.  C605 F3844000>MOV BYTE PTR DS:[4084F3],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:[4089B0]      ; /<%.8x> = 71EB1925
    00401B47  |.  FF35 AC894000 PUSH DWORD PTR DS:[4089AC]      ; |<%.8x> = 352217E7
    00401B4D  |.  FF35 A8894000 PUSH DWORD PTR DS:[4089A8]      ; |<%.8x> = 737A9385
    00401B53  |.  FF35 A4894000 PUSH DWORD PTR DS:[4089A4]      ; |<%.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:[408487],0      ;  判断merryREchristmas文件的第4位HEX码是否为0
    00401B88  |.  0F85 14020000 JNZ Christma.00401DA2
    00401B8E  |.  803D 88844000>CMP BYTE PTR DS:[408488],0      ;  判断merryREchristmas文件的第5位HEX码是否为0
    00401B95  |.  0F85 07020000 JNZ Christma.00401DA2
    00401B9B  |.  803D 99844000>CMP BYTE PTR DS:[408499],0      ;  判断merryREchristmas文件的第22位HEX码是否为0
    00401BA2  |.  0F85 FA010000 JNZ Christma.00401DA2
    00401BA8  |.  803D 9A844000>CMP BYTE PTR DS:[40849A],0      ;  判断merryREchristmas文件的第23位HEX码是否为0
    00401BAF  |.  0F85 ED010000 JNZ Christma.00401DA2
    00401BB5  |.  803D AB844000>CMP BYTE PTR DS:[4084AB],0      ;  判断merryREchristmas文件的第40位HEX码是否为0
    00401BBC  |.  0F85 E0010000 JNZ Christma.00401DA2
    00401BC2  |.  803D AC844000>CMP BYTE PTR DS:[4084AC],0      ;  判断merryREchristmas文件的第41位HEX码是否为0
    00401BC9  |.  0F85 D3010000 JNZ Christma.00401DA2
    00401BCF  |.  803D BD844000>CMP BYTE PTR DS:[4084BD],0      ;  判断merryREchristmas文件的第58位HEX码是否为0
    00401BD6  |.  0F85 C6010000 JNZ Christma.00401DA2
    00401BDC  |.  803D BE844000>CMP BYTE PTR DS:[4084BE],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:[EBP-4],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:[EBP-4],1
    00401C06  |.  75 10         |JNZ SHORT Christma.00401C18
    00401C08  |.  AC            |LODS BYTE PTR DS:[ESI]
    00401C09  |.  B9 02000000   |MOV ECX,2
    00401C0E  |.  BA 3D3D0000   |MOV EDX,3D3D
    00401C13  |.  FF4D FC       |DEC DWORD PTR SS:[EBP-4]
    00401C16  |.  EB 25         |JMP SHORT Christma.00401C3D
    00401C18  |>  837D FC 02    |CMP DWORD PTR SS:[EBP-4],2
    00401C1C  |.  75 12         |JNZ SHORT Christma.00401C30
    00401C1E  |.  66:AD         |LODS WORD PTR DS:[ESI]
    00401C20  |.  B9 03000000   |MOV ECX,3
    00401C25  |.  BA 3D000000   |MOV EDX,3D
    00401C2A  |.  836D FC 02    |SUB DWORD PTR SS:[EBP-4],2
    00401C2E  |.  EB 0D         |JMP SHORT Christma.00401C3D
    00401C30  |>  AD            |LODS DWORD PTR DS:[ESI]
    00401C31  |.  B9 04000000   |MOV ECX,4
    00401C36  |.  33D2          |XOR EDX,EDX
    00401C38  |.  4E            |DEC ESI
    00401C39  |.  836D FC 03    |SUB DWORD PTR SS:[EBP-4],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:[EDI]
    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:[EBP-4],0
    00401C5F  |.^ 75 9F         \JNZ SHORT Christma.00401C00
    00401C61  |.  8BC2          MOV EAX,EDX                     ;  取merryREchristmas文件的第6位到第21位字符串并计算出它的BASE64
    00401C63  |.  AB            STOS DWORD PTR ES:[EDI]
    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:[EBP-4],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:[EBP-4],1
    00401C97  |.  75 10         |JNZ SHORT Christma.00401CA9
    00401C99  |.  AC            |LODS BYTE PTR DS:[ESI]
    00401C9A  |.  B9 02000000   |MOV ECX,2
    00401C9F  |.  BA 3D3D0000   |MOV EDX,3D3D
    00401CA4  |.  FF4D FC       |DEC DWORD PTR SS:[EBP-4]
    00401CA7  |.  EB 25         |JMP SHORT Christma.00401CCE
    00401CA9  |>  837D FC 02    |CMP DWORD PTR SS:[EBP-4],2
    00401CAD  |.  75 12         |JNZ SHORT Christma.00401CC1
    00401CAF  |.  66:AD         |LODS WORD PTR DS:[ESI]
    00401CB1  |.  B9 03000000   |MOV ECX,3
    00401CB6  |.  BA 3D000000   |MOV EDX,3D
    00401CBB  |.  836D FC 02    |SUB DWORD PTR SS:[EBP-4],2
    00401CBF  |.  EB 0D         |JMP SHORT Christma.00401CCE
    00401CC1  |>  AD            |LODS DWORD PTR DS:[ESI]
    00401CC2  |.  B9 04000000   |MOV ECX,4
    00401CC7  |.  33D2          |XOR EDX,EDX
    00401CC9  |.  4E            |DEC ESI
    00401CCA  |.  836D FC 03    |SUB DWORD PTR SS:[EBP-4],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:[EDI]
    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:[EBP-4],0
    00401CF0  |.^ 75 9F         \JNZ SHORT Christma.00401C91
    00401CF2  |.  8BC2          MOV EAX,EDX                     ;  取merryREchristmas文件的第24位到第39位字符串并计算出它的BASE64
    00401CF4  |.  AB            STOS DWORD PTR ES:[EDI]
    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:[EBP-4],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:[EBP-4],1
    00401D28  |.  75 10         |JNZ SHORT Christma.00401D3A
    00401D2A  |.  AC            |LODS BYTE PTR DS:[ESI]
    00401D2B  |.  B9 02000000   |MOV ECX,2
    00401D30  |.  BA 3D3D0000   |MOV EDX,3D3D
    00401D35  |.  FF4D FC       |DEC DWORD PTR SS:[EBP-4]
    00401D38  |.  EB 25         |JMP SHORT Christma.00401D5F
    00401D3A  |>  837D FC 02    |CMP DWORD PTR SS:[EBP-4],2
    00401D3E  |.  75 12         |JNZ SHORT Christma.00401D52
    00401D40  |.  66:AD         |LODS WORD PTR DS:[ESI]
    00401D42  |.  B9 03000000   |MOV ECX,3
    00401D47  |.  BA 3D000000   |MOV EDX,3D
    00401D4C  |.  836D FC 02    |SUB DWORD PTR SS:[EBP-4],2
    00401D50  |.  EB 0D         |JMP SHORT Christma.00401D5F
    00401D52  |>  AD            |LODS DWORD PTR DS:[ESI]
    00401D53  |.  B9 04000000   |MOV ECX,4
    00401D58  |.  33D2          |XOR EDX,EDX
    00401D5A  |.  4E            |DEC ESI
    00401D5B  |.  836D FC 03    |SUB DWORD PTR SS:[EBP-4],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:[EDI]
    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:[EBP-4],0
    00401D81  |.^ 75 9F         \JNZ SHORT Christma.00401D22
    00401D83  |.  8BC2          MOV EAX,EDX                     ;  取merryREchristmas文件的第42位到第57位字符串并计算出它的BASE64
    00401D85  |.  AB            STOS DWORD PTR ES:[EDI]
    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:[ESI],67452301      
    0040105A  |.  C746 04 89ABC>MOV DWORD PTR DS:[ESI+4],EFCDAB89
    00401061  |.  C746 08 FEDCB>MOV DWORD PTR DS:[ESI+8],98BADCFE
    00401068  |.  C746 0C 76543>MOV DWORD PTR DS:[ESI+C],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:[EBP-10],EAX
    00402258  |.  6A 00         PUSH 0
    0040225A  |.  E8 D10C0000   CALL <Christma.__BigCreate@4>
    0040225F  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
    00402262  |.  6A 00         PUSH 0
    00402264  |.  E8 C70C0000   CALL <Christma.__BigCreate@4>
    00402269  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
    0040226C  |.  6A 00         PUSH 0
    0040226E  |.  E8 BD0C0000   CALL <Christma.__BigCreate@4>
    00402273  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX
    00402276  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]             ; /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:[EBP-4]              ; /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:[EBP-8]              ; /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:[EBP-C]
    004022A6  |.  FF75 FC       PUSH DWORD PTR SS:[EBP-4]
    004022A9  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]
    004022AC  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]
    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:[EBP-C]              ; |Arg1
    004022BE  |.  E8 F2100000   CALL <Christma.__BigOut@12>            ; \Christma.004033B5
    004022C3  |.  FF75 FC       PUSH DWORD PTR SS:[EBP-4]
    004022C6  |.  E8 920C0000   CALL <Christma.__BigDestroy@4>
    004022CB  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]
    004022CE  |.  E8 8A0C0000   CALL <Christma.__BigDestroy@4>
    004022D3  |.  FF75 F4       PUSH DWORD PTR SS:[EBP-C]
    004022D6  |.  E8 820C0000   CALL <Christma.__BigDestroy@4>
    004022DB  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]
    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:[EBP-10],EAX
    00402396  |.  6A 00         PUSH 0
    00402398  |.  E8 930B0000   CALL <Christma.__BigCreate@4>
    0040239D  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
    004023A0  |.  6A 00         PUSH 0
    004023A2  |.  E8 890B0000   CALL <Christma.__BigCreate@4>
    004023A7  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
    004023AA  |.  6A 00         PUSH 0
    004023AC  |.  E8 7F0B0000   CALL <Christma.__BigCreate@4>
    004023B1  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX
    004023B4  |.  A1 8F834000   MOV EAX,DWORD PTR DS:[40838F]
    004023B9  |.  83C0 01       ADD EAX,1
    004023BC  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]             ; /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:[EBP-4]              ; /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:[EBP-8]              ; /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:[EBP-C]
    004023E8  |.  FF75 FC       PUSH DWORD PTR SS:[EBP-4]
    004023EB  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]
    004023EE  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]
    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:[EBP-C]              ; |Arg1
    00402400  |.  E8 B00F0000   CALL <Christma.__BigOut@12>            ; \Christma.004033B5
    00402405  |.  FF75 FC       PUSH DWORD PTR SS:[EBP-4]
    00402408  |.  E8 500B0000   CALL <Christma.__BigDestroy@4>
    0040240D  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]
    00402410  |.  E8 480B0000   CALL <Christma.__BigDestroy@4>
    00402415  |.  FF75 F4       PUSH DWORD PTR SS:[EBP-C]
    00402418  |.  E8 400B0000   CALL <Christma.__BigDestroy@4>
    0040241D  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]
    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:[EBP-10],EAX
    004024D8  |.  6A 00         PUSH 0
    004024DA  |.  E8 510A0000   CALL <Christma.__BigCreate@4>
    004024DF  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
    004024E2  |.  6A 00         PUSH 0
    004024E4  |.  E8 470A0000   CALL <Christma.__BigCreate@4>
    004024E9  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
    004024EC  |.  6A 00         PUSH 0
    004024EE  |.  E8 3D0A0000   CALL <Christma.__BigCreate@4>
    004024F3  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX
    004024F6  |.  A1 94834000   MOV EAX,DWORD PTR DS:[408394]
    004024FB  |.  83C0 01       ADD EAX,1
    004024FE  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]             ; /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:[EBP-4]              ; /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:[EBP-8]              ; /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:[EBP-C]
    0040252A  |.  FF75 FC       PUSH DWORD PTR SS:[EBP-4]
    0040252D  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]
    00402530  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]
    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:[EBP-C]              ; |Arg1
    00402542  |.  E8 6E0E0000   CALL <Christma.__BigOut@12>            ; \Christma.004033B5
    00402547  |.  FF75 FC       PUSH DWORD PTR SS:[EBP-4]
    0040254A  |.  E8 0E0A0000   CALL <Christma.__BigDestroy@4>
    0040254F  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]
    00402552  |.  E8 060A0000   CALL <Christma.__BigDestroy@4>
    00402557  |.  FF75 F4       PUSH DWORD PTR SS:[EBP-C]
    0040255A  |.  E8 FE090000   CALL <Christma.__BigDestroy@4>
    0040255F  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]
    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 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2007-1-28 10:34:53 | 显示全部楼层
    算法很清晰,密码学+耐心大考验。学习了
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    7 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2007-2-10 21:14:14 | 显示全部楼层
    NX!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表