首页
社区
课程
招聘
[原创]一个很简单的CrackMe的算法分析+注册机
2006-7-14 15:45 7723

[原创]一个很简单的CrackMe的算法分析+注册机

bxm 活跃值
29
2006-7-14 15:45
7723
【文章标题】: 一个很简单的CrackMe的算法分析+注册机
【文章作者】: bxm
【作者邮箱】: bxm78@163.com
【软件名称】: AD_CM#3
【保护方式】: name,serial
【编写语言】: Borland Delphi 4.0 - 5.0
【使用工具】: peid,od
【操作平台】: winxp
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  用peid查壳,无壳,运行,收集足够信息用OD载入,通过字符串“enter you name, pls.”下断点,断点在[004581A1]
  004581A1  |.  B8 88824500   mov     eax, 00458288                ;  enter you name, pls.
  004581A6  |.  E8 39C1FEFF   call    004442E4
  004581AB  |>  8D55 EC       lea     edx, [ebp-14]
  004581AE  |.  8B87 DC020000 mov     eax, [edi+2DC]
  004581B4  |.  E8 D3BEFCFF   call    0042408C
  004581B9  |.  837D EC 00    cmp     dword ptr [ebp-14], 0
  004581BD  |.  75 0A         jnz     short 004581C9
  004581BF  |.  B8 A8824500   mov     eax, 004582A8                ;  enter the serial, pls.
  004581C4  |.  E8 1BC1FEFF   call    004442E4
  004581C9  |>  8B45 FC       mov     eax, [ebp-4]
  004581CC  |.  E8 ABB9FAFF   call    00403B7C
  004581D1  |.  8BD8          mov     ebx, eax
  004581D3  |.  85DB          test    ebx, ebx
  004581D5  |.  7E 2D         jle     short 00458204
  004581D7  |.  BE 01000000   mov     esi, 1
  004581DC  |>  8B45 FC       /mov     eax, [ebp-4]                ;  name入EAX
  004581DF  |.  0FB64430 FF   |movzx   eax, byte ptr [eax+esi-1]   ;  name的每个字符依次入EAX
  004581E4  |.  B9 03000000   |mov     ecx, 3                      ;  除数3入ECX
  004581E9  |.  33D2          |xor     edx, edx
  004581EB  |.  F7F1          |div     ecx                         ;  EAX/ECX,商在EAX中
  004581ED  |.  8D55 E8       |lea     edx, [ebp-18]
  004581F0  |.  E8 0FF9FAFF   |call    00407B04                    ;  把商转换成十进制数的ASCII
  004581F5  |.  8B55 E8       |mov     edx, [ebp-18]
  004581F8  |.  8D45 F8       |lea     eax, [ebp-8]
  004581FB  |.  E8 84B9FAFF   |call    00403B84                    ;  连接两个字符串
  00458200  |.  46            |inc     esi
  00458201  |.  4B            |dec     ebx
  00458202  |.^ 75 D8         \jnz     short 004581DC
  00458204  |>  8D45 F4       lea     eax, [ebp-C]
  00458207  |.  8B4D F8       mov     ecx, [ebp-8]
  0045820A  |.  BA C8824500   mov     edx, 004582C8                ;  adcm3-
  0045820F  |.  E8 B4B9FAFF   call    00403BC8                     ;  把字符串“adcm3-”转换成大写,再与根据name算出的serial相连接
  00458214  |.  8D55 E4       lea     edx, [ebp-1C]
  00458217  |.  8B87 DC020000 mov     eax, [edi+2DC]
  0045821D  |.  E8 6ABEFCFF   call    0042408C
  00458222  |.  8B55 E4       mov     edx, [ebp-1C]
  00458225  |.  8B45 F4       mov     eax, [ebp-C]
  00458228  |.  E8 5FBAFAFF   call    00403C8C                     ;  真码与假码比较
  0045822D  |.  75 0A         jnz     short 00458239               ;  相同,成功
  0045822F  |.  B8 D8824500   mov     eax, 004582D8                ;  well done cracker, you did it!
  00458234  |.  E8 ABC0FEFF   call    004442E4
  
  算法小结:
    1、用naem的每个字符除以3,把商转换成十进制数,并依次连接,结果记为A。
    2、固定字符串“ADCM3-”与A连接即成注册码。
  附注册机:
  #include<string.h>
          main()
  {
          char name[64];
          char serial[128];
          int i,len,temp;
          scanf("%s",&name);
          len=strlen(name);
          for(i=0;i<len;i++)
          {
                  temp=name[i]/3;
                  serial[i*2]=temp/10+0x30;
                  serial[i*2+1]=temp%10+0x30;
          }
          printf("ADCM3-");
          for(i=0;i<2*len;i++)
                  printf("%c",serial[i]);
  }
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2006年07月14日 下午 03:43:42

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

上传的附件:
收藏
免费 7
打赏
分享
最新回复 (14)
雪    币: 230
活跃值: (11)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
qwgboy2000 3 2006-7-14 20:52
2
0
顶你一下吧
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
王小杰 2006-7-15 13:34
3
0
dadadada支持你
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
naiwu9527 2006-7-15 14:40
4
0
学习,支持
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leoqard 2006-7-16 19:23
5
0
学习一下!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
soro 2006-7-17 09:16
6
0
新手学习,顶你一下
雪    币: 106
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lsqpolice 2006-7-17 09:21
7
0
新手学习,顶一下
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
liuyuhua 2006-7-17 19:08
8
0
兄弟,我终于等到达24小时了,流泪不言中
雪    币: 232
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
warcraft 2006-7-21 17:32
9
0
直接爆破拉倒
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WildCatIII 2006-7-22 08:34
10
0
最初由 warcraft 发布
直接爆破拉倒


晕~这么容易学习的文章都出来了,还说要暴? 

多学无妨~~~支持楼主!菜鸟学习好东东。
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
bfqyygy 1 2006-7-22 22:47
11
0
就是要多学多练!!
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
千里追枫 2006-7-23 12:05
12
0
学习,支持
雪    币: 209
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wysea 2006-8-22 21:35
13
0
受益匪浅啊!

感谢楼主!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
happyidiot 2006-8-22 22:31
14
0
收下了呵
,
雪    币: 207
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
jelly 1 2006-11-18 21:33
15
0
谢谢楼主了哈
游客
登录 | 注册 方可回帖
返回