首页
社区
课程
招聘
发篇请教的破文(希望看后给我个答案)
发表于: 2005-2-26 18:26 5039

发篇请教的破文(希望看后给我个答案)

2005-2-26 18:26
5039
【破解作者】 Phoenix[ne]
【作者邮箱】 phoenixne@gmail.com
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】 Bad Copy 99v2.0
【软件简介】 BadCopy 软件可以在不需要人工干预的情况下帮您读出 CD-ROM 或磁盘上的坏文
件。效果显著,还具有智能修复的功能,最大程度挽回您的损失新增功能:
V2.0 新增或加强了以下特别功能:
1、优化的算法,保证修复拯救数据更快更全。
2、支持文件夹直接复制,您甚至可以直接把整个逻辑盘完整复制到另一个文件
夹下。
3、可以自由定制 BadCopy 的各项纠错参数,保证能高效,最大限度的挽救您的
宝贵数据。
4、可以直接对隐含或系统文件进行操作。
5、文件操作安全性增强,危险操作先行提示,避免不必要的损失。
6、可以直接在 BadCopy 里面运行或打开程序   
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】

0047226C  |.  E8 D764F9FF   CALL BCopy99.00408748                    ;  读入注册名,放入EAX
00472271  |.  837D CC 00    CMP DWORD PTR SS:[EBP-34],0              ;  比较是否为空
00472275  |.  75 20         JNZ SHORT BCopy99.00472297               ;  写了就OK,兄弟你不至于什么都不写吧!
00472277  |.  B8 04254700   MOV EAX,BCopy99.00472504
0047227C  |.  E8 B3F4FDFF   CALL BCopy99.00451734                    ;  注册名不能为空
00472281  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00472284  |.  8B80 D8020000 MOV EAX,DWORD PTR DS:[EAX+2D8]
0047228A  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
0047228C  |.  FF92 B0000000 CALL DWORD PTR DS:[EDX+B0]
00472292  |.  E9 08020000   JMP BCopy99.0047249F
00472297  |>  8D55 C0       LEA EDX,DWORD PTR SS:[EBP-40]
0047229A  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0047229D  |.  8B80 DC020000 MOV EAX,DWORD PTR DS:[EAX+2DC]
004722A3  |.  E8 70CFFBFF   CALL BCopy99.0042F218
004722A8  |.  8B45 C0       MOV EAX,DWORD PTR SS:[EBP-40]
004722AB  |.  8D55 C4       LEA EDX,DWORD PTR SS:[EBP-3C]
004722AE  |.  E8 9564F9FF   CALL BCopy99.00408748                    ;  读入注册码
004722B3  |.  837D C4 00    CMP DWORD PTR SS:[EBP-3C],0              ;  比较是否为空
004722B7  |.  75 20         JNZ SHORT BCopy99.004722D9               ;  不是就行
004722B9  |.  B8 2C254700   MOV EAX,BCopy99.0047252C
004722BE  |.  E8 71F4FDFF   CALL BCopy99.00451734                    ;  出错对话框:注册码不能为空
004722C3  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004722C6  |.  8B80 DC020000 MOV EAX,DWORD PTR DS:[EAX+2DC]
004722CC  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
004722CE  |.  FF92 B0000000 CALL DWORD PTR DS:[EDX+B0]
004722D4  |.  E9 C6010000   JMP BCopy99.0047249F
004722D9  |>  33F6          XOR ESI,ESI
004722DB  |.  8D95 BCFEFFFF LEA EDX,DWORD PTR SS:[EBP-144]
004722E1  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004722E4  |.  8B80 D8020000 MOV EAX,DWORD PTR DS:[EAX+2D8]
004722EA  |.  E8 29CFFBFF   CALL BCopy99.0042F218
004722EF  |.  8B95 BCFEFFFF MOV EDX,DWORD PTR SS:[EBP-144]
004722F5  |.  8D85 C0FEFFFF LEA EAX,DWORD PTR SS:[EBP-140]
004722FB  |.  B9 FF000000   MOV ECX,0FF
00472300  |.  E8 7F1BF9FF   CALL BCopy99.00403E84
00472305  |.  8D95 C0FEFFFF LEA EDX,DWORD PTR SS:[EBP-140]
0047230B  |.  8D45 D2       LEA EAX,DWORD PTR SS:[EBP-2E]
0047230E  |.  B1 14         MOV CL,14
00472310  |.  E8 2708F9FF   CALL BCopy99.00402B3C
00472315  |.  8A55 D2       MOV DL,BYTE PTR SS:[EBP-2E]
00472318  |.  84D2          TEST DL,DL
0047231A  |.  76 1C         JBE SHORT BCopy99.00472338
0047231C  |.  B1 01         MOV CL,1
0047231E  |.  8D45 D3       LEA EAX,DWORD PTR SS:[EBP-2D]
00472321  |>  33DB          /XOR EBX,EBX                             ;  ***********************************************
00472323  |.  8A18          |MOV BL,BYTE PTR DS:[EAX]                ;  这里一段是依次读入注册名的ASCII值,我这里设第N个注册名为X
00472325  |.  8BF9          |MOV EDI,ECX                             ;  把N送入EDI
00472327  |.  81E7 FF000000 |AND EDI,0FF
0047232D  |.  0FAFDF        |IMUL EBX,EDI                            ;  X=X*N
00472330  |.  03F3          |ADD ESI,EBX                             ;  最终ESI=ESI+X*N
00472332  |.  41            |INC ECX                                 ;  ECX 为计数器每读入一个字符就加1,直到读完
00472333  |.  40            |INC EAX                                 ;  这一段的作用:ESI=N(1)X(1)+N(2)X(2)+N(3)X(3).........
00472334  |.  FECA          |DEC DL                                  ;  而我的名字phoenix运算累加后ESI=C05
00472336  |.^ 75 E9         \JNZ SHORT BCopy99.00472321              ;  **********************************************
00472338  |>  B8 5B690600   MOV EAX,6695B                            ;  EAX赋值=695B
0047233D  |.  2BC6          SUB EAX,ESI                              ;  EAX=EAX-ESI=6695B-通过注册名运算出的累加值(C05)
0047233F  |.  8BF0          MOV ESI,EAX                              ;  把运算结果送入ESI,我运算后为65D56
00472341  |.  8D45 E7       LEA EAX,DWORD PTR SS:[EBP-19]            ;  (我这是联向12F047)
00472344  |.  8D55 D2       LEA EDX,DWORD PTR SS:[EBP-2E]            ;  EDX内放入储存注册名的地址(我的是12F032)
00472347  |.  B1 14         MOV CL,14
00472349  |.  E8 EE07F9FF   CALL BCopy99.00402B3C                    ;  经过这EAX ECX都清0了
0047234E  |.  8A55 E7       MOV DL,BYTE PTR SS:[EBP-19]
00472351  |.  84D2          TEST DL,DL                               ;  DL中存放了注册名的字符数
00472353  |.  76 20         JBE SHORT BCopy99.00472375
00472355  |.  B1 01         MOV CL,1
00472357  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]            ;  把存放注册名的地址送入EAX
0047235A  |>  F6C1 01       /TEST CL,1                               ;  ####################################################
0047235D  |.  74 09         |JE SHORT BCopy99.00472368               ;  这个JE判断此字符在注册名中是偶数位的还是奇数位的。偶数位的就跳
0047235F  |.  8A18          |MOV BL,BYTE PTR DS:[EAX]                ;  BL=X
00472361  |.  80F3 52       |XOR BL,52                               ;  BL=X XOR 52     (也就说奇数位的与52 XOR)
00472364  |.  8818          |MOV BYTE PTR DS:[EAX],BL                ;  把运算后的结果返回到注册名字符的原地址
00472366  |.  EB 07         |JMP SHORT BCopy99.0047236F
00472368  |>  8A18          |MOV BL,BYTE PTR DS:[EAX]
0047236A  |.  80F3 4C       |XOR BL,4C                               ;  BL=X XOR 4C  (偶数位的与4C XOR)
0047236D  |.  8818          |MOV BYTE PTR DS:[EAX],BL                ;  同样把运算结果送回
0047236F  |>  41            |INC ECX                                 ;  ECX计数器加1
00472370  |.  40            |INC EAX                                 ;  EAX中的地址指向注册名的下一个字符
00472371  |.  FECA          |DEC DL                                  ;  注册名的字符数减1。经过此次运算我的phoenix变为22 24 3D 29 3C 25 2A
00472373  |.^ 75 E5         \JNZ SHORT BCopy99.0047235A              ;  #################################################
00472375  |>  8D95 B8FEFFFF LEA EDX,DWORD PTR SS:[EBP-148]
0047237B  |.  8BC6          MOV EAX,ESI
0047237D  |.  E8 4665F9FF   CALL BCopy99.004088C8                    ;  计算注册码的CALL
00472382  |.  8B85 B8FEFFFF MOV EAX,DWORD PTR SS:[EBP-148]
00472388  |.  50            PUSH EAX                                 ;  把正确的注册码压入EAX
00472389  |.  8D95 B4FEFFFF LEA EDX,DWORD PTR SS:[EBP-14C]
0047238F  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00472392  |.  8B80 DC020000 MOV EAX,DWORD PTR DS:[EAX+2DC]
00472398  |.  E8 7BCEFBFF   CALL BCopy99.0042F218
0047239D  |.  8B95 B4FEFFFF MOV EDX,DWORD PTR SS:[EBP-14C]           ;  把我输入的假注册码送入EDX
004723A3  |.  58            POP EAX                                  ;  释放EAX,结果是正确的注册码入栈
004723A4  |.  E8 0F1CF9FF   CALL BCopy99.00403FB8                    ;  这是比较CALL
004723A9  |.  0F85 D8000000 JNZ BCopy99.00472487                     ;  关键跳转,爆破的话改这
004723AF  |.  8B15 0C614700 MOV EDX,DWORD PTR DS:[47610C]            ;  BCopy99.0047794C
004723B5  |.  8B12          MOV EDX,DWORD PTR DS:[EDX]
004723B7  |.  A1 D8614700   MOV EAX,DWORD PTR DS:[4761D8]
004723BC  |.  E8 9538F9FF   CALL BCopy99.00405C56
004723C1  |.  A1 D8614700   MOV EAX,DWORD PTR DS:[4761D8]
004723C6  |.  BA CC000000   MOV EDX,0CC
004723CB  |.  E8 203CF9FF   CALL BCopy99.00405FF0
004723D0  |.  E8 1F04F9FF   CALL BCopy99.004027F4
004723D5  |.  A1 BC614700   MOV EAX,DWORD PTR DS:[4761BC]
004723DA  |.  83C0 06       ADD EAX,6
004723DD  |.  8D55 E7       LEA EDX,DWORD PTR SS:[EBP-19]
004723E0  |.  B1 14         MOV CL,14
004723E2  |.  E8 5507F9FF   CALL BCopy99.00402B3C
004723E7  |.  A1 BC614700   MOV EAX,DWORD PTR DS:[4761BC]
004723EC  |.  C700 E0EA0B00 MOV DWORD PTR DS:[EAX],0BEAE0
004723F2  |.  A1 BC614700   MOV EAX,DWORD PTR DS:[4761BC]
004723F7  |.  8970 6C       MOV DWORD PTR DS:[EAX+6C],ESI
004723FA  |.  E8 6106F9FF   CALL BCopy99.00402A60
004723FF  |.  66:BB 4E00    MOV BX,4E
00472403  |.  8B35 BC614700 MOV ESI,DWORD PTR DS:[4761BC]            ;  BCopy99.00477A9C
00472409  |.  83C6 1B       ADD ESI,1B
0047240C  |>  B8 FF000000   /MOV EAX,0FF
00472411  |.  E8 6A08F9FF   |CALL BCopy99.00402C80
00472416  |.  8806          |MOV BYTE PTR DS:[ESI],AL
00472418  |.  46            |INC ESI
00472419  |.  66:FFCB       |DEC BX
0047241C  |.^ 75 EE         \JNZ SHORT BCopy99.0047240C
0047241E  |.  66:BB 5700    MOV BX,57
00472422  |.  8B35 BC614700 MOV ESI,DWORD PTR DS:[4761BC]            ;  BCopy99.00477A9C
00472428  |.  83C6 70       ADD ESI,70
0047242B  |>  B8 FF000000   /MOV EAX,0FF
00472430  |.  E8 4B08F9FF   |CALL BCopy99.00402C80
00472435  |.  8806          |MOV BYTE PTR DS:[ESI],AL
00472437  |.  46            |INC ESI
00472438  |.  66:FFCB       |DEC BX
0047243B  |.^ 75 EE         \JNZ SHORT BCopy99.0047242B
0047243D  |.  8B15 BC614700 MOV EDX,DWORD PTR DS:[4761BC]            ;  BCopy99.00477A9C
00472443  |.  A1 D8614700   MOV EAX,DWORD PTR DS:[4761D8]
00472448  |.  E8 F73BF9FF   CALL BCopy99.00406044
0047244D  |.  E8 A203F9FF   CALL BCopy99.004027F4
00472452  |.  A1 D8614700   MOV EAX,DWORD PTR DS:[4761D8]
00472457  |.  E8 6439F9FF   CALL BCopy99.00405DC0
0047245C  |.  E8 9303F9FF   CALL BCopy99.004027F4
00472461  |.  6A 00         PUSH 0
00472463  |.  B9 4C254700   MOV ECX,BCopy99.0047254C                 ;  ASCII "BadCopy"
00472468  |.  BA 54254700   MOV EDX,BCopy99.00472554
0047246D  |.  A1 84614700   MOV EAX,DWORD PTR DS:[476184]
00472472  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
00472474  |.  E8 33B1FDFF   CALL BCopy99.0044D5AC
00472479  |.  A1 D45F4700   MOV EAX,DWORD PTR DS:[475FD4]
0047247E  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
00472480  |.  E8 E37CFDFF   CALL BCopy99.0044A168
00472485  |.  EB 18         JMP SHORT BCopy99.0047249F
00472487  |>  6A 00         PUSH 0
00472489  |.  B9 4C254700   MOV ECX,BCopy99.0047254C                 ;  ASCII "BadCopy"
0047248E  |.  BA 88254700   MOV EDX,BCopy99.00472588
00472493  |.  A1 84614700   MOV EAX,DWORD PTR DS:[476184]
00472498  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0047249A  |.  E8 0DB1FDFF   CALL BCopy99.0044D5AC                    ;  注册码错误

***********************0047237D  CALL BCopy99.004088C8*********************************
004088C8  /$  83C4 F8       ADD ESP,-8
004088CB  |.  6A 00         PUSH 0                                   ; /Arg1 = 00000000
004088CD  |.  894424 04     MOV DWORD PTR SS:[ESP+4],EAX             ; |
004088D1  |.  C64424 08 00  MOV BYTE PTR SS:[ESP+8],0                ; |
004088D6  |.  8D4C24 04     LEA ECX,DWORD PTR SS:[ESP+4]             ; |
004088DA  |.  8BC2          MOV EAX,EDX                              ; |
004088DC  |.  BA F4884000   MOV EDX,BCopy99.004088F4                 ; |ASCII "%d"
004088E1  |.  E8 560D0000   CALL BCopy99.0040963C                    ; \计算正确注册码。关键CALL2
004088E6  |.  59            POP ECX
004088E7  |.  5A            POP EDX
004088E8  \.  C3            RETN

*************************************************************************************************

*************************004088E1 CALL BCopy99.0040963C************************************
0040963C  /$  55            PUSH EBP
0040963D  |.  8BEC          MOV EBP,ESP
0040963F  |.  81C4 04F0FFFF ADD ESP,-0FFC
00409645  |.  50            PUSH EAX
00409646  |.  83C4 F4       ADD ESP,-0C
00409649  |.  53            PUSH EBX
0040964A  |.  56            PUSH ESI
0040964B  |.  894D F8       MOV DWORD PTR SS:[EBP-8],ECX
0040964E  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX
00409651  |.  8BF0          MOV ESI,EAX
00409653  |.  BB 02100000   MOV EBX,1002                             ;  EBX=1002
00409658  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0040965B  |.  E8 48A8FFFF   CALL BCopy99.00403EA8
00409660  |.  8BD3          MOV EDX,EBX                              ;  EDX=EBX=1002
00409662  |.  85D2          TEST EDX,EDX
00409664  |.  79 03         JNS SHORT BCopy99.00409669
00409666  |.  83C2 03       ADD EDX,3
00409669  |>  C1FA 02       SAR EDX,2                                ;  EDX算术右移2位=400
0040966C  |.  8BCB          MOV ECX,EBX                              ;  ECX=1002
0040966E  |.  2BCA          SUB ECX,EDX                              ;  ECX=1002-400=C02
00409670  |.  3BC1          CMP EAX,ECX
00409672  |.  7D 24         JGE SHORT BCopy99.00409698
00409674  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00409677  |.  E8 2CA8FFFF   CALL BCopy99.00403EA8
0040967C  |.  50            PUSH EAX                                 ;  经过上面的CALL,EAX=0002
0040967D  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  把指向通过注册名运算累加后的结果(65D56)的地址送入EAX
00409680  |.  50            PUSH EAX                                 ;  把运算的结果(65D56)直接送入EAX
00409681  |.  8B45 08       MOV EAX,DWORD PTR SS:[EBP+8]             ;  EAX=0
00409684  |.  50            PUSH EAX
00409685  |.  8B4D FC       MOV ECX,DWORD PTR SS:[EBP-4]
00409688  |.  8BD3          MOV EDX,EBX                              ;  EDX=EBX=1002
0040968A  |.  4A            DEC EDX                                  ;  EDX减一
0040968B  |.  8D85 F6EFFFFF LEA EAX,DWORD PTR SS:[EBP-100A]
00409691  |.  E8 32FBFFFF   CALL BCopy99.004091C8                    ;  关键CALL3。进入
00409696  |.  EB 0C         JMP SHORT BCopy99.004096A4
00409698  |>  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0040969B  |.  E8 08A8FFFF   CALL BCopy99.00403EA8

**************************************************************************************************

*************************409691   CALL BCopy99.004091C8 *****************************************
004091C8   $  55            PUSH EBP
004091C9   .  8BEC          MOV EBP,ESP                              ;  EBP=ESP=12DEBC
004091CB   .  83C4 8C       ADD ESP,-74                              ;  ESP=ESP-74=12DE48
004091CE   .  53            PUSH EBX
004091CF   .  33DB          XOR EBX,EBX
004091D1   .  895D F0       MOV DWORD PTR SS:[EBP-10],EBX
004091D4   .  53            PUSH EBX
004091D5   .  56            PUSH ESI
004091D6   .  57            PUSH EDI
004091D7   .  89C7          MOV EDI,EAX
004091D9   .  89CE          MOV ESI,ECX
004091DB   .  034D 10       ADD ECX,DWORD PTR SS:[EBP+10]
004091DE   .  897D FC       MOV DWORD PTR SS:[EBP-4],EDI
004091E1   .  31C0          XOR EAX,EAX
004091E3   .  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
004091E6   .  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX
004091E9   .  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX
004091EC   >  09D2          OR EDX,EDX
004091EE   .  74 0E         JE SHORT BCopy99.004091FE
004091F0   >  39CE          CMP ESI,ECX
004091F2   .  74 0A         JE SHORT BCopy99.004091FE
004091F4   .  AC            LODS BYTE PTR DS:[ESI]
004091F5   .  80F8 25       CMP AL,25                                ;  判断是否是%
004091F8   .  74 0E         JE SHORT BCopy99.00409208
004091FA   >  AA            STOS BYTE PTR ES:[EDI]
004091FB   .  4A            DEC EDX
004091FC   .^ 75 F2         JNZ SHORT BCopy99.004091F0
004091FE   >  89F8          MOV EAX,EDI
00409200   .  2B45 FC       SUB EAX,DWORD PTR SS:[EBP-4]
00409203   .  E9 A8030000   JMP BCopy99.004095B0
00409208   >  39CE          CMP ESI,ECX
0040920A   .^ 74 F2         JE SHORT BCopy99.004091FE
0040920C   .  AC            LODS BYTE PTR DS:[ESI]
0040920D   .  80F8 25       CMP AL,25                                ;  判断是否是%
00409210   .^ 74 E8         JE SHORT BCopy99.004091FA
00409212   .  8D5E FE       LEA EBX,DWORD PTR DS:[ESI-2]
00409215   .  895D EC       MOV DWORD PTR SS:[EBP-14],EBX
00409218   >  8845 EB       MOV BYTE PTR SS:[EBP-15],AL
0040921B   .  80F8 2D       CMP AL,2D                                ;  判断是否是-
0040921E   .  75 05         JNZ SHORT BCopy99.00409225
00409220   .  39CE          CMP ESI,ECX
00409222   .^ 74 DA         JE SHORT BCopy99.004091FE
00409224   .  AC            LODS BYTE PTR DS:[ESI]
00409225   >  E8 80000000   CALL BCopy99.004092AA
0040922A   .  80F8 3A       CMP AL,3A                                ;  判断是否是:
0040922D   .  75 0A         JNZ SHORT BCopy99.00409239
0040922F   .  895D F8       MOV DWORD PTR SS:[EBP-8],EBX
00409232   .  39CE          CMP ESI,ECX
00409234   .^ 74 C8         JE SHORT BCopy99.004091FE
00409236   .  AC            LODS BYTE PTR DS:[ESI]
00409237   .^ EB DF         JMP SHORT BCopy99.00409218
00409239   >  895D E4       MOV DWORD PTR SS:[EBP-1C],EBX
0040923C   .  BB FFFFFFFF   MOV EBX,-1
00409241   .  80F8 2E       CMP AL,2E                                ;  判断是否是。
00409244   .  75 0A         JNZ SHORT BCopy99.00409250
00409246   .  39CE          CMP ESI,ECX
00409248   .^ 74 B4         JE SHORT BCopy99.004091FE
0040924A   .  AC            LODS BYTE PTR DS:[ESI]
0040924B   .  E8 5A000000   CALL BCopy99.004092AA
00409250   >  895D E0       MOV DWORD PTR SS:[EBP-20],EBX
00409253   .  8975 DC       MOV DWORD PTR SS:[EBP-24],ESI
00409256   .  51            PUSH ECX
00409257   .  52            PUSH EDX
00409258   .  E8 96000000   CALL BCopy99.004092F3                    ;  关键CALL4,进入
0040925D   .  5A            POP EDX
0040925E   .  8B5D E4       MOV EBX,DWORD PTR SS:[EBP-1C]
00409261   .  29CB          SUB EBX,ECX
00409263   .  73 02         JNB SHORT BCopy99.00409267
00409265   .  31DB          XOR EBX,EBX
00409267   >  807D EB 2D    CMP BYTE PTR SS:[EBP-15],2D              ;  判断是否为分隔符-

************************************************************************************************
************************************CALL4*******************************************************
004092F3  /$  24 DF         AND AL,0DF                               ;  把AL中字符变成大写
004092F5  |.  88C1          MOV CL,AL
004092F7  |.  B8 01000000   MOV EAX,1
004092FC  |.  8B5D F8       MOV EBX,DWORD PTR SS:[EBP-8]
004092FF  |.  3B5D 08       CMP EBX,DWORD PTR SS:[EBP+8]
00409302  |.  77 5C         JA SHORT BCopy99.00409360
00409304  |.  FF45 F8       INC DWORD PTR SS:[EBP-8]                 ;  地址指向下一个
00409307  |.  8B75 0C       MOV ESI,DWORD PTR SS:[EBP+C]
0040930A  |.  8D34DE        LEA ESI,DWORD PTR DS:[ESI+EBX*8]
0040930D  |.  8B06          MOV EAX,DWORD PTR DS:[ESI]
0040930F  |.  0FB65E 04     MOVZX EBX,BYTE PTR DS:[ESI+4]
00409313  |.  FF249D 1A9340>JMP DWORD PTR DS:[EBX*4+40931A]
0040931A  |.  0E944000      DD BCopy99.0040940E                      ;  Switch table used at 00409313
0040931E  |.  5E934000      DD BCopy99.0040935E
00409322  |.  75944000      DD BCopy99.00409475
00409326  |.  33954000      DD BCopy99.00409533
0040932A  |.  A5944000      DD BCopy99.004094A5
0040932E  |.  15954000      DD BCopy99.00409515
00409332  |.  F5944000      DD BCopy99.004094F5
00409336  |.  5E934000      DD BCopy99.0040935E
0040933A  |.  5E934000      DD BCopy99.0040935E
0040933E  |.  5E934000      DD BCopy99.0040935E
00409342  |.  B6944000      DD BCopy99.004094B6
00409346  |.  D9944000      DD BCopy99.004094D9
0040934A  |.  2F954000      DD BCopy99.0040952F
0040934E  |.  84944000      DD BCopy99.00409484
00409352  |.  5E934000      DD BCopy99.0040935E
00409356  |.  BD944000      DD BCopy99.004094BD
0040935A  |.  72934000      DD BCopy99.00409372
                          .
                          .
                          .
0040940D  |>  C3            RETN
0040940E  |>  80F9 44       CMP CL,44                                ;  判断是否是D
00409411  |.  74 15         JE SHORT BCopy99.00409428
00409413  |.  80F9 55       CMP CL,55                                ;  判断是否是U
00409416  |.  74 22         JE SHORT BCopy99.0040943A
00409418  |.  80F9 58       CMP CL,58                                ;  是否是X
0040941B  |.^ 0F85 3DFFFFFF JNZ BCopy99.0040935E
00409421  |.  B9 10000000   MOV ECX,10
00409426  |.  EB 17         JMP SHORT BCopy99.0040943F
00409428  |>  09C0          OR EAX,EAX
0040942A  |.  79 0E         JNS SHORT BCopy99.0040943A
0040942C  |.  F7D8          NEG EAX
0040942E  |.  E8 07000000   CALL BCopy99.0040943A
00409433  |.  B0 2D         MOV AL,2D
00409435  |.  41            INC ECX
00409436  |.  4E            DEC ESI
00409437  |.  8806          MOV BYTE PTR DS:[ESI],AL
00409439  |.  C3            RETN
0040943A  |$  B9 0A000000   MOV ECX,0A
0040943F  |>  8D75 9F       LEA ESI,DWORD PTR SS:[EBP-61]
00409442  |>  31D2          /XOR EDX,EDX                             ;  ************************************************
00409444  |.  F7F1          |DIV ECX
00409446  |.  80C2 30       |ADD DL,30                               ;  DL中存放的是计算出的注册码字符
00409449  |.  80FA 3A       |CMP DL,3A
0040944C  |.  72 03         |JB SHORT BCopy99.00409451               ;  判断是否是数字
0040944E  |.  80C2 07       |ADD DL,7
00409451  |>  4E            |DEC ESI                                 ;  ESI减1
00409452  |.  8816          |MOV BYTE PTR DS:[ESI],DL                ;  是的话就送入ESI,成为注册码。也就是说注册码必须是纯数字
00409454  |.  09C0          |OR EAX,EAX
00409456  |.^ 75 EA         \JNZ SHORT BCopy99.00409442              ;  *******************************************
00409458  |.  8D4D 9F       LEA ECX,DWORD PTR SS:[EBP-61]
0040945B  |.  29F1          SUB ECX,ESI
0040945D  |.  8B55 E0       MOV EDX,DWORD PTR SS:[EBP-20]
00409460  |.  83FA 10       CMP EDX,10
00409463  |.  76 01         JBE SHORT BCopy99.00409466

--------------------------------------------------------------------------------
【破解总结】

我想请问一下,它的注册码最后到底是怎么送到DL中的?还有最后那一串DD 什么的是干什么的?
好了给一个可以用的:注册名 phoenix 注册码417110 .
还有一点要注意:注册后程序会生成一个.CFG后缀的文件,每次启动时都会检查,所以小心不要把它删了,删了就有是未注册的了。
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
2
div ecx
余数放在edx中

dd 定义的是跳转表吧
2005-2-26 20:01
0
雪    币: 214
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
学习中。。。。
2005-2-27 04:34
0
雪    币: 247
活跃值: (135)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
但我调试跟踪时它好像并没有读取啊?
请指教
2005-2-27 11:37
0
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
5
上面一句:
JMP DWORD PTR DS:[EBX*4+40931A]

这个不是在读吗?
2005-2-27 16:31
0
雪    币: 247
活跃值: (135)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
噢。原来是这样的。
在调试时它就直接跳过去了,我还以为没用到呢。
好像有所领悟了,
看来还是需要多练习啊,
谢谢cyclotron ,感谢你在百忙之中帮助了我
2005-3-1 15:12
0
游客
登录 | 注册 方可回帖
返回