首页
社区
课程
招聘
很好玩的CRACK ME加 算法 !可以下了!
发表于: 2005-2-14 01:09 5912

很好玩的CRACK ME加 算法 !可以下了!

2005-2-14 01:09
5912
呵呵,刚刚发现了一个很好玩的CRACK ME,用的过关制哦,一关比一关难~~(废话,难道一关比一关简单? )

不知道大家玩过了没有?呵呵,不过呢~~最好不要爆破拉,算法其实还比较简单~~~~~我在写一个算法的教程,过两天贴出来,呵呵

我把文件放在我的SINA网络箱里面了,把下面的连接放在IE可以直接下了~~

846K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3k6J5k6h3g2Q4x3X3g2V1k6$3y4S2M7W2)9J5k6h3y4G2L8g2)9J5c8U0f1J5j5%4u0S2j5$3E0Q4x3V1k6F1N6h3I4D9P5W2)9J5k6h3g2^5k6b7`.`.

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 214
活跃值: (86)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
呵呵,这是一个很有趣的CRACK ME,分了好几关,这里简单写一下前三关的算法,大家见笑了~有不足还
请指出。

第一关:呵呵,这个非常简单拉,用WINHEX或者反汇编就能直接看见注册码了。
     qJT62aWfviq0P57JGs2FelQkX  这个就是注册码咯~~~

第二关:输入姓名和假码以后有错误提示,我们反汇编,我们直接看代码好了~~

:00401AE4 8D4C247C                lea ecx, dword ptr [esp+7C]
:00401AE8 6A33                    push 00000033
:00401AEA 51                      push ecx
:00401AEB 68ED030000              push 000003ED
:00401AF0 8BCB                    mov ecx, ebx

* Reference To: MFC42.Ordinal:0C1A, Ord:0C1Ah
                                  |
:00401AF2 E8E7100000              Call 00402BDE
:00401AF7 8D542414                lea edx, dword ptr [esp+14]
:00401AFB 52                      push edx

* Reference To: KERNEL32.lstrlenA, Ord:02A1h
                                  |
:00401AFC FF1500404000            Call dword ptr [00404000]
:00401B02 8BF0                    mov esi, eax
:00401B04 83FE05                  cmp esi, 00000005-----ESI是你名字的个数,比较用户名是否大于5位
:00401B07 7311                    jnb 00401B1A  -------------小于就出现错误信息,这里要跳咯~~
:00401B09 6A40                    push 00000040

* Possible StringData Ref from Data Obj ->"CrackMe"
                                  |
:00401B0B 6804514000              push 00405104

* Possible StringData Ref from Data Obj ->"User Name must have at least 5 "
                                        ->"characters."
                                  |
:00401B10 68D8504000              push 004050D8
:00401B15 E9BA000000              jmp 00401BD4

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401B07(C)
|
:00401B1A B801000000              mov eax, 00000001----//给EAX赋值为1,做为计数器
:00401B1F 33FF                    xor edi, edi------------//EDI清零,做储数器
:00401B21 3BF0                    cmp esi, eax
:00401B23 7211                    jb 00401B36

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401B34(C)
|
:00401B25 0FBE4C0414              movsx ecx, byte ptr [esp+eax+14]---------
                                   提取你输入用户名的第二位的十六进制
:00401B2A 03CF                    add ecx, edi   //ECX=ECX+EDI)
:00401B2C 0FAFC8                  imul ecx, eax   // ECX=ECX*EAX
:00401B2F 40                      inc eax         // EAX加一      
:00401B30 8BF9                    mov edi, ecx                      
:00401B32 3BC6                    cmp eax, esi    
:00401B34 76EF                    jbe 00401B25  //形成第一个循环

下面继续看,|第二次计算开始。

:00401B36 33C9                    xor ecx, ecx--------//ecx清零 做计数器
:00401B38 85F6                    test esi, esi
:00401B3A 7620                    jbe 00401B5C
:00401B3C 0FBE6C0C14              movsx ebp, byte ptr [esp+ecx+14] //提取用户名的第一位
:00401B41 8BC7                    mov eax, edi     // eax=edi
:00401B43 33D2                    xor edx, edx     // edx清零
:00401B45 F7F5                    div ebp       // eax=eax/ebp   商进EAX,余数进EDX
:00401B47 33D2                    xor edx, edx    //edx清零
:00401B49 BD0A000000              mov ebp, 0000000A    // ebp=0xA
:00401B4E F7F5                    div ebp    // eax=ex/ebp   商进EAX,余数进EDX
:00401B50 80C230                  add dl, 30   // edx=edx+0x30
:00401B53 88540C48                mov byte ptr [esp+ecx+48], dl   // 把EDX的值赋到字符串中
:00401B57 41                      inc ecx    //ecx=ecx+1
:00401B58 3BCE                    cmp ecx, esi
:00401B5A 72E0                    jb 00401B3C   形成循环

跳出循环.
依次把六次循环的余数提出,为222088,这就是注册码喽!

第三关:代码很多,直接写关键的拉

计算注册码过程开始:

:00401CB3 0FBE5C0500              movsx ebx, byte ptr [ebp+eax]
                                   // 依次提取用户名第一位的十六进制
:00401CB8 8D4C0500                lea ecx, dword ptr [ebp+eax]
                                   // ecx=ebp+eax
:00401CBC 03F3                    add esi, ebx
                                    // esi=esi+ebx
:00401CBE 8BD8                    mov ebx, eax
                                   // ebx=ebx+eax
:00401CC0 C1E308                  shl ebx, 08
                                  // ebx左移三位
:00401CC3 33F3                    xor esi, ebx
                                    // esi=esi xor ebx
:00401CC5 8B5C241C                mov ebx, dword ptr [esp+1C]
                                   // ebx=[esp+1c]
:00401CC9 03D9                    add ebx, ecx
                                  //  ebx=ebx+ecx
:00401CCB 8BCF                    mov ecx, edi
                                   // ecx=edi
:00401CCD 0FAFF3                  imul esi, ebx
                                   // esi=esi*ebx
:00401CD0 F7D1                    not ecx
                                  //  ecx取反
:00401CD2 0FAFF1                  imul esi, ecx
                                  // esi=esi*ecx
:00401CD5 40                      inc eax
                                //  eax=eax+1
:00401CD6 03FA                    add edi, edx
                                 // edi=edi+edx
:00401CD8 3BC2                    cmp eax, edx
:00401CDA 7CD7                    jl 00401CB3
                                   形成循环

:00401CDC 8B7C2420                mov edi, dword ptr [esp+20]  //这里看见真码
:00401CE0 33DB                    xor ebx, ebx

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401CA4(C)
|
:00401CE2 56                      push esi
:00401CE3 8D542414                lea edx, dword ptr [esp+14]

* Possible StringData Ref from Data Obj ->"%lu"
                                  |
:00401CE7 682C514000              push 0040512C
:00401CEC 52                      push edx

* Reference To: MFC42.Ordinal:0B02, Ord:0B02h
                                  |
:00401CED E8F20E0000              Call 00402BE4
:00401CF2 8B74241C                mov esi, dword ptr [esp+1C]---------这里就是真码了
:00401CF6 8B442420                mov eax, dword ptr [esp+20]--------这里是自己输入的

呵呵,再下面就是有三个了,不过应该不是太难拉,大家自己一定能解决,呵呵!
2005-2-14 01:53
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
下载不了.请重新上传.
2005-2-17 09:19
0
雪    币: 1925
活跃值: (906)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
4
下不了啊~~~~~
再传过呀~~~~~
2005-2-17 15:09
0
雪    币: 214
活跃值: (86)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
连接修复完成,可以下载了
2005-2-19 12:46
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
6
下载不了!!
2005-4-26 02:14
0
雪    币: 219
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
请重新给个地址
2010-4-30 15:55
0
游客
登录 | 注册 方可回帖
返回