• 标 题:Mycsdn 1.40.2 (2003.09.22)的破解
  • 作 者:ngaut
  • 时 间:2003年9月29日 05:15
  • 链 接:http://bbs.pediy.com

Mycsdn  1.40.2 (2003.09.22)的破解

看到精华5中 fly 的 (Mycsdn) V1.24的破解
我等菜人想练习,却找到了最新版。
向作者说声对不起
感谢商朝字的破解教学,详细,精彩(对于我等菜人来说)
可是那样的详细文章太少了,而我等菜人甚至想知道每一句代码的意思
实在是太难了,菜人一个,请多指教。
再多也不多哦
呵呵

工具:pe—scan  UPX (脱壳),OLLYDBG1.09, W32DASM10.0


开始:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00417C6F(C)      //这里跳过来的
|

* Possible StringData Ref from Data Obj ->"抱歉"
                                  |
:00417CCE 68406C4200              push 00426C40

l  Possible StringData Ref from Data Obj ->"很遗憾,本次注册失败了"
#################################
找到 00417C6F&
如下:
#################################
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00417C46(C), :00417C56(C)
|
:00417C66 1BC0                    sbb eaxeax
:00417C68 83D8FF                  sbb eax, FFFFFFFF

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00417C64(U)
|
:00417C6B 85C0                    test eaxeax
:00417C6D 6A20                    push 00000020
////不明白这句代码的作用???请高手指点
:00417C6F 755D                    jne 00417CCE
//这里应该可以爆破, 没有试过,呵呵
* Possible StringData Ref from Data Obj ->"恭喜"
                                  |
:00417C71 68606C4200              push 00426C60

l  Possible StringData Ref from Data Obj ->"恭喜您成功注册了本软件"
l  ###########################

向上多找一些如下:

00417BBB   . 8BCD           MOV ECX,EBP
00417BBD   . 8B45 00        MOV EAX,DWORD PTR SS:[EBP]               ;  取机器码
00417BC0   . FF50 04        CALL DWORD PTR DS:[EAX+4]                ;  call 后 EAX 为机器码
00417BC3   . 6A 00          PUSH 0                                   ;  作用是什么????????
00417BC5   . 8BF0           MOV ESI,EAX                              ;  机器码送 ESI
00417BC7   . FF15 ACE64100  CALL DWORD PTR DS:[<&Tools.?CreateInterf>;  Tools.?CreateInterface@@YAPAVIClassTools@@W4CLASS_TOOLS_ID@@@Z
00417BCD   . 8BD8           MOV EBX,EAX
00417BCF   . 83C4 04        ADD ESP,4
00417BD2   . 8BCB           MOV ECX,EBX
00417BD4   . 8B13           MOV EDX,DWORD PTR DS:[EBX]
00417BD6   . 56             PUSH ESI
00417BD7   . FF52 04        CALL DWORD PTR DS:[EDX+4]                ;  重要, 进入。用机器码计算注册码

进入后如下:

00371060   81EC 10010000    SUB ESP,110
00371066   53               PUSH EBX
00371067   894C24 0C        MOV DWORD PTR SS:[ESP+C],ECX
0037106B   6A 3F            PUSH 3F
0037106D   E8 D9010000      CALL Tools.0037124B
00371072   8BD8             MOV EBX,EAX
00371074   83C4 04          ADD ESP,4
00371077   85DB             TEST EBX,EBX
00371079   75 0A            JNZ SHORT Tools.00371085
0037107B   5B               POP EBX
0037107C   81C4 10010000    ADD ESP,110
00371082   C2 0400          RETN 4
00371085   33C0             XOR EAX,EAX
00371087   8AC8             MOV CL,AL                                ; 这个循环的作用是什么????????
00371089   80C1 30          ADD CL,30
0037108C   880C03           MOV BYTE PTR DS:[EBX+EAX],CL
0037108F   40               INC EAX
00371090   83F8 0A          CMP EAX,0A
00371093  ^7C F2            JL SHORT Tools.00371087
//又是一个循环??????????
00371095   B8 0A000000      MOV EAX,0A
0037109A   8AD0             MOV DL,AL
0037109C   80C2 37          ADD DL,37
0037109F   881403           MOV BYTE PTR DS:[EBX+EAX],DL
003710A2   40               INC EAX
003710A3   83F8 24          CMP EAX,24
003710A6  ^7C F2            JL SHORT Tools.0037109A


003710A8   B8 24000000      MOV EAX,24                               ;
003710AD   8AC8             MOV CL,AL
003710AF   80C1 3D          ADD CL,3D
003710B2   880C03           MOV BYTE PTR DS:[EBX+EAX],CL
003710B5   40               INC EAX
003710B6   83F8 3E          CMP EAX,3E
003710B9  ^7C F2            JL SHORT Tools.003710AD
//循环,艾,晕
003710BB   55               PUSH EBP                                 ; 注意:EBP = 00AD780, 00AD780是什么?
003710BC   56               PUSH ESI                                 ; 机器码入栈
003710BD   57               PUSH EDI
003710BE   8BBC24 24010000  MOV EDI,DWORD PTR SS:[ESP+124]           ; 机器码入栈送 EDI
003710C5   C60403 00        MOV BYTE PTR DS:[EBX+EAX],0
003710C9   83C9 FF          OR ECX,FFFFFFFF
003710CC   33C0             XOR EAX,EAX
003710CE   F2:AE            REPNE SCAS BYTE PTR ES:[EDI]
003710D0   F7D1             NOT ECX
003710D2   49               DEC ECX
003710D3   33FF             XOR EDI,EDI                              ; EDI 淸 0
003710D5   85C9             TEST ECX,ECX
003710D7   7E 26            JLE SHORT Tools.003710FF
003710D9   BE 05000000      MOV ESI,5                                ; ESI = 5
003710DE   8B9424 24010000  MOV EDX,DWORD PTR SS:[ESP+124]           ; 机器码送 EDX
003710E5   BD 3E000000      MOV EBP,3E                               ;  EBP = 3E
003710EA   0FBE4432 FB      MOVSX EAX,BYTE PTR DS:[EDX+ESI-5]        ; 机器码ASC||循环送入 EAX  这里ESI = 5
003710EF   0FAFC6           IMUL EAX,ESI                             ; 33 * 5 = FF
003710F2   99               CDQ                                      ; 把 EDX 中的字符号扩展到 EDX 中,为什么 EDX=0??
003710F3   F7FD             IDIV EBP                                 ; EAX即FF(255) / EBP即3E(62), 返回商送AX
003710F5   03FA             ADD EDI,EDX
003710F7   46               INC ESI
003710F8   8D46 FB          LEA EAX,DWORD PTR DS:[ESI-5]
003710FB   3BC1             CMP EAX,ECX
003710FD  ^7C DF            JL SHORT Tools.003710DE
003710FF   33C0             XOR EAX,EAX
00371101   85C9             TEST ECX,ECX
00371103   7E 44            JLE SHORT Tools.00371149
00371105   8D6C24 1C        LEA EBP,DWORD PTR SS:[ESP+1C]
00371109   BE 05000000      MOV ESI,5
0037110E   83ED 05          SUB EBP,5
00371111   894C24 10        MOV DWORD PTR SS:[ESP+10],ECX
00371115   894C24 14        MOV DWORD PTR SS:[ESP+14],ECX
00371119   8B8C24 24010000  MOV ECX,DWORD PTR SS:[ESP+124]           ; 机器码的ASC||码送 ECX
00371120   0FBE440E FB      MOVSX EAX,BYTE PTR DS:[ESI+ECX-5]
00371125   0FAFC6           IMUL EAX,ESI
00371128   03C7             ADD EAX,EDI
0037112A   B9 3E000000      MOV ECX,3E
0037112F   99               CDQ
00371130   F7F9             IDIV ECX
00371132   8B4424 10        MOV EAX,DWORD PTR SS:[ESP+10]
00371136   46               INC ESI
00371137   48               DEC EAX
00371138   894424 10        MOV DWORD PTR SS:[ESP+10],EAX
0037113C   8A141A           MOV DL,BYTE PTR DS:[EDX+EBX]             ; 注册码第一位送 DL
0037113F   88542E FF        MOV BYTE PTR DS:[ESI+EBP-1],DL
00371143  ^75 D4            JNZ SHORT Tools.00371119
00371145   8B4424 14        MOV EAX,DWORD PTR SS:[ESP+14]
00371149   C64404 1C 00     MOV BYTE PTR SS:[ESP+EAX+1C],0
0037114E   8B4424 18        MOV EAX,DWORD PTR SS:[ESP+18]
00371152   8D7C24 1C        LEA EDI,DWORD PTR SS:[ESP+1C]            ; 注册码送 EDI !!!!!!!
00371156   83C9 FF          OR ECX,FFFFFFFF
00371159   8D68 04          LEA EBP,DWORD PTR DS:[EAX+4]             ; 注册码内存地址
0037115C   33C0             XOR EAX,EAX
0037115E   F2:AE            REPNE SCAS BYTE PTR ES:[EDI]
00371160   F7D1             NOT ECX
00371162   2BF9             SUB EDI,ECX
00371164   53               PUSH EBX
00371165   8BD1             MOV EDX,ECX
00371167   8BF7             MOV ESI,EDI
00371169   8BFD             MOV EDI,EBP
0037116B   C1E9 02          SHR ECX,2
0037116E   F3:A5            REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
00371170   8BCA             MOV ECX,EDX
00371172   83E1 03          AND ECX,3
00371175   F3:A4            REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
00371177   E8 C4000000      CALL Tools.00371240
0037117C   83C4 04          ADD ESP,4
0037117F   8BC5             MOV EAX,EBP
00371181   5F               POP EDI
00371182   5E               POP ESI
00371183   5D               POP EBP
00371184   5B               POP EBX
00371185   81C4 10010000    ADD ESP,110
0037118B   C2 0400          RETN 4                                   ; 返回了!!!!!!!!!!



接进入00417BD7 CALL之前的代码:
00417BDA   . 8BF8           MOV EDI,EAX
00417BDC   . 83C9 FF        OR ECX,FFFFFFFF
00417BDF   . 33C0           XOR EAX,EAX
00417BE1   . 8D5424 14      LEA EDX,DWORD PTR SS:[ESP+14]
00417BE5   . F2:AE          REPNE SCAS BYTE PTR ES:[EDI]
00417BE7   . F7D1           NOT ECX
00417BE9   . 2BF9           SUB EDI,ECX
00417BEB   . 8BC1           MOV EAX,ECX
00417BED   . 8BF7           MOV ESI,EDI
00417BEF   . 8BFA           MOV EDI,EDX
00417BF1   . C1E9 02        SHR ECX,2
00417BF4   . F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
00417BF6   . 8BC8           MOV ECX,EAX
00417BF8   . 83E1 03        AND ECX,3
00417BFB   . 85DB           TEST EBX,EBX
00417BFD   . F3:A4          REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
00417BFF   . 74 08          JE SHORT MyCSDN.00417C09
00417C01   . 8B13           MOV EDX,DWORD PTR DS:[EBX]
00417C03   . 6A 01          PUSH 1
//??????????????????
00417C05   . 8BCB           MOV ECX,EBX
00417C07   . FF12           CALL DWORD PTR DS:[EDX]
00417C09   > 85ED           TEST EBP,EBP
00417C0B   . 74 09          JE SHORT MyCSDN.00417C16
00417C0D   . 8B45 00        MOV EAX,DWORD PTR SS:[EBP]
00417C10   . 6A 01          PUSH 1
00417C12   . 8BCD           MOV ECX,EBP
00417C14   . FF10           CALL DWORD PTR DS:[EAX]
00417C16   > 8B6C24 10      MOV EBP,DWORD PTR SS:[ESP+10]
00417C1A   . 8D8C24 9400000>LEA ECX,DWORD PTR SS:[ESP+94]
00417C21   . 68 80000000    PUSH 80
00417C26   . 51             PUSH ECX
00417C27   . 68 1E040000    PUSH 41E
########不明白上面代码的作用
00417C2C   . 8BCD           MOV ECX,EBP
00417C2E   . E8 01300000    CALL <JMP.&MFC42.#3098>
00417C33   . 8D7424 14      LEA ESI,DWORD PTR SS:[ESP+14]            ;  ULdp972F送 ESI 重要!!!!!!
00417C37   . 8D8424 9400000>LEA EAX,DWORD PTR SS:[ESP+94]            ;  注册码34567890地址送 EAX
00417C3E   > 8A10           MOV DL,BYTE PTR DS:[EAX]                 ;  注册码第一位 3 送 DL
00417C40   . 8A1E           MOV BL,BYTE PTR DS:[ESI]                 ;  ULdp972F的第一位  U 送 BL
00417C42   . 8ACA           MOV CL,DL                                ;  注册码第一位 3 从 DL 送 CL
00417C44   . 3AD3           CMP DL,BL                                ;  比较注册码第一位 3 和 ULdp972F的第一位 U
00417C46   . 75 1E          JNZ SHORT MyCSDN.00417C66
00417C48   . 84C9           TEST CL,CL
00417C4A   . 74 16          JE SHORT MyCSDN.00417C62
00417C4C   . 8A50 01        MOV DL,BYTE PTR DS:[EAX+1]
00417C4F   . 8A5E 01        MOV BL,BYTE PTR DS:[ESI+1]
00417C52   . 8ACA           MOV CL,DL
00417C54   . 3AD3           CMP DL,BL
00417C56   . 75 0E          JNZ SHORT MyCSDN.00417C66
00417C58   . 83C0 02        ADD EAX,2                                ;  指向注册码的下一位
00417C5B   . 83C6 02        ADD ESI,2                                ;  ULdp97ZF指向注册码的下一位00417C5E   . 84C9        
                 TEST CL,CL
00417C60   .^75 DC          JNZ SHORT MyCSDN.00417C3E



后记
总共花了6个小时的时间,还是没有办法分析清楚
都怪自己太菜  
                指点方式:99102087@163.com  或 254128123