首页
社区
课程
招聘
[原创]一个非明码比较,无错误提示的crackME-小鸟学注册(2)
发表于: 2005-2-17 17:05 43603

[原创]一个非明码比较,无错误提示的crackME-小鸟学注册(2)

4nil 活跃值
13
2005-2-17 17:05
43603

【软件名称】Bigman's Crackme6
【下载地址】crackme6.rar
【应用平台】Win9x/NT/2000/XP
【软件大小】7K
【破解声明】破解只是感兴趣,无其它目的。失误之处敬请诸位大侠赐教!
【破解工具】PEiD,OD, W32dasm, AspackDie1.41
【软件简介】随便下的一个CrackMe,研究发现其算法不错。。非明码比较,用中间注册码。

========================================================================================
【分析过程】
打开程序试着注册了下,没提示错误,那我想正确总有提示吧。

先检测是否加壳,ASPack 2.x (without poly) -> Alexey Solodovnikov [Overlay]
把它拖到AspackDie1.41图标上,脱壳有些小问题,全部选是。
程序可以打开,那就可以了,脱壳成功。。

进入下一步。
用W32dasm载入,看看用的什么函数来取字符串的,发现熟悉的GetDlgItemTextA,好了,其他也就不看了,直接用OD载入,BP GetDlgItemTextA,F9运行,输入用户名和假码。

name:4nil
Fserial:78787878

CHECK后被断下,按ALT+F9回到程序领空。
按F2下个断在GetDlgItemTextA后面的语句,下次就可以从这里开始了。
让我们先来看代码。

00401528  |. 68 00010000    PUSH 100                                 ; /Count = 100 (256.)
0040152D  |. 8D85 00FFFFFF  LEA EAX,DWORD PTR SS:[EBP-100]           ; |
00401533  |. 50             PUSH EAX                                 ; |Buffer
00401534  |. 6A 65          PUSH 65                                  ; |ControlID = 65 (101.)
00401536  |. FF75 08        PUSH DWORD PTR SS:[EBP+8]                ; |hWnd
00401539  |. E8 FA010000    CALL <JMP.&USER32.GetDlgItemTextA>       ; \GetDlgItemTextA
0040153E  |. 89C3           MOV EBX,EAX
00401540  |. 09DB           OR EBX,EBX
00401542  |. 75 04          JNZ SHORT unpacked.00401548        //用户名不空就跳,否则就挂
00401544  |. 31C0           XOR EAX,EAX
00401546  |. EB 50          JMP SHORT unpacked.00401598
00401548  |> BF BC020000    MOV EDI,2BC
0040154D  |. BE 30000000    MOV ESI,30
00401552  |. B8 48000000    MOV EAX,48
00401557  |. 99             CDQ
00401558  |. F7FB           IDIV EBX
0040155A  |. 29C6           SUB ESI,EAX
0040155C  |. 8D34B6         LEA ESI,DWORD PTR DS:[ESI+ESI*4]
0040155F  |. 29F7           SUB EDI,ESI
00401561  |. 6BFF 6B        IMUL EDI,EDI,6B
00401564  |. 81EF 6CCF0000  SUB EDI,0CF6C
0040156A  |. 81FF 00230000  CMP EDI,2300        //EDI=(2bc-(30-48/namelen)*5)*6b-cf6c,得出的EDI必须在190-2300之间,否则就挂
00401570  |. 7F 08          JG SHORT unpacked.0040157A
00401572  |. 81FF 90010000  CMP EDI,190
00401578  |. 7D 04          JGE SHORT unpacked.0040157E
0040157A  |> 31C0           XOR EAX,EAX
0040157C  |. EB 1A          JMP SHORT unpacked.00401598
0040157E  |> 8D85 00FFFFFF  LEA EAX,DWORD PTR SS:[EBP-100]
00401584  |. 50             PUSH EAX        //用户名地址
00401585  |. 53             PUSH EBX        //用户名长度
00401586  |. FF75 08        PUSH DWORD PTR SS:[EBP+8]
00401589  |. E8 77FDFFFF    CALL unpacked.      00401305

        {
      00401305  /$ 55             PUSH EBP
      00401306  |. 89E5           MOV EBP,ESP
      00401308  |. 81EC 2C040000  SUB ESP,42C
      0040130E  |. 53             PUSH EBX
      0040130F  |. 56             PUSH ESI
      00401310  |. 57             PUSH EDI
      00401311  |. 8DBD FCFEFFFF  LEA EDI,DWORD PTR SS:[EBP-104]
      00401317  |. 8D35 38204000  LEA ESI,DWORD PTR DS:[402038]
      0040131D  |. B9 40000000    MOV ECX,40
      00401322  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
      00401324  |. 8DBD E1FBFFFF  LEA EDI,DWORD PTR SS:[EBP-41F]
      0040132A  |. 8D35 38214000  LEA ESI,DWORD PTR DS:[402138]
      00401330  |. B9 40000000    MOV ECX,40
      00401335  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
      00401337  |. 8DBD E1FDFFFF  LEA EDI,DWORD PTR SS:[EBP-21F]
      0040133D  |. 8D35 38224000  LEA ESI,DWORD PTR DS:[402238]
      00401343  |. B9 40000000    MOV ECX,40
      00401348  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
      0040134A  |. 8DBD E1FCFFFF  LEA EDI,DWORD PTR SS:[EBP-31F]
      00401350  |. 8D35 38234000  LEA ESI,DWORD PTR DS:[402338]
      00401356  |. B9 40000000    MOV ECX,40
      0040135B  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
      0040135D  |. 8DBD DCFBFFFF  LEA EDI,DWORD PTR SS:[EBP-424]
      00401363  |. 8D35 38244000  LEA ESI,DWORD PTR DS:[402438]
      00401369  |. B9 05000000    MOV ECX,5
      0040136E  |. F3:A4          REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
      00401370  |. 8DBD D6FBFFFF  LEA EDI,DWORD PTR SS:[EBP-42A]
      00401376  |. 8D35 3D244000  LEA ESI,DWORD PTR DS:[40243D]
      0040137C  |. B9 03000000    MOV ECX,3
      00401381  |. F3:66:A5       REP MOVS WORD PTR ES:[EDI],WORD PTR DS:[>
      00401384  |. 8DBD E1FEFFFF  LEA EDI,DWORD PTR SS:[EBP-11F]
      0040138A  |. 8D35 43244000  LEA ESI,DWORD PTR DS:[402443]
      00401390  |. B9 1B000000    MOV ECX,1B
      00401395  |. F3:A4          REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
      00401397  |. C745 FC 000000>MOV DWORD PTR SS:[EBP-4],0
      0040139E  |. 68 00010000    PUSH 100                                 ; /Count = 100 (256.)
      004013A3  |. 8D85 E1FCFFFF  LEA EAX,DWORD PTR SS:[EBP-31F]           ; |
      004013A9  |. 50             PUSH EAX                                 ; |Buffer
      004013AA  |. 6A 66          PUSH 66                                  ; |ControlID = 66 (102.)
      004013AC  |. FF75 08        PUSH DWORD PTR SS:[EBP+8]                ; |hWnd
      004013AF  |. E8 84030000    CALL <JMP.&USER32.GetDlgItemTextA>       ; \GetDlgItemTextA
      004013B4  |. 09C0           OR EAX,EAX
      004013B6  |. 0F84 48010000  JE unpacked.00401504        //不能为空,否则挂
      004013BC  |. B8 CF110000    MOV EAX,11CF
      004013C1  |. 0FB68D E1FCFFF>MOVZX ECX,BYTE PTR SS:[EBP-31F]
      004013C8  |. 99             CDQ
      004013C9  |. F7F9           IDIV ECX
      004013CB  |. 83FA 17        CMP EDX,17        //11b8=(11cf-17)必须整除注册码第一位的ASCII值,否则又挂。
      004013CE  |. 74 07          JE SHORT unpacked.      004013D7
      004013D0  |. 31C0           XOR EAX,EAX
      004013D2  |. E9 2D010000    JMP unpacked.00401504
      004013D7  |> 31DB           XOR EBX,EBX
      004013D9  |. EB 0B          JMP SHORT unpacked.      004013E6
      004013DB  |> 8B45 10        /MOV EAX,DWORD PTR SS:[EBP+10]
      004013DE  |. 0FBE0418       |MOVSX EAX,BYTE PTR DS:[EAX+EBX]
      004013E2  |. 0145 FC        |ADD DWORD PTR SS:[EBP-4],EAX
      004013E5  |. 43             |INC EBX
      004013E6  |> 3B5D 0C         CMP EBX,DWORD PTR SS:[EBP+C]
      004013E9  |.^7C F0          \JL SHORT unpacked.      004013DB        //把用户名每位的ASCII值相加,结果在12F850
      004013EB  |. 31DB           XOR EBX,EBX
      004013ED  |. E9 83000000    JMP unpacked.      00401475
      004013F2  |> 8B55 10        /MOV EDX,DWORD PTR SS:[EBP+10]
      004013F5  |. 0FBE3C1A       |MOVSX EDI,BYTE PTR DS:[EDX+EBX]
      004013F9  |. 8B75 FC        |MOV ESI,DWORD PTR SS:[EBP-4]
      004013FC  |. 89D9           |MOV ECX,EBX
      004013FE  |. C1E1 02        |SHL ECX,2
      00401401  |. 89DA           |MOV EDX,EBX
      00401403  |. 42             |INC EDX
      00401404  |. 29D1           |SUB ECX,EDX
      00401406  |. 0FB68C0D E1FEF>|MOVZX ECX,BYTE PTR SS:[EBP+ECX-11F]
      0040140E  |. 89FA           |MOV EDX,EDI
      00401410  |. 31CA           |XOR EDX,ECX
      00401412  |. 89F1           |MOV ECX,ESI
      00401414  |. 0FAFCB         |IMUL ECX,EBX
      00401417  |. 29F1           |SUB ECX,ESI
      00401419  |. 89CE           |MOV ESI,ECX
      0040141B  |. 83F6 FF        |XOR ESI,FFFFFFFF
      0040141E  |. 8DB432 4D01000>|LEA ESI,DWORD PTR DS:[EDX+ESI+14D]
      00401425  |. 8B4D 0C        |MOV ECX,DWORD PTR SS:[EBP+C]
      00401428  |. 89DA           |MOV EDX,EBX
      0040142A  |. 83C2 03        |ADD EDX,3
      0040142D  |. 0FAFCA         |IMUL ECX,EDX
      00401430  |. 0FAFCF         |IMUL ECX,EDI
      00401433  |. 89F0           |MOV EAX,ESI
      00401435  |. 01C8           |ADD EAX,ECX
      00401437  |. B9 0A000000    |MOV ECX,0A
      0040143C  |. 31D2           |XOR EDX,EDX
      0040143E  |. F7F1           |DIV ECX
      00401440  |. 83C2 30        |ADD EDX,30
      00401443  |. 88941D FCFEFFF>|MOV BYTE PTR SS:[EBP+EBX-104],DL
      0040144A  |. 0FB6BC1D FCFEF>|MOVZX EDI,BYTE PTR SS:[EBP+EBX-104]
      00401452  |. 81F7 ACAD0000  |XOR EDI,0ADAC
      00401458  |. 89DE           |MOV ESI,EBX
      0040145A  |. 83C6 02        |ADD ESI,2
      0040145D  |. 89F8           |MOV EAX,EDI
      0040145F  |. 0FAFC6         |IMUL EAX,ESI
      00401462  |. B9 0A000000    |MOV ECX,0A
      00401467  |. 99             |CDQ
      00401468  |. F7F9           |IDIV ECX
      0040146A  |. 83C2 30        |ADD EDX,30
      0040146D  |. 88941D FCFEFFF>|MOV BYTE PTR SS:[EBP+EBX-104],DL
      00401474  |. 43             |INC EBX
      00401475  |> 3B5D 0C         CMP EBX,DWORD PTR SS:[EBP+C]
      00401478  |.^0F8C 74FFFFFF  \JL unpacked.      004013F2        //一系列运算得到部分中间注册码
      0040147E  |. 8D85 FCFEFFFF  LEA EAX,DWORD PTR SS:[EBP-104]
      00401484  |. 50             PUSH EAX
      00401485  |. 6A 54          PUSH 54
      00401487  |. 8D85 DCFBFFFF  LEA EAX,DWORD PTR SS:[EBP-424]
      0040148D  |. 50             PUSH EAX                                 ; |Format
      0040148E  |. 8D85 E1FBFFFF  LEA EAX,DWORD PTR SS:[EBP-41F]           ; |
      00401494  |. 50             PUSH EAX                                 ; |s
      00401495  |. E8 CE020000    CALL <JMP.&USER32.wsprintfA>             ; \wsprintfA//写成'T'+部分中间注册码,我的是T4095
      0040149A  |. 8B7D 0C        MOV EDI,DWORD PTR SS:[EBP+C]        //用户名长度
      0040149D  |. 89F8           MOV EAX,EDI
      0040149F  |. 0FAF45 FC      IMUL EAX,DWORD PTR SS:[EBP-4]        //12F850里用户名每位的ASCII值相加结果
      004014A3  |. B9 64000000    MOV ECX,64
      004014A8  |. 99             CDQ
      004014A9  |. F7F9           IDIV ECX
      004014AB  |. 89D7           MOV EDI,EDX
      004014AD  |. 83C7 30        ADD EDI,30
      004014B0  |. 57             PUSH EDI        //这个后面有用,我的是0x30=48(dec)
      004014B1  |. 8DBD E1FBFFFF  LEA EDI,DWORD PTR SS:[EBP-41F]
      004014B7  |. 57             PUSH EDI
      004014B8  |. 8DBD D6FBFFFF  LEA EDI,DWORD PTR SS:[EBP-42A]
      004014BE  |. 57             PUSH EDI                                 ; |Format
      004014BF  |. 8DBD E1FDFFFF  LEA EDI,DWORD PTR SS:[EBP-21F]           ; |
      004014C5  |. 57             PUSH EDI                                 ; |s
      004014C6  |. E8 9D020000    CALL <JMP.&USER32.wsprintfA>             ; \wsprintfA//前面得到的'T'+中间注册码+'-'+前面计算得的一个EDI的十进制形式,所以我的是'T4095-48'.
      004014CB  |. 83C4 20        ADD ESP,20
      004014CE  |. 8D8D E1FDFFFF  LEA ECX,DWORD PTR SS:[EBP-21F]
      004014D4  |. 83C8 FF        OR EAX,FFFFFFFF
      004014D7  |> 40             /INC EAX
      004014D8  |. 803C01 00      |CMP BYTE PTR DS:[ECX+EAX],0
      004014DC  |.^75 F9          \JNZ SHORT unpacked.      004014D7
      004014DE  |. 50             PUSH EAX                                 ; /Arg3//中间注册码长度
      004014DF  |. 8D85 E1FCFFFF  LEA EAX,DWORD PTR SS:[EBP-31F]           ; |
      004014E5  |. 50             PUSH EAX                                 ; |Arg2//假注册码
      004014E6  |. 8D85 E1FDFFFF  LEA EAX,DWORD PTR SS:[EBP-21F]           ; |
      004014EC  |. 50             PUSH EAX                                 ; |Arg1//中间注册码
      004014ED  |. E8 D0FDFFFF    CALL unpacked.              004012C2     ; \unpacked.              004012C2

                {
              004012C2  /$ 55             PUSH EBP
              004012C3  |. 89E5           MOV EBP,ESP
              004012C5  |. 53             PUSH EBX
              004012C6  |. 56             PUSH ESI
              004012C7  |. 57             PUSH EDI
              004012C8  |. 8B5D 10        MOV EBX,DWORD PTR SS:[EBP+10]
              004012CB  |. 31F6           XOR ESI,ESI
              004012CD  |. 46             INC ESI
              004012CE  |. EB 29          JMP SHORT unpacked.              004012F9
              004012D0  |> 8B55 08        /MOV EDX,DWORD PTR SS:[EBP+8]
              004012D3  |. 0FBE3C32       |MOVSX EDI,BYTE PTR DS:[EDX+ESI]
              004012D7  |. 89F8           |MOV EAX,EDI
              004012D9  |. 83F0 20        |XOR EAX,20
              004012DC  |. B9 0A000000    |MOV ECX,0A
              004012E1  |. 99             |CDQ
              004012E2  |. F7F9           |IDIV ECX
              004012E4  |. 89D7           |MOV EDI,EDX
              004012E6  |. 83C7 30        |ADD EDI,30
              004012E9  |. 8B55 0C        |MOV EDX,DWORD PTR SS:[EBP+C]
              004012EC  |. 0FBE1432       |MOVSX EDX,BYTE PTR DS:[EDX+ESI]
              004012F0  |. 39D7           |CMP EDI,EDX                //关键比较,将中间注册码还原为真注册码逐位比较
              004012F2     74 04          |JE SHORT unpacked.              004012F8
                                        //我把它改成JNE,然后一位位看,也可以直接到栈的12F534直接看,就是换成数字,还有顺序问题.       
              004012F4  |. 31C0           |XOR EAX,EAX
              004012F6  |. EB 08          |JMP SHORT unpacked.00401300
              004012F8  |> 46             |INC ESI
              004012F9  |> 39DE            CMP ESI,EBX
              004012FB  |.^7C D3          \JL SHORT unpacked.              004012D0
              004012FD  |. 31C0           XOR EAX,EAX
              004012FF  |. 40             INC EAX
              00401300  |> 5F             POP EDI
              00401301  |. 5E             POP ESI
              00401302  |. 5B             POP EBX
              00401303  |. 5D             POP EBP
              00401304  \. C3             RETN
                }

      004014F2  |. 83C4 0C        ADD ESP,0C
      004014F5  |. 83F8 00        CMP EAX,0
      004014F8  |. 75 07          JNZ SHORT unpacked.00401501
      004014FA  |. B8 00000000    MOV EAX,0
      004014FF  |. EB 03          JMP SHORT unpacked.00401504
      00401501  |> 31C0           XOR EAX,EAX
      00401503  |. 40             INC EAX
      00401504  |> 5F             POP EDI
      00401505  |. 5E             POP ESI
      00401506  |. 5B             POP EBX
      00401507  |. C9             LEAVE
      00401508  \. C3             RETN
        }

0040158E  |. 83C4 0C        ADD ESP,0C
00401591  |. 09C0           OR EAX,EAX
00401593  |. 74 03          JE SHORT unpacked.00401598
00401595  |. 31C0           XOR EAX,EAX
00401597  |. 40             INC EAX
00401598  |> 5F             POP EDI
00401599  |. 5E             POP ESI
0040159A  |. 5B             POP EBX
0040159B  |. C9             LEAVE
0040159C  \. C3             RETN

========================================================================================
【分析总结】
整个过程都是以EAX是否为0为标记,错误则置0.
算法过程比较清晰了,只是注册机比较麻烦,后来者假如能贴上注册机原码,万分感激.

=======================================================================================
【版权信息】Copyright  2005 4nil[NCG]. All Rights Reserved.                           
                       
2005-2-17


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

收藏
免费 7
支持
分享
最新回复 (34)
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
2
支持,继续努力!
2005-2-17 21:00
0
雪    币: 313
活跃值: (440)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
3
昨天研究了下,贴个注册机.C原码,VC++6.0编译通过.
#include <string.h>
#include <stdio.h>

int main()
{
        char name[20],midserial[30],lastnum[6];
        char table[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        unsigned long serial=0,name_len=0,serial_len,i,total=0,temp;

        printf("\t|*------Keygen 4 Bigman's CrackMe#6------*|\n\n");

        printf("Input ur name:");
        scanf("%s",name);
        name_len=strlen(name);
       
        for(i=0;i<name_len;i++)
        {
                total+=name[i];       
        }
        midserial[0]='T';

        for(i=0;i<name_len;i++)
        {
                temp=(((((name[i]^table[i*3-1])+((total*i-total)^0xffffffff)+0x14d+(i+3)*name_len*name[i])%10+0x30)^0xadac)*(i+2))%10+0x30;
                midserial[i+1]=temp;
        }
        midserial[name_len+1]='\0';

        temp=(name_len*total)%0x64+0x30;
        ultoa(temp,lastnum,10);
        strcat(midserial,"-");
        strcat(midserial,lastnum);
        serial_len=strlen(midserial);
        for(i=1;i<serial_len;i++)
        {
                midserial[i]=((midserial[i]^0x20)%10+0x30);
        }

        printf("Serial:%s\n",midserial);
        getch();
return 0;
}
2005-2-18 09:36
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
4
支持~~

我想说一点与 crackme 无关的地方,就是标准 ANSI C 程序的 main 是返回 int 的,所以建议你的 C程序用  int main()  ,在最后的地方  return 0;

虽然很多编译器不介意  (甚至市面上有一些 C 语言的书籍也误写成不返回) ,但是尽量跟随标准是普遍的做法  
2005-2-18 10:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
很想知道注册机源码里
for(i=0;i<name_len;i++)
  {
    temp=(((((name[i]^table[i*3-1])+((total*i-total)^0xffffffff)+0x14d+(i+3)*name_len*name[i])%10+0x30)^0xadac)*(i+2))%10+0x30;
    midserial[i+1]=temp;
  }
  midserial[name_len+1]='\0';

为什么是+0x14d?

按OD看来。
注册机源码中这个 0x14d 应该是
0040141E    |.  8DB432 4>|lea esi,dword ptr ds:[edx+esi+14D]
00401425    |.  8B4D 0C  |mov ecx,dword ptr ss:[ebp+C]
00401428    |.  89DA     |mov edx,ebx
0040142A    |.  83C2 03  |add edx,3
0040142D    |.  0FAFCA   |imul ecx,edx
00401430    |.  0FAFCF   |imul ecx,edi
00401433    |.  89F0     |mov eax,esi

里面的esi吧,怎么这样0x14d 就代替了esi呢?

这个lea esi,dword ptr ds:[edx+esi+14D]
在C语言里怎样表达?

很想得到答案。
2005-10-7 13:57
0
雪    币: 313
活跃值: (440)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
6
最初由 dqkx 发布
很想知道注册机源码里
for(i=0;i<name_len;i++)
{
temp=(((((name^table[i*3-1])+((total*i-total)^0xffffffff)+0x14d+(i+3)*name_len*name)%10+0x30)^0xadac)*(i+2))%10+0x30;
midserial[i+1]=temp;
........


就是ESI+=EDX+0x14D
2005-11-25 07:54
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
进入下一步。

新手提个问:

我按照你的步骤也用PEID查了下壳,结论当然一样,自己尝试并脱了壳。

问题在:用W32dasm载入,看看用的什么函数来取字符串的,发现熟悉的GetDlgItemTextA,好了,其他也就不看了,直接用OD载入,BP GetDlgItemTextA,F9运行,

我用shift+F2 命令输入:BP GetDlgItemTextA 确定后F9运行,输入用户名和假码。但是OD没有动静,断不下来,问是为什么,错在那里。谢谢

后再次阅读OD帮助信息,同样下断后断后信息为:
断点,项目 0
地址=004011CB unpacked.<ModuleEntryPoint>
模块=unpacked
激活=当 BP GetDlgItemTextA
反汇编=mov eax,dword ptr fs:[1]

双击以上当然来到的是:地址=004011CB   而非你的:
00401528  |. 68 00010000    PUSH 100                                 ;

请问是何原因,我错在那里,你的地址是自动来到这里还是手动找到的。

再就是希望你能帮助解释一下:/Count = 100 (256.)
                            |Buffer
                            |ControlID = 65 (101.)  这几句编码注释所代表的意思。强烈谢谢,100 比如这种前边:100  和后边括号(256.),是分别代表十六进制和十进制吗(我是从256右下那个点猜测的,呵呵)不知对否,请提点。谢谢
2005-11-25 21:06
0
雪    币: 313
活跃值: (440)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
8
好多问题哦,这个文章是半年前写的,具体细节我也不清楚了,不过我想那个00401528  |. 68 00010000    PUSH 100      应该是手动点的把,因为我习惯点一个函数的开头.PUSH什么什么的.

:/Count = 100 (256.)
|Buffer
|ControlID = 65 (101.)

100代表16进制,256是十进制,这几句是注释函数的几个参数.
2005-11-26 23:30
0
雪    币: 6335
活跃值: (3781)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
9
[求助]我用peid查壳怎么查不出来尼
2005-11-28 12:50
0
雪    币: 221
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
10
int main&return 0;
好像这是ANSI C++吧~~~~~~~~~~~~
不能把C和C++混为一谈
2005-11-29 22:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不错,下来看看
2005-12-6 12:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
下下来练练
2005-12-16 20:21
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
不详细啊,菜鸟看不懂啊
2005-12-17 17:46
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
昨天刚注册,好久才有机会注册 。以后长住了

搞定一个,我可还没看上面的注解呢

qxstudio

T610107203780
2005-12-18 22:39
0
雪    币: 472
活跃值: (52)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
Name的长度在3 到 9 之间
Serial的第一位可以为: $ * 6 8 ? H Q T l ~
Serial只比较前N位
2010-3-27 23:11
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
想问问楼主里面的附近信息是干什么用的啊
2010-3-29 09:30
0
雪    币: 302
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
两个多小时,,看出苗头了...二楼的注册机写的真好...真佩服..牛人
.
2010-8-4 11:21
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
[QUOTE=4nil;69931]
      00401311  |. 8DBD FCFEFFFF  LEA EDI,DWORD PTR SS:[EBP-104]
      00401317  |. 8D35 38204000  LEA ESI,DWORD PTR DS:[402038]
      0040131D  |. B9 40000000    MOV ECX,40
      00401322  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
      00401324  |. 8DBD E1FBFFFF  LEA EDI,DWORD PTR SS:[EBP-41F]
      0040132A  |. 8D35 38214000  LEA ESI,DWORD PTR DS:[402138]
      00401330  |. B9 40000000    MOV ECX,40
      00401335  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
      00401337  |. 8DBD E1FDFFFF  LEA EDI,DWORD PTR SS:[EBP-21F]
      0040133D  |. 8D35 38224000  LEA ESI,DWORD PTR DS:[402238]
      00401343  |. B9 40000000    MOV ECX,40
      00401348  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
      0040134A  |. 8DBD E1FCFFFF  LEA EDI,DWORD PTR SS:[EBP-31F]
      00401350  |. 8D35 38234000  LEA ESI,DWORD PTR DS:[402338]
      00401356  |. B9 40000000    MOV ECX,40
      0040135B  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
      0040135D  |. 8DBD DCFBFFFF  LEA EDI,DWORD PTR SS:[EBP-424]
      00401363  |. 8D35 38244000  LEA ESI,DWORD PTR DS:[402438]
      00401369  |. B9 05000000    MOV ECX,5
      0040136E  |. F3:A4          REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
      00401370  |. 8DBD D6FBFFFF  LEA EDI,DWORD PTR SS:[EBP-42A]
      00401376  |. 8D35 3D244000  LEA ESI,DWORD PTR DS:[40243D]
      0040137C  |. B9 03000000    MOV ECX,3
      00401381  |. F3:66:A5       REP MOVS WORD PTR ES:[EDI],WORD PTR DS:[>
      00401384  |. 8DBD E1FEFFFF  LEA EDI,DWORD PTR SS:[EBP-11F]
      0040138A  |. 8D35 43244000  LEA ESI,DWORD PTR DS:[402443]
      00401390  |. B9 1B000000    MOV ECX,1B
      00401395  |. F3:A4          REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>

[/QUOTE]

这段代码干嘛的呢?
2010-9-16 19:53
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
这个好像是初始化一段内存,这些内存在后面要用到!

楼主的注册机有点不完善,就是当用户名比较长的时候,“A。。。。Z”这个字符串就用不到了,需要特别处理下。在内存分布上A到Z的内存块后面紧跟的是中间注册码的内存块,需要用到已经产生的中间注册码中的字符,如果索引超过中间注册码的的最大索引值,就要用00代替。
2010-10-19 18:45
0
雪    币: 129
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
体力活之后才是智慧的较量。
2011-9-13 23:15
0
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
21
唉,好老的帖子,向前辈学习
2011-9-14 13:46
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
算法分析好复杂呀 看来要更加努力学习了
2011-9-24 18:43
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
厉害!!!
新手学习汇编中……
感觉要在加解密学习中有所成就感很难很难啊………………
2011-9-24 21:06
0
雪    币: 139
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
各位请原谅,最近看crakme 2007,有个问题不懂,就把老帖子翻出来了。请问 name[i]^table[i*3-1]) 是不是相当于的n的m次方吗? 在上面的反汇编中哪里蕴含着这样的信息啊?
2012-2-22 16:18
0
雪    币: 698
活跃值: (4564)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
[QUOTE=seuer;1046886]各位请原谅,最近看crakme 2007,有个问题不懂,就把老帖子翻出来了。请问 name[i]^table[i*3-1]) 是不是相当于的n的m次方吗? 在上面的反汇编中哪里蕴含着这样的信息啊?[/QUOTE]

(i<<2)-(i+1) = i*3-1
2012-5-7 13:35
0
游客
登录 | 注册 方可回帖
返回
//