首页
社区
课程
招聘
[新]我爱背单词7.0(wabdc2004)注册算法分析
发表于: 2004-6-2 15:36 10559

[新]我爱背单词7.0(wabdc2004)注册算法分析

2004-6-2 15:36
10559

【破解作者】 blue_devil_bomb[BCG]
【作者邮箱】 [email]ninesunnine@sina.com[/email]
【使用工具】 peid OllyDbg1.09 regsnap
【破解平台】 Win9x/NT/2000/XP
【软件名称】 我爱背单词7.0(wabdc2004)
【下载地址】 feiyue网站
【软件简介】 欢迎使用北京角斗士软件技术有限公司的著名产品《我爱背单词7.0》。经过8年七个版本的发展,《我爱背单词7.0》已经不再仅仅是个背单词软件,而是个背单词集成平台! 即使您不想在电脑前背单词,她也能帮您的大忙!可以说《我爱背单词7.0》达到了国内教学软件前所未有的高度!
【软件大小】 91.9M
【加壳方式】 未加壳
【破解声明】 不为破解而破解,只为学习而破解
--------------------------------------------------------------------------------
【破解内容】
    由于本人要学习英语便在网上找到此软件,需要注册如果未注册则只能学习前10页的内容,我也想注册,可苦于囊中羞涩,不得已而为之。假如我有100万,我就不用在学习英语了,我有吗?我没有。所以我得学!假如我有100万,我真的会拿出我的钱来注册,我有吗?我没有。所以我没掏钱去注册!
    敢问路在何?路在破解!!
    闲话不扯,只入主题。我们输入试炼码(10位)注册下断在028a685d处,Why?why?why?你或许会问为什么要设断点于此呢?笨呀!只需要下端点到对话框弹出的常用端点(此处设.rtcMsgBox ),再往上找就可以到这里了,哈哈,简单吧!还有也可以设置断点:vbaSetSystemError这样的断点来到这里!

028A685D   50               PUSH EAX                             ; 输入的试炼码       
028A685E   E8 65E3B8FD      CALL wabdc200.00434BC8                   ; 注册码判断函数正确注册码eax=1;否则eax=0;
028A6863   EB 08            JMP SHORT wabdc200.028A686D
028A6865   FFD3             CALL EBX
028A6867   50               PUSH EAX
028A6868   E8 13E3B8FD      CALL wabdc200.00434B80
028A686D   8B3D 7C104000    MOV EDI,DWORD PTR DS:[<&MSVBVM60.__vbaSe>; VBVM60.__vbaSetSystemError
028A6873   8985 58FFFFFF    MOV DWORD PTR SS:[EBP-A8],EAX            ;注册成功标志,1成功,0未成功
028A6879   FFD7             CALL EDI
028A687B   8B4D E0          MOV ECX,DWORD PTR SS:[EBP-20]            ;试炼码存入ECX
028A687E   8D46 4C          LEA EAX,DWORD PTR DS:[ESI+4C]
028A6881   51               PUSH ECX
028A6882   50               PUSH EAX
028A6883   FF15 80114000    CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrTo>; MSVBVM60.__vbaStrToUnicode
028A6889   8D4D E0          LEA ECX,DWORD PTR SS:[EBP-20]
028A688C   FF15 D4124000    CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStr
028A6892   8B85 58FFFFFF    MOV EAX,DWORD PTR SS:[EBP-A8]            ;判断注册成功与否重要条件
028A6898   85C0             TEST EAX,EAX                             
028A689A   75 28            JNZ SHORT wabdc200.028A68C4              ;eax=0不转,
028A689C   B9 04000280      MOV ECX,80020004
028A68A1   B8 0A000000      MOV EAX,0A
028A68A6   894D A4          MOV DWORD PTR SS:[EBP-5C],ECX
028A68A9   8945 9C          MOV DWORD PTR SS:[EBP-64],EAX
028A68AC   894D B4          MOV DWORD PTR SS:[EBP-4C],ECX
028A68AF   8945 AC          MOV DWORD PTR SS:[EBP-54],EAX
028A68B2   894D C4          MOV DWORD PTR SS:[EBP-3C],ECX
028A68B5   8945 BC          MOV DWORD PTR SS:[EBP-44],EAX
028A68B8   C745 94 3CDD4300 MOV DWORD PTR SS:[EBP-6C],wabdc200.0043D>
028A68BF   E9 2A010000      JMP wabdc200.028A69EE                  ;跳到注册失败提示框
028A68C4   E8 53E5B8FD      CALL wabdc200.00434E1C
028A68C9   FFD7             CALL EDI
028A68CB   8B46 40          MOV EAX,DWORD PTR DS:[ESI+40]          ;试炼码放入EAX
028A68CE   50               PUSH EAX
028A68CF   8985 3CFFFFFF    MOV DWORD PTR SS:[EBP-C4],EAX
028A68D5   FF15 D8124000    CALL DWORD PTR DS:[<&MSVBVM60.#581>]     ; MSVBVM60.rtcR8ValFromBstr
028A68DB   8B0D C0E39002    MOV ECX,DWORD PTR DS:[290E3C0]
028A68E1   83EC 08          SUB ESP,8
028A68E4   8D55 E0          LEA EDX,DWORD PTR SS:[EBP-20]
028A68E7   DD1C24           FSTP QWORD PTR SS:[ESP]
028A68EA   51               PUSH ECX
028A68EB   52               PUSH EDX
028A68EC   FFD3             CALL EBX
028A68EE   50               PUSH EAX
028A68EF   E8 ACDEB8FD      CALL wabdc200.004347A0                   ;调用VcGetDiskSerialInt注册码与硬盘序列号的运算.及其它一些运算来改变EAX的值
028A68F4   8985 58FFFFFF    MOV DWORD PTR SS:[EBP-A8],EAX            ;又一次判断的标志
028A68FA   FFD7             CALL EDI
028A68FC   8B45 E0          MOV EAX,DWORD PTR SS:[EBP-20]
028A68FF   50               PUSH EAX
028A6900   68 C0E39002      PUSH wabdc200.0290E3C0
028A6905   FF15 80114000    CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrTo>; MSVBVM60.__vbaStrToUnicode
028A690B   8D4D E0          LEA ECX,DWORD PTR SS:[EBP-20]
028A690E   FF15 D4124000    CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStr
028A6914   8B85 58FFFFFF    MOV EAX,DWORD PTR SS:[EBP-A8]           ;此处改为MOV EAX,1即可达到成功爆破.
028A691A   33C9             XOR ECX,ECX
028A691C   83F8 FF          CMP EAX,-1                              ;比较判断
028A691F   0F95C1           SETNE CL                                ;eax不等于-1注册成功
028A6922   F7D9             NEG ECX
028A6924   66:85C9          TEST CX,CX
028A6927   0F84 77010000    JE wabdc200.028A6AA4                    ;
028A692D   C705 0CE49002 22>MOV DWORD PTR DS:[290E40C],34ED22
028A6937   E8 28E5B8FD      CALL wabdc200.00434E64
028A693C   FFD7             CALL EDI
028A693E   8B76 48          MOV ESI,DWORD PTR DS:[ESI+48]
028A6941   85F6             TEST ESI,ESI
028A6943   75 14            JNZ SHORT wabdc200.028A6959
028A6945   6A 01            PUSH 1

10004020 > 83EC 28          SUB ESP,28
10004023   83C9 FF          OR ECX,FFFFFFFF
10004026   33C0             XOR EAX,EAX
10004028   53               PUSH EBX
10004029   55               PUSH EBP
1000402A   56               PUSH ESI
1000402B   8B7424 38        MOV ESI,DWORD PTR SS:[ESP+38]
1000402F   57               PUSH EDI
10004030   8BFE             MOV EDI,ESI
10004032   F2:AE            REPNE SCAS BYTE PTR ES:[EDI]
10004034   F7D1             NOT ECX
10004036   49               DEC ECX                                ;试炼码长度:
10004037   83F9 0A          CMP ECX,0A                                ;试炼码长度与A比较
1000403A   74 0C            JE SHORT gwcomm20.10004048                ;相等成功进行试炼码运算,否则错误长度提示框
1000403C   5F               POP EDI
1000403D   5E               POP ESI
1000403E   5D               POP EBP
1000403F   33C0             XOR EAX,EAX
10004041   5B               POP EBX
10004042   83C4 28          ADD ESP,28
10004045   C2 0400          RETN 4
10004048   33C9             XOR ECX,ECX

检验试炼码有效性的重要函数
10004048   33C9             XOR ECX,ECX                       ;置循环起点为0
1000404A   8D5424 10        LEA EDX,DWORD PTR SS:[ESP+10]
1000404E   0FBE0431         MOVSX EAX,BYTE PTR DS:[ECX+ESI]   ;第ECX个试炼油码
10004052   83C0 D0          ADD EAX,-30
10004055   85C0             TEST EAX,EAX                      ;第ECX个试炼油码是大于0的数吗?
10004057   8902             MOV DWORD PTR DS:[EDX],EAX
10004059  ^7C E1            JL SHORT gwcomm20.1000403C
1000405B   83F8 09          CMP EAX,9
1000405E  ^7F DC            JG SHORT gwcomm20.1000403C        ;第ECX个试炼油码是小于9的数吗?
10004060   41               INC ECX                              ;ECX++取下一个试炼码的指针
10004061   83C2 04          ADD EDX,4
10004064   83F9 0A          CMP ECX,0A
10004067  ^7C E5            JL SHORT gwcomm20.1000404E        
10004069   8B5C24 2C        MOV EBX,DWORD PTR SS:[ESP+2C]
1000406D   8B7C24 28        MOV EDI,DWORD PTR SS:[ESP+28]
10004071   33F6             XOR ESI,ESI                             ;ESI=0;
10004073   33C9             XOR ECX,ECX                             ;ecx=0;
10004075   85C9             TEST ECX,ECX
10004077   7E 41            JLE SHORT gwcomm20.100040BA
10004079   83F9 07          CMP ECX,7
1000407C   7D 3A            JGE SHORT gwcomm20.100040B8
1000407E   8BC1             MOV EAX,ECX
10004080   BD 05000000      MOV EBP,5
10004085   99               CDQ                               ;eax的最高位为1则EDX=0xffffffff;
                                                              ;eax的最高位为0则EDX=0;
10004086   F7FD             IDIV EBP                          ;edx=eax%ebp;eax=eax/ebp;
10004088   8B7C8C 0C        MOV EDI,DWORD PTR SS:[ESP+ECX*4+C];取试炼码的第ECX个数
1000408C   BD 0D000000      MOV EBP,0D
10004091   8BC2             MOV EAX,EDX
10004093   0FAFC7           IMUL EAX,EDI                      ;乘法运算
10004096   99               CDQ
10004097   F7FD             IDIV EBP
10004099   8B448C 10        MOV EAX,DWORD PTR SS:[ESP+ECX*4+10];取试炼码的第ECX+1个数
1000409D   8D4441 01        LEA EAX,DWORD PTR DS:[ECX+EAX*2+1] ;eax=ecx+eax*2+1;
100040A1   0FAFC1           IMUL EAX,ECX                       ;eax*=ecx;
100040A4   03D0             ADD EDX,EAX                        ;edx+=eax;
100040A6   8B448C 14        MOV EAX,DWORD PTR SS:[ESP+ECX*4+14];取试炼码的第ECX+2个数
100040AA   0FAFC7           IMUL EAX,EDI                       ;试炼码的第ECX+2个数与试炼码的第ECX个数相乘
100040AD   8B7C24 28        MOV EDI,DWORD PTR SS:[ESP+28]      ;试炼码的第7个数放入EDI  
100040B1   03C6             ADD EAX,ESI                               ;EAX+=ESI;
100040B3   8D3410           LEA ESI,DWORD PTR DS:[EAX+EDX]     ;ESI=EAX+EDX;
100040B6   EB 3A            JMP SHORT gwcomm20.100040F2
100040B8   85C9             TEST ECX,ECX
100040BA   75 0D            JNZ SHORT gwcomm20.100040C9
100040BC   8B5424 14        MOV EDX,DWORD PTR SS:[ESP+14]    ;试炼码的第2个数
100040C0   0FAF5424 10      IMUL EDX,DWORD PTR SS:[ESP+10]   ;试炼码的第1个数乘以试炼码的第二个数
100040C5   03F2             ADD ESI,EDX                      ;将中间结果贮存到ESI
100040C7   EB 29            JMP SHORT gwcomm20.100040F2
100040C9   83F9 07          CMP ECX,7
100040CC   75 24            JNZ SHORT gwcomm20.100040F2
100040CE   8D47 02          LEA EAX,DWORD PTR DS:[EDI+2]     ;EAX=EDI+2;
100040D1   BD 15000000      MOV EBP,15
100040D6   0FAFC7           IMUL EAX,EDI                     ;EAX*=EDI;
100040D9   99               CDQ
100040DA   F7FD             IDIV EBP                         ;EDX=EAX%EBP;EAX=EAX/EBP;
100040DC   8BC3             MOV EAX,EBX
100040DE   0FAFC3           IMUL EAX,EBX                     ;EAX*=EBX;
100040E1   83C0 0F          ADD EAX,0F                       ;EAX+=0xF;
100040E4   8D2CC5 00000000  LEA EBP,DWORD PTR DS:[EAX*8]     ;EBP=EAX*8;
100040EB   2BE8             SUB EBP,EAX                      ;EBP-=EAX(注:EBP=EAX*7)
100040ED   03EE             ADD EBP,ESI                      ;EBP+=ESI;
100040EF   8D342A           LEA ESI,DWORD PTR DS:[EDX+EBP]   ;ESI=EDX+EBP;
100040F2   41               INC ECX                          ;ECX++进入下一次循环
100040F3   83F9 08          CMP ECX,8                        ;ecx与8比较来判断循环是否终止
100040F6  ^0F8C 79FFFFFF    JL gwcomm20.10004075
100040FC   8BC6             MOV EAX,ESI
100040FE   33D2             XOR EDX,EDX
10004100   B9 0A000000      MOV ECX,0A
10004105   F7F1             DIV ECX                         ;EDX=EAX%ECX;EAX=EAX/ECX;
10004107   395424 30        CMP DWORD PTR SS:[ESP+30],EDX   ;试炼码的第9个数与EDX比较
1000410B   74 0C            JE SHORT gwcomm20.10004119      ;相等则试炼码有效条件一成功
1000410D   5F               POP EDI
1000410E   5E               POP ESI
1000410F   5D               POP EBP
10004110   33C0             XOR EAX,EAX                     ;试炼码无效时置EAX=0
10004112   5B               POP EBX
10004113   83C4 28          ADD ESP,28
10004116   C2 0400          RETN 4
10004119   33DB             XOR EBX,EBX                     ;EBX=0;
1000411B   33C9             XOR ECX,ECX                            ;ECX=0;
1000411D   895C24 3C        MOV DWORD PTR SS:[ESP+3C],EBX   ;贮存EBX值,带记忆的记忆值。
10004121   8D7C24 10        LEA EDI,DWORD PTR SS:[ESP+10]   ;试炼码的起始地址
10004125   8B37             MOV ESI,DWORD PTR DS:[EDI]      ;将EDI指向的试炼码值传送给ESI
10004127   85C9             TEST ECX,ECX                    ;ECX<=0吗?
10004129   7E 30            JLE SHORT gwcomm20.1000415B
1000412B   8BC1             MOV EAX,ECX
1000412D   BD 05000000      MOV EBP,5
10004132   99               CDQ
10004133   F7FD             IDIV EBP
10004135   BD 11000000      MOV EBP,11
1000413A   8BC2             MOV EAX,EDX
1000413C   0FAF47 FC        IMUL EAX,DWORD PTR DS:[EDI-4]  ;EAX乘当前试炼码的前一个试炼码
10004140   03C6             ADD EAX,ESI
10004142   0FAF77 FC        IMUL ESI,DWORD PTR DS:[EDI-4]  ;ESI乘当前试炼码的前一个试炼码
10004146   0FAFC1           IMUL EAX,ECX
10004149   99               CDQ
1000414A   F7FD             IDIV EBP
1000414C   8D41 01          LEA EAX,DWORD PTR DS:[ECX+1]   ;EAX=ECX+1;
1000414F   0FAFC1           IMUL EAX,ECX
10004152   03D0             ADD EDX,EAX
10004154   03F3             ADD ESI,EBX
10004156   8D1C16           LEA EBX,DWORD PTR DS:[ESI+EDX] ;EBX=ESI+EDX;
10004159   EB 2B            JMP SHORT gwcomm20.10004186
1000415B   8D140E           LEA EDX,DWORD PTR DS:[ESI+ECX] ;ECX=0时运行至此:EDX=ESI+ECX;
1000415E   8BC1             MOV EAX,ECX
10004160   BB 05000000      MOV EBX,5
10004165   8D6C56 03        LEA EBP,DWORD PTR DS:[ESI+EDX*2+3];EBP=ESI+EDX*2+3
10004169   99               CDQ
1000416A   0FAFE9           IMUL EBP,ECX                      ;EBP*=ECX;
1000416D   F7FB             IDIV EBX                              ;EDX=EAX%EBX;EAX=EAX/EBX;
1000416F   BB 0D000000      MOV EBX,0D
10004174   8BC2             MOV EAX,EDX
10004176   0FAFC6           IMUL EAX,ESI
10004179   99               CDQ
1000417A   F7FB             IDIV EBX
1000417C   8B5C24 3C        MOV EBX,DWORD PTR SS:[ESP+3C]     ;将记忆的值赋给EBX
10004180   03EA             ADD EBP,EDX
10004182   2BEE             SUB EBP,ESI
10004184   03DD             ADD EBX,EBP
10004186   41               INC ECX
10004187   83C7 04          ADD EDI,4                             ;移到下一个试炼码的起始地址
1000418A   83F9 09          CMP ECX,9
1000418D   895C24 3C        MOV DWORD PTR SS:[ESP+3C],EBX    ;EBX的值赋给记忆值
10004191  ^7C 92            JL SHORT gwcomm20.10004125       ;ECX<9时继续循环
10004193   8BC3             MOV EAX,EBX
10004195   33D2             XOR EDX,EDX
10004197   B9 0A000000      MOV ECX,0A
1000419C   5F               POP EDI
1000419D   F7F1             DIV ECX
1000419F   8B4C24 30        MOV ECX,DWORD PTR SS:[ESP+30]   ;试炼码的第10个数值
100041A3   33C0             XOR EAX,EAX
100041A5   5E               POP ESI
100041A6   5D               POP EBP
100041A7   5B               POP EBX
100041A8   3BCA             CMP ECX,EDX                     ;试炼码的第10个数值与ECX比较
100041AA   0F94C0           SETE AL                         ;ECX=EDX时AL=1,否则AL=0;
100041AD   83C4 28          ADD ESP,28
100041B0   C2 0400          RETN 4

至此我们已对该软件的注册算法有了较为详细的了解,算法描述如下:
1、Zcm[10];代表10个注册码数值
2、F1(Zcm)=A;
3、Cmp(A,Zcm[8])等则转4、否则失败。
4、F2(Zcm)=B;
5、Cmp(B,Zcm[9])等则成功,否则失败。
由于算法不可逆,只能在穷尽求取注册码:算法注册机(C)
#define M 100 //一次求取有效注册码的个数
void CWabdc70Dlg::OnButton1()
{
        // TODO: Add your control notification handler code here
        //m_Ctrledit1.GetWindowText(m_Vedit1);
        int zcm[11],i;
        m_Vedit1="";
        unsigned long eax,ebx,ecx,edx,ebp,edi,esi;
        unsigned j,k,l=0;
        CString str;
        for(j=0;j<=99999;j++)
        for(k=0;k<=99999;k++)
        {
                str.Format("%05d%05d",j,k);
                for(i=0;i<10;i++)
                        zcm[i]=str.GetAt(i)-'0';
                ebx=zcm[7];
                edi=zcm[6];
                esi=0;
                ecx=0;
                edx=zcm[1];
                edx=edx*zcm[0];
                esi=esi+edx;
                for(i=1;i<7;i++)
                {
                        ecx=i;
                        eax=ecx;
                        ebp=5;
                        if((eax>>31&1)) edx=0xffffffff;
                        else            edx=0;
                        edx=eax%ebp;
                        eax=eax/ebp;
                        edi=zcm[i-1];
                        ebp=0xd;
                        eax=edx;
                        eax=eax*edi;
                        if((eax>>31&1)) edx=0xffffffff;
                        else            edx=0;
                        edx=eax%ebp;
                        eax=eax/ebp;
                        eax=zcm[i];
                        eax=ecx+2*eax+1;
                        eax=eax*ecx;
                        edx=edx+eax;
                        eax=zcm[i+1];
                        eax=eax*edi;
                        edi=zcm[6];////?
                        eax=eax+esi;
                        esi=eax+edx;
                }
                for(;i<8;i++)
                {
                        ecx=i;
                        eax=edi+2;
                        ebp=0x15;
                        eax=eax*edi;
                        if((eax>>31&1)) edx=0xffffffff;
                        else            edx=0;
                        edx=eax%ebp;
                        eax=eax/ebp;
                        eax=ebx;
                        eax=eax*ebx;
                        eax=eax+0xf;
                        ebp=eax*8;
                        ebp=ebp-eax;
                        ebp=ebp+esi;
                        esi=edx+ebp;
                       
                }
                eax=esi;
                edx=0;
                ecx=0xa;
                edx=eax%ecx;
                eax=eax/ecx;
                if(zcm[8]==edx)
                {       
                        ebx=0;
                        ecx=0;
                        unsigned save=ebx;
                        esi=zcm[0];
                        edx=zcm[0];
                        eax=ecx;
                        ebx=5;
                        ebp=esi+edx*2+3;
                        if((eax>>31&1)) edx=0xffffffff;
                        else            edx=0;
                        ebp*=ecx;
                        edx=eax%ebx;
                        eax=eax/ebx;
                        ebx=0xd;
                        eax=edx;
                        eax=eax*esi;
                        if((eax>>31&1)) edx=0xffffffff;
                        else            edx=0;
                        edx=eax%ebx;
                        eax=eax/ebx;
                        ebx=save;
                        ebp+=edx;
                        ebp-=esi;
                        ebx+=ebp;
                        ecx++;
                        save=ebx;
                        for(i=ecx;i<9;i++)
                        {
                                esi=zcm[i];
                                eax=ecx;
                                ebp=5;
                                if((eax>>31&1)) edx=0xffffffff;
                                else            edx=0;
                                edx=eax%ebp;
                                eax=eax/ebp;
                                ebp=0x11;
                                eax=edx;
                                eax=eax*zcm[i-1];
                                eax+=esi;
                                esi*=zcm[i-1];
                                eax*=ecx;
                                if((eax>>31&1)) edx=0xffffffff;
                                else            edx=0;
                                edx=eax%ebp;
                                eax=eax/ebp;
                                eax=ecx+1;
                                eax=eax*ecx;
                                edx+=eax;
                                esi+=ebx;
                                ebx=esi+edx;
                                save=ebx;
                                ecx++;
                        }
                        eax=ebx;
                        edx=0;
                        ecx=0xa;
                        edx=eax%ecx;
                        eax=eax/ecx;
                        ecx=zcm[9];
                        eax=0;
                        if(ecx==edx)                                  //SETE AL;
                        {
                                str.Format("%05d%05d",j,k);
                                  l++;
                                m_Vedit1+=str;
                                m_Vedit1+="\n";
                                if(l==M) goto LL;
                        }
                }

        }
        LL:
        m_Ctrledit1.SetWindowText(m_Vedit1);       
}

该算法可以求出M(自己定)个有效的注册码,如果想要更多有效的注册码,只需将M的定义值改为你
想要的数值即可!!

--------------------------------------------------------------------------------
【破解总结】
该软件的注册与以前wabdc2003有相同点,都是对试炼码进行运算得到一个值,然后对这个值进行
判断,如果为1则注册成功,否则注册失败,该类注册算法极易被爆破,不管它的注册算法有多么复杂。
由于本人水平有限,见笑了,哈哈!
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整,且注名[BCG]字样,谢谢!


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 10
支持
分享
最新回复 (12)
雪    币: 295
活跃值: (461)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
欢迎交流
2004-6-2 16:26
0
雪    币: 209
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
收藏~!学习~!
2004-6-2 18:34
0
雪    币: 200
活跃值: (78)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
2004-6-3 08:40
0
雪    币: 295
活跃值: (461)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
呵呵
2004-6-3 20:59
0
雪    币: 202
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
注册容易。属于作者留下的陷阱。后面的杀招是网上验证,要费点功夫(如果不用防火墙)。
2004以前的版本没有任何提示,直接非法操作。后来作者觉得老是非法操作给用户印象不好,所以增加了一个提示对话框,使得出现有形断点,找出注册码相对容易一些。
2004-6-4 10:10
0
雪    币: 295
活跃值: (461)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
7
是这样码?2003我也跟了好像不是你说的这样呀?
2004-6-5 17:04
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好历害!学习学习
2004-6-5 18:37
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我只用过一天,第二天说又要注册
2005-4-10 16:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
努力学习中,比较菜~~~
2005-4-11 06:40
0
雪    币: 151
活跃值: (66)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
学习,支持
2005-4-11 14:01
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我用OD把注册判断标志给改了。应该说能爆破了吧,可是一点翻页就报错了。郁闷。楼主的破文犹如黑夜之中的一把火炬,引领我向破解之路前进……收藏了。谢谢楼主
2005-4-11 14:32
0
雪    币: 156
活跃值: (48)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
网络验证怎么跳过啊?
2005-9-29 17:28
0
游客
登录 | 注册 方可回帖
返回
//