软件名称:ClockWise 3.03
下载地址:http://software.wx88.net/down/InstallCW.exe
软件简介:一个结合了数字时钟、日历、提醒/备忘时钟、计时和程序调度的时间管理实用工具,它可以安排5个提醒和多达30个单独的程序事件,另外,它还可以通过Inter
net或原子钟自动设置系统时间。你可以用它自动安排关机和重新启动的时间。
破解难度:简单
破解人:Edea (QQ:3849036)
先用Fi分析,发现没有加壳(呵呵,占便宜了)
用WDASM反汇编:随便填注册码,点Register,弹出ERROR的对话框,在WDASM中查找ERROR。找到后往上看,发现是从0041b04a跳过来的,上面的0041b043可能就是关键CALL。
0177:0041B040 PUSH ESI
0177:0041B041 MOV ESI,ECX
0177:0041B043 CALL 0041B090
----->值得注意,跟入
0177:0041B048 TEST EAX,EAX
0177:0041B04A JZ 0041B071
------>跳则死
0177:0041B04C MOV ECX,ESI
0177:0041B04E CALL 0041B2A0
0177:0041B053 PUSH BYTE +40
0177:0041B055 PUSH DWORD 00452920
0177:0041B05A PUSH DWORD 00452D58
0177:0041B05F MOV ECX,ESI
0177:0041B061 CALL 0043714E
0177:0041B066 PUSH BYTE +00
0177:0041B068 MOV ECX,ESI
打开注册对话框,填入:
User Name:Edea
Serial Number:300 (这个地方必须是300、1000、2000、5000等,后面再详细说明)
Registration:9876543210 (随便填一个)
打开TRW2000,下断点bpx 0041B043,点Register,被拦下。
按F8跟入
Call form 0041B043
0177:0041B090 SUB ESP,BYTE +0C
0177:0041B093 PUSH EBX
0177:0041B094 PUSH EBP
0177:0041B095 MOV EBP,ECX
0177:0041B097 PUSH ESI
0177:0041B098 XOR ECX,ECX
0177:0041B09A XOR ESI,ESI
0177:0041B09C MOV EAX,[EBP+60]
------>将User Name放入EAX
0177:0041B09F PUSH EDI
0177:0041B0A0 MOV EAX,[EAX-08]
0177:0041B0A3 TEST EAX,EAX
0177:0041B0A5 MOV [ESP+10],EAX
0177:0041B0A9 JZ NEAR 0041B28B
0177:0041B0AF MOV EAX,[EBP+68]
------->将Serial Number放入EAX
0177:0041B0B2 MOV EDX,[EAX-08]
0177:0041B0B5 TEST EDX,EDX
0177:0041B0B7 JNG NEAR 0041B28B
0177:0041B0BD MOV EDX,[EBP+64]
------>将Registration放入EDX
0177:0041B0C0 CMP DWORD [EDX-08],BYTE +05
0177:0041B0C4 JNG NEAR 0041B28B
0177:0041B0CA PUSH EAX
0177:0041B0CB CALL 004249C3
0177:0041B0D0 MOV EBX,EAX
0177:0041B0D2 ADD ESP,BYTE +04
0177:0041B0D5 CMP EBX,BYTE +01
0177:0041B0D8 JC NEAR 0041B281
0177:0041B0DE CMP EBX,012C
------>这几个地方要注意了,程序把
0177:0041B0E4 JNA 0041B0F2
Serial Number分别与300,
0177:0041B0E6 CMP EBX,03E8
1000,2000,5000等比较,如果
0177:0041B0EC JC NEAR 0041B281
不是它们中的一个,就注册失败
0177:0041B0F2 CMP EBX,07D0
0177:0041B0F8 JNA 0041B106
0177:0041B0FA CMP EBX,1388
0177:0041B100 JC NEAR 0041B281
0177:0041B106 CMP EBX,1B58
0177:0041B10C JNA 0041B11A
0177:0041B10E CMP EBX,2767
0177:0041B114 JC NEAR 0041B281
0177:0041B11A CMP EBX,2A16
0177:0041B120 JNA 0041B12E
0177:0041B122 CMP EBX,2A53
0177:0041B128 JC NEAR 0041B281
0177:0041B12E CMP EBX,2EE0
0177:0041B134 JNA 0041B142
0177:0041B136 CMP EBX,4E20
0177:0041B13C JC NEAR 0041B281
0177:0041B142 CMP EBX,5208
0177:0041B148 JA NEAR 0041B281
0177:0041B14E MOV ECX,[ESP+10]
0177:0041B152 XOR EAX,EAX
0177:0041B154 TEST ECX,ECX
0177:0041B156 JNG 0041B175
0177:0041B158 MOV EDX,[EBP+60]
0177:0041B15B LEA ECX,[EAX+01]
0177:0041B15E MOV EDI,[ESP+10]
0177:0041B162 MOVSX EAX,BYTE [EDX+EAX]
0177:0041B166 IMUL EAX,ECX
0177:0041B169 ADD EAX,EDI
0177:0041B16B ADD ESI,EAX
0177:0041B16D MOV EAX,ECX
0177:0041B16F MOV ECX,EDI
0177:0041B171 CMP EAX,ECX
0177:0041B173 JL 0041B15B
0177:0041B175 MOV EDX,[ESP+10]
0177:0041B179 LEA ECX,[ESP+14]
----->中间很多循环,如果你不想做注册机
0177:0041B17D IMUL EDX,EBX
就不用管它了
0177:0041B180 PUSH BYTE +10
0177:0041B182 ADD EDX,ESI
0177:0041B184 PUSH ECX
0177:0041B185 PUSH EDX
0177:0041B186 CALL 0042F30B
0177:0041B18B MOV DL,[ESP+20]
0177:0041B18F ADD ESP,BYTE +0C
0177:0041B192 TEST DL,DL
0177:0041B194 JZ 0041B1B4
0177:0041B196 LEA ESI,[ESP+14]
0177:0041B19A MOVSX EAX,DL
0177:0041B19D PUSH EAX
0177:0041B19E CALL 00425F90
0177:0041B1A3 ADD ESP,BYTE +04
0177:0041B1A6 MOV [ESI],AL
0177:0041B1A8 MOV DL,[ESI+01]
0177:0041B1AB INC ESI
0177:0041B1AC TEST DL,DL
0177:0041B1AE JNZ 0041B19A
0177:0041B1B0 MOV DL,[ESP+14]
0177:0041B1B4 LEA EDI,[ESP+14]
0177:0041B1B8 OR ECX,BYTE -01
0177:0041B1BB XOR EAX,EAX
0177:0041B1BD REPNE SCASB
0177:0041B1BF NOT ECX
0177:0041B1C1 DEC ECX
0177:0041B1C2 CMP ECX,BYTE +04
0177:0041B1C5 JNC 0041B20C
0177:0041B1C7 LEA EDI,[ESP+14]
0177:0041B1CB OR ECX,BYTE -01
0177:0041B1CE XOR EAX,EAX
0177:0041B1D0 REPNE SCASB
0177:0041B1D2 NOT ECX
0177:0041B1D4 DEC ECX
0177:0041B1D5 LEA EDI,[ESP+14]
0177:0041B1D9 MOV [ESP+ECX+15],AL
0177:0041B1DD OR ECX,BYTE -01
0177:0041B1E0 REPNE SCASB
0177:0041B1E2 NOT ECX
0177:0041B1E4 DEC ECX
0177:0041B1E5 INC ECX
0177:0041B1E6 JZ 0041B1F3
0177:0041B1E8 MOV DL,[ESP+ECX+13]
0177:0041B1EC MOV [ESP+ECX+14],DL
0177:0041B1F0 DEC ECX
0177:0041B1F1 JNZ 0041B1E8
0177:0041B1F3 MOV DL,30
0177:0041B1F5 LEA EDI,[ESP+14]
0177:0041B1F9 OR ECX,BYTE -01
0177:0041B1FC XOR EAX,EAX
0177:0041B1FE MOV [ESP+14],DL
0177:0041B202 REPNE SCASB
0177:0041B204 NOT ECX
0177:0041B206 DEC ECX
0177:0041B207 CMP ECX,BYTE +04
0177:0041B20A JC 0041B1C7
0177:0041B20C MOV AL,[ESP+17]
0177:0041B210 MOV CL,[ESP+16]
0177:0041B214 MOV [ESP+19],AL
0177:0041B218 MOV [ESP+18],CL
0177:0041B21C MOV CL,[ESP+15]
0177:0041B220 MOV AL,BL
0177:0041B222 MOV BYTE [ESP+1A],00
0177:0041B227 MOV [ESP+17],CL
0177:0041B22B MOV [ESP+16],DL
0177:0041B22F IMUL DL
0177:0041B231 CMP AL,41
0177:0041B233 JC 0041B239
0177:0041B235 CMP AL,5A
0177:0041B237 JNA 0041B247
0177:0041B239 ADD AL,4A
0177:0041B23B CMP AL,4F
0177:0041B23D JZ 0041B243
0177:0041B23F CMP AL,49
0177:0041B241 JNZ 0041B231
0177:0041B243 ADD AL,4A
0177:0041B245 JMP SHORT 0041B231
0177:0041B247 MOV [ESP+14],AL
0177:0041B24B MOV AL,[ESP+10]
0177:0041B24F IMUL CL
0177:0041B251 CMP AL,30
0177:0041B253 JC 0041B259
0177:0041B255 CMP AL,39
0177:0041B257 JNA 0041B25D
0177:0041B259 ADD AL,4A
0177:0041B25B JMP SHORT 0041B251
0177:0041B25D MOV [ESP+15],AL
0177:0041B261 MOV EAX,[EBP+64]
------>把假的Registration放入EAX
0177:0041B264 LEA EDX,[ESP+14]
------>把真的Registration放入EDX
0177:0041B268 PUSH EAX
0177:0041B269 PUSH EDX
0177:0041B26A CALL `KERNEL32!lstrcmpA`
------>比较
0177:0041B270 TEST EAX,EAX
0177:0041B272 JNZ 0041B281
------>不相等吗?去死吧!
0177:0041B274 POP EDI
正确的注册码:
User Name:Edea
Serial Number:300
Registration:F00880
- 标 题:破解ClockWise 3.03 (7千字)
- 作 者:crazyedea
- 时 间:2001-6-6 21:38:38
- 链 接:http://bbs.pediy.com