首页
社区
课程
招聘
本人写的一个CrackMe,欢迎大家破解
发表于: 2006-8-26 00:28 7546

本人写的一个CrackMe,欢迎大家破解

2006-8-26 00:28
7546

如题,欢迎大家破解!!
如果能写出注册机,请发送到Prudence@163.com


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (23)
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
2
明码比较,继续...
2006-8-26 09:06
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
3
强,注册机搞定没?
2006-8-26 10:04
0
雪    币: 235
活跃值: (41)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
alpsdew
3E89BF28-5B58E317
呵呵,明码,大家都来试试
2006-8-26 15:03
0
雪    币: 221
活跃值: (20)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
xiaohui_82
CBF050A3-628635E4
继续看,怎么做的,晕
2006-8-26 15:43
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
6
我要的是注册机,大家继续努力
2006-8-26 17:17
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
7
WAKU
D33DB272-69EB3F9B

163的邮件死也发不过去,用看雪站内邮件发给你了,注意查收
2006-8-26 22:45
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个CrackMe在算法内部只会比对注册名的前八位!
如果输入的注册名小于8位就加上"Prudence"再取前8位!
例:
  #小于8位的情况:
        yuxmy        C14BB506-1862E575
        yuxmy  ----> yuxmyPrudence --在算法内取前8位--> yuxmyPru

  #大于等于8位的情况:
因为;  yuxmyyuxm(9位)         FC84FBC4-A5389C69
        yuxmyyuxm  在算法内取前8位--> yuxmyyux

所以: yuxmyyux和yuxmyyuxm和yuxmyyuxmy还有yuxmyyux+任意字符,的注册码都是FC84FBC4-A5389C69

哈哈!但我还未能写出注册机,注册算法还在看,不过和"This is crack."的Ascii码有密切关系!
2006-8-27 06:38
0
雪    币: 256
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
9
用fi查壳,发现无壳,用od加载,
通过GetWindowTextA函数很容易下断点跟踪到这里
0041D59E  |.  FF15 10334200 CALL    DWORD PTR DS:[<&USER32.GetWindow>; \GetWindowTextA      //取用户和密码
0041D5A4  |.  8B4D 10       MOV     ECX, DWORD PTR SS:[EBP+10]
0041D5A7  |.  6A FF         PUSH    -1
0041D5A9  |.  E8 7BA9FFFF   CALL    CrackMe2.00417F29
0041D5AE      EB 0B         JMP     SHORT CrackMe2.0041D5BB
0041D5B0  |>  8B45 10       MOV     EAX, DWORD PTR SS:[EBP+10]
0041D5B3  |.  FF30          PUSH    DWORD PTR DS:[EAX]               ; /Arg2
0041D5B5  |.  56            PUSH    ESI                              ; |Arg1
0041D5B6  |.  E8 4DF7FFFF   CALL    CrackMe2.0041CD08                ; \CrackMe2.0041CD08
0041D5BB  |>  5F            POP     EDI
0041D5BC  |.  5E            POP     ESI
0041D5BD  |.  5D            POP     EBP
0041D5BE  \.  C2 0C00       RET     0C

判断用户明和密码的关键地方
004016FD   .  55            PUSH    EBP
004016FE   .  56            PUSH    ESI
004016FF   .  57            PUSH    EDI
00401700   .  8BF1          MOV     ESI, ECX
00401702   .  894424 0C     MOV     DWORD PTR SS:[ESP+C], EAX
00401706   .  C74424 40 000>MOV     DWORD PTR SS:[ESP+40], 0
0040170E   .  894424 14     MOV     DWORD PTR SS:[ESP+14], EAX
00401712   .  8B0D 54C14200 MOV     ECX, DWORD PTR DS:[42C154]
00401718   .  A1 50C14200   MOV     EAX, DWORD PTR DS:[42C150]
0040171D   .  8B15 58C14200 MOV     EDX, DWORD PTR DS:[42C158]
00401723   .  894C24 28     MOV     DWORD PTR SS:[ESP+28], ECX
00401727   .  8A0D 60C14200 MOV     CL, BYTE PTR DS:[42C160]
0040172D   .  894424 24     MOV     DWORD PTR SS:[ESP+24], EAX
00401731   .  A1 5CC14200   MOV     EAX, DWORD PTR DS:[42C15C]
00401736   .  884C24 34     MOV     BYTE PTR SS:[ESP+34], CL
0040173A   .  6A 01         PUSH    1
0040173C   .  8BCE          MOV     ECX, ESI
0040173E   .  C64424 44 01  MOV     BYTE PTR SS:[ESP+44], 1
00401743   .  895424 30     MOV     DWORD PTR SS:[ESP+30], EDX
00401747   .  894424 34     MOV     DWORD PTR SS:[ESP+34], EAX
0040174B   .  E8 F4890100   CALL    CrackMe2.0041A144
00401750   .  8DBE 90000000 LEA     EDI, DWORD PTR DS:[ESI+90]
00401756   .  8D4C24 14     LEA     ECX, DWORD PTR SS:[ESP+14]
0040175A   .  57            PUSH    EDI
0040175B   .  E8 C2660100   CALL    CrackMe2.00417E22
00401760   .  8B17          MOV     EDX, DWORD PTR DS:[EDI]    //用户名进edx
00401762   .  8B6A F8       MOV     EBP, DWORD PTR DS:[EDX-8]       //用户明字符串长度进ebp
00401765   .  85ED          TEST    EBP, EBP                       
00401767   .  0F84 F8000000 JE      CrackMe2.00401865         //判断是否为空,是则跳转
0040176D   .  83FD 08       CMP     EBP, 8              //字符串长度与8比较
00401770   .  7D 0D         JGE     SHORT CrackMe2.0040177F           //大于等于则跳走
00401772   .  68 44C14200   PUSH    CrackMe2.0042C144                ;  prudence  //作者姓名进栈
00401777   .  55            PUSH    EBP
00401778   .  8BCF          MOV     ECX, EDI
0040177A   .  E8 43420100   CALL    CrackMe2.004159C2      //合并输入的用户名和作者姓名
0040177F   >  55            PUSH    EBP
00401780   .  8BCF          MOV     ECX, EDI
00401782   .  E8 53670100   CALL    CrackMe2.00417EDA        
00401787   .  8D4C24 24     LEA     ECX, DWORD PTR SS:[ESP+24]
0040178B   .  8D5424 1C     LEA     EDX, DWORD PTR SS:[ESP+1C]      
0040178F   .  51            PUSH    ECX
00401790   .  52            PUSH    EDX
00401791   .  50            PUSH    EAX
00401792   .  E8 B9FEFFFF   CALL    CrackMe2.00401650     
00401797   .  8B4424 2C     MOV     EAX, DWORD PTR SS:[ESP+2C]
0040179B   .  8B4C24 28     MOV     ECX, DWORD PTR SS:[ESP+28]
0040179F   .  50            PUSH    EAX
004017A0   .  51            PUSH    ECX
004017A1   .  8D5424 20     LEA     EDX, DWORD PTR SS:[ESP+20]
004017A5   .  68 3CC14200   PUSH    CrackMe2.0042C13C                ;  %x-%x     //序列号的格式  
004017AA   .  52            PUSH    EDX
004017AB   .  E8 CF450100   CALL    CrackMe2.00415D7F                  //应该是第一次计算序列号  
004017B0   .  83C4 1C       ADD     ESP, 1C
004017B3   .  8D4C24 0C     LEA     ECX, DWORD PTR SS:[ESP+C]
004017B7   .  E8 B5670100   CALL    CrackMe2.00417F71         //第二次计算序列号  (都没有仔细去跟踪计算算法,感觉比较难)
004017BC   .  8D4C24 0C     LEA     ECX, DWORD PTR SS:[ESP+C]
004017C0   .  E8 BE670100   CALL    CrackMe2.00417F83
004017C5   .  8B86 94000000 MOV     EAX, DWORD PTR DS:[ESI+94]       //第三次计算序列号(最终正确的序列号)
004017CB   .  50            PUSH    EAX                              ; /Arg2     //输入的密码进栈
004017CC   .  8B4424 10     MOV     EAX, DWORD PTR SS:[ESP+10]       ; |
004017D0   .  50            PUSH    EAX                              ; |Arg1         //正确的密码进栈
004017D1   .  E8 10800000   CALL    CrackMe2.004097E6                ; \CrackMe2.004097E6   //应该是比较密码的函数吧
004017D6   .  83C4 08       ADD     ESP, 8                          
004017D9   .  85C0          TEST    EAX, EAX
004017DB      0F85 84000000 JNZ     CrackMe2.00401865                //关键一跳,爆破点
004017E1   .  68 30C14200   PUSH    CrackMe2.0042C130
004017E6   .  8D4C24 1C     LEA     ECX, DWORD PTR SS:[ESP+1C]
004017EA   .  E8 68650100   CALL    CrackMe2.00417D57
004017EF   .  68 14C14200   PUSH    CrackMe2.0042C114
004017F4   .  8D4C24 14     LEA     ECX, DWORD PTR SS:[ESP+14]
004017F8   .  C64424 44 02  MOV     BYTE PTR SS:[ESP+44], 2
004017FD   .  E8 55650100   CALL    CrackMe2.00417D57
00401802   .  8D4C24 18     LEA     ECX, DWORD PTR SS:[ESP+18]
00401806   .  C64424 40 03  MOV     BYTE PTR SS:[ESP+40], 3
0040180B   .  51            PUSH    ECX
0040180C   .  8BCE          MOV     ECX, ESI
0040180E   .  E8 AD000000   CALL    CrackMe2.004018C0
00401813   .  68 EE030000   PUSH    3EE
00401818   .  8BCE          MOV     ECX, ESI
0040181A   .  E8 53920100   CALL    CrackMe2.0041AA72
0040181F   .  8D5424 10     LEA     EDX, DWORD PTR SS:[ESP+10]
00401823   .  8BCE          MOV     ECX, ESI
00401825   .  52            PUSH    EDX
00401826   .  8BF8          MOV     EDI, EAX
00401828   .  E8 93000000   CALL    CrackMe2.004018C0
0040182D   .  8B4424 14     MOV     EAX, DWORD PTR SS:[ESP+14]
00401831   .  8D4C24 10     LEA     ECX, DWORD PTR SS:[ESP+10]
00401835   .  50            PUSH    EAX
00401836   .  6A 00         PUSH    0
00401838   .  E8 85410100   CALL    CrackMe2.004159C2
0040183D   .  8B4C24 10     MOV     ECX, DWORD PTR SS:[ESP+10]
00401841   .  51            PUSH    ECX
00401842   .  8BCF          MOV     ECX, EDI
00401844   .  E8 E8920100   CALL    CrackMe2.0041AB31
00401849   .  8D4C24 10     LEA     ECX, DWORD PTR SS:[ESP+10]
0040184D   .  C64424 40 02  MOV     BYTE PTR SS:[ESP+40], 2
00401852   .  E8 D6640100   CALL    CrackMe2.00417D2D
00401857   .  8D4C24 18     LEA     ECX, DWORD PTR SS:[ESP+18]
0040185B   .  C64424 40 01  MOV     BYTE PTR SS:[ESP+40], 1
00401860   .  E8 C8640100   CALL    CrackMe2.00417D2D
00401865   >  8D4C24 14     LEA     ECX, DWORD PTR SS:[ESP+14]
00401869   .  C64424 40 00  MOV     BYTE PTR SS:[ESP+40], 0
0040186E   .  E8 BA640100   CALL    CrackMe2.00417D2D
00401873   .  8D4C24 0C     LEA     ECX, DWORD PTR SS:[ESP+C]
00401877   .  C74424 40 FFF>MOV     DWORD PTR SS:[ESP+40], -1
0040187F   .  E8 A9640100   CALL    CrackMe2.00417D2D
00401884   .  8B4C24 38     MOV     ECX, DWORD PTR SS:[ESP+38]
00401888   .  5F            POP     EDI
00401889   .  5E            POP     ESI
0040188A   .  5D            POP     EBP
0040188B   .  64:890D 00000>MOV     DWORD PTR FS:[0], ECX
00401892   .  83C4 38       ADD     ESP, 38
00401895   .  C3            RET
感觉计算序列号函数很麻烦,不知道是不是有错误的地方,希望高手指点
2006-8-27 06:53
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
引用coldpine的:

00401790 . 52 PUSH EDX
00401791 . 50 PUSH EAX
00401792 . E8 B9FEFFFF CALL CrackMe2.00401650
00401797 . 8B4424 2C MOV EAX, DWORD PTR SS:[ESP+2C]
0040179B . 8B4C24 28 MOV ECX, DWORD PTR SS:[ESP+28]
0040179F . 50 PUSH EAX
004017A0 . 51 PUSH ECX
004017A1 . 8D5424 20 LEA EDX, DWORD PTR SS:[ESP+20]
004017A5 . 68 3CC14200 PUSH CrackMe2.0042C13C ; %x-%x   //序列号的格式
004017AA . 52 PUSH EDX
004017AB . E8 CF450100 CALL CrackMe2.00415D7F //应该是第一次计算序列号  
004017B0 . 83C4 1C ADD ESP, 1C
004017B3 . 8D4C24 0C LEA ECX, DWORD PTR SS:[ESP+C]
004017B7 . E8 B5670100 CALL CrackMe2.00417F71         //第二次计算序列号  (都没有仔细去跟踪计算算法,感觉比较难)
004017BC . 8D4C24 0C LEA ECX, DWORD PTR SS:[ESP+C][I]

00401792 . E8 B9FEFFFF CALL CrackMe2.00401650  //这才是计算序列号的核心算法!要先看这个Call

00401650  /$  83EC 08       SUB ESP,8
00401653  |.  8B5424 14     MOV EDX,DWORD PTR SS:[ESP+14]
00401657  |.  8B4C24 0C     MOV ECX,DWORD PTR SS:[ESP+C]
0040165B  |.  53            PUSH EBX
0040165C  |.  55            PUSH EBP
0040165D  |.  56            PUSH ESI
0040165E  |.  8B32          MOV ESI,DWORD PTR DS:[EDX]
00401660  |.  8B01          MOV EAX,DWORD PTR DS:[ECX]
00401662  |.  8B49 04       MOV ECX,DWORD PTR DS:[ECX+4]
00401665  |.  897424 18     MOV DWORD PTR SS:[ESP+18],ESI
00401669  |.  8B72 04       MOV ESI,DWORD PTR DS:[EDX+4]
0040166C  |.  897424 20     MOV DWORD PTR SS:[ESP+20],ESI
00401670  |.  8B72 08       MOV ESI,DWORD PTR DS:[EDX+8]
00401673  |.  8B52 0C       MOV EDX,DWORD PTR DS:[EDX+C]
00401676  |.  897424 0C     MOV DWORD PTR SS:[ESP+C],ESI
0040167A  |.  895424 10     MOV DWORD PTR SS:[ESP+10],EDX            
0040167E  |.  57            PUSH EDI
0040167F  |.  33D2          XOR EDX,EDX
00401681  |.  BE 20000000   MOV ESI,20
00401686  |>  8B5C24 1C     /MOV EBX,DWORD PTR SS:[ESP+1C]           
0040168A  |.  8B6C24 24     |MOV EBP,DWORD PTR SS:[ESP+24]           
0040168E  |.  8BF9          |MOV EDI,ECX                             
00401690  |.  33D9          |XOR EBX,ECX                             
00401692  |.  81EA 4786C861 |SUB EDX,61C88647                        
00401698  |.  03DD          |ADD EBX,EBP                             
0040169A  |.  C1EF 05       |SHR EDI,5                              
0040169D  |.  33FA          |XOR EDI,EDX                             
0040169F  |.  8BE9          |MOV EBP,ECX                             
004016A1  |.  C1E5 04       |SHL EBP,4                              
004016A4  |.  03DF          |ADD EBX,EDI                              
004016A6  |.  03EB          |ADD EBP,EBX                           
004016A8  |.  8B5C24 10     |MOV EBX,DWORD PTR SS:[ESP+10]           
004016AC  |.  03C5          |ADD EAX,EBP                             
004016AE  |.  8B6C24 14     |MOV EBP,DWORD PTR SS:[ESP+14]           
004016B2  |.  8BF8          |MOV EDI,EAX                             
004016B4  |.  33D8          |XOR EBX,EAX                             
004016B6  |.  C1EF 05       |SHR EDI,5                              
004016B9  |.  03DD          |ADD EBX,EBP                             
004016BB  |.  33FA          |XOR EDI,EDX                             
004016BD  |.  8BE8          |MOV EBP,EAX                             
004016BF  |.  03DF          |ADD EBX,EDI                             
004016C1  |.  C1E5 04       |SHL EBP,4                              
004016C4  |.  03EB          |ADD EBP,EBX                             
004016C6  |.  03CD          |ADD ECX,EBP                             
004016C8  |.  4E            |DEC ESI                                 
004016C9  |.^ 75 BB         \JNZ SHORT CrackMe2.00401686
004016CB  |.  8B5424 20     MOV EDX,DWORD PTR SS:[ESP+20]
004016CF  |.  5F            POP EDI
004016D0  |.  5E            POP ESI
004016D1  |.  5D            POP EBP
004016D2  |.  8902          MOV DWORD PTR DS:[EDX],EAX
004016D4  |.  894A 04       MOV DWORD PTR DS:[EDX+4],ECX
004016D7  |.  5B            POP EBX
004016D8  |.  83C4 08       ADD ESP,8
004016DB  \.  C3            RETN

一起分析下这个算法吧!我也在看啊!^_^
2006-8-27 07:38
0
雪    币: 112
活跃值: (16)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
11
嘿嘿!我写的注册机!楼主看看怎么样

unit key;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, WinSkinData, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    SkinData1: TSkinData;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Image1: TImage;
    Label3: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
      Application.MessageBox('本注册机由  壹只老虎  制作!QQ:609841314','关于',MB_ICONINFORMATION+MB_OK);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
     Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   name,code,str1,str2:string;
   name1,name2,edx,ebx,ecx,edi,eax,ebp:LongWord;
   i:integer;
   s:char;
begin
     name:=edit1.Text;
     if length(name)<8 then
         name:=name+'Prudence';  //前面四位
     name1:=ord(name[1])+ord(name[2])*256+ord(name[3])*256*256+ord(name[4])*256*256*256;
     name2:=ord(name[5])+ord(name[6])*256+ord(name[7])*256*256+ord(name[8])*256*256*256;
     edx:=0;
     eax:=name1;
     ecx:=name2;
     for i:=1 to 32 do
         begin
              ebp:=544434464 ;
              edi:=ecx;
              ebx:=1936287828 xor ecx;
              edx:=edx-1640531527;
              ebx:=ebp+ebx;
              edi:=edi shr 5;
              edi:=edi xor edx;
              ebp:=ecx;
              ebp:=ebp shl 4;
              ebx:=ebx+edi;
              ebp:=ebp+ebx;
              ebx:=1919098977;
              eax:=eax+ebp;
              ebp:=778789729;
              edi:=eax;
              ebx:=ebx xor eax;
              edi:=edi shr 5;
              ebx:=ebp+ebx;
              edi:=edi xor edx;
              ebp:=eax;
              ebx:=edi+ebx;
              ebp:=ebp shl 4;
              ebp:=ebp+ebx;
              ecx:=ecx+ebp;
          end;
     str1:=inttohex(eax,2);
     str2:=inttohex(ecx,2);
     code:=str1+'-'+str2;
     for i:=1 to pos('-',code) do
         begin
              s:=code[i];
              code[i]:=code[length(code)-i+1];
              code[length(code)-i+1]:=s;
         end;
     edit2.Text:=code;
end;

end.
2006-8-27 13:20
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
12
楼上的能否把你的注册机编译下上传下,这个只是crackme的注册机,不打紧。
这几天谢谢大家的支持,软件之所以用明码比较,是让大家更加好的写注册机。
2006-8-27 16:09
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
13
编译好的EXE
上传的附件:
2006-8-27 16:45
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
iwalynet
88381099-09C0AFCA
2006-8-27 18:48
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
15
13楼你的keygen无法运行
2006-8-28 01:22
0
雪    币: 132
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
不能运行!
2006-8-28 08:36
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
17
不会吧,命令行的程序都不能运行 ?

显示什么错误啊?
2006-8-28 08:57
0
雪    币: 112
活跃值: (16)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
18
兄弟实在不好意思,我权限低,传不了,给你个连接!
完整破文我发在BCG了!
这是我的破文
http://bbs.abcbit.com/thread-180003-1-1.html

下面是注册机
http://bbs.abcbit.com/attachment.php?aid=90187
2006-8-28 09:10
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
19
能否传一份到看雪来!!!!文章!
2006-8-28 10:39
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
20
碰到容易的大家出手都好快啊,可惜来晚了,结果出来就不玩了
2006-8-28 13:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
DWORD n1,n2,n3,n4;
bool crack(const char * in ,char *out)
{
        DWORD key1,key2;
        const char * key="This is a crack.";
        char buf[100];
        strcpy(buf,in);
        int len=strlen(buf);
        if(len>8)
        {
                return false;
        }
        else if(len<8)
        {
                strcat(buf,"Prudence");
        }
        void * name=buf;
    __asm
        {
                pushad
         push ebp
                 mov edx,key
                 mov ecx,name
                 mov     esi, dword ptr ds:[edx]   
                        mov     eax, dword ptr ds:[ecx]   
                        mov     ecx, dword ptr ds:[ecx+4]  
                        mov     n1, esi
                        mov     esi, dword ptr ds:[edx+4]  
                        mov     n2, esi
                        mov     esi, dword ptr ds:[edx+8]  
                        mov     edx, dword ptr ds:[edx+0xC]  
                        mov     n3, esi  
                        mov     n4, edx
                        push    edi                        
                        xor     edx, edx                  
                        mov     esi, 0x20
CrackMe2_00401686:                       
                        mov     ebx, n1
                        mov     ebp, n2
                        mov     edi, ecx                  
                        xor     ebx, ecx                  
                        sub     edx, 0x61C88647              
                        add     ebx, ebp                  
                        shr     edi, 5                     
                        xor     edi, edx                  
                        mov     ebp, ecx                  
                        shl     ebp, 4                     
                        add     ebx, edi                  
                        add     ebp, ebx                  
                        mov     ebx, n3
                        add     eax, ebp                  
                        mov     ebp, n4
                        mov     edi, eax                  
                        xor     ebx, eax                  
                        shr     edi, 5                     
                        add     ebx, ebp                  
                        xor     edi, edx                  
                        mov     ebp, eax                  
                        add     ebx, edi                  
                        shl     ebp, 4                     
                        add     ebp, ebx                  
                        add     ecx, ebp                  
                        dec     esi                        
                        jnz     short CrackMe2_00401686
                        pop edi
                        pop ebp
                        mov key1,eax
                        mov key2,ecx
                        popad
        }
    sprintf(buf,"%08X-%08X",key1,key2);
        strrev(buf);
    strcpy(out,buf);
    return true;
       
}
2006-8-28 16:14
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
原来注册机是这样写的!哈哈!向大家学习了!
能不能请大虾解释它的算法呢!
2006-8-28 18:33
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
23
这么久了,就公布下答案吧!!
其实这个程序破解并不难,只要认真分析下算法,软件其实只是简单的采用了下TEA算法。
用户名不足8位,补上prudence到8位,超出8就去尾。
正如8楼所说
把用户名补足8字节做为输入端
key "This is crack."
注册码其实只是把输出端逆向一下,嘿嘿。(TEA算法输出端是8字节的)
详细请见:
http://bbs.pediy.com/showthread.php?s=&threadid=31171
大家不要扔砖头打我哦!!痛
我说了不敢了嘛!!!
2006-8-29 01:37
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
最初由 壹只老虎 发布
兄弟实在不好意思,我权限低,传不了,给你个连接!
完整破文我发在BCG了!
这是我的破文
http://bbs.abcbit.com/thread-180003-1-1.html

........

我看不了,能否传个到我邮箱weihang6@yahoo.com.cn
我有权限帮你传
我不是版主
我不能编辑

我跟帖传。
2006-8-29 10:17
0
游客
登录 | 注册 方可回帖
返回
//