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 eax, eax
:00417C68 83D8FF sbb eax, FFFFFFFF
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00417C64(U)
|
:00417C6B 85C0 test eax, eax
: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