首页
社区
课程
招聘
[原创]再来个crackme
发表于: 2008-10-24 06:17 5729

[原创]再来个crackme

2008-10-24 06:17
5729
前一阵比较忙,没工夫玩cm,现在告一段落,写个crackme供大家消遣消遣

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
User Code: DMBMEN
MMNMMN
2008-10-24 07:09
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
帅哥!能说说怎么破解的吗?
2008-10-24 19:02
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
4
没仔细看, 忘了.
你写的应该你来说.
2008-10-24 23:38
0
雪    币: 88
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
我太菜了 不能追出注册码  只会用万能断点Hmemcpy  爆破了
2008-10-25 12:42
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
6
大约是这样吧:
他用电脑名称去产生UserCode
例: 电脑名称 = PEDIY = 50 45 44 49 59
    'A'+0='A'
    'I'+5='N'
    'A'+5='F'
    'I'+4='M'
    'A'+4='E'
    'I'+4='M'
    'A'+9='J'
    'I'+4='M'
    'A'+9='J'
    'I'+5='N'
所以提示的 UserCode = ANFMEMJMJN
注册码后半为偶位 => NMMMN
我想他本意应是想前半为奇位 => AFEJJ
结果有bug 常会变成前半可为任意英文字母就显示 OK
     或变成正确注册码却显示 Fail

所以常常能前半段乱打 aaaaaNMMMN 也可

补充一下:
 反正只要前半or后半正确,常常就有机会OK
 Thread没处理好的bug.
2008-10-25 15:11
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不懂,

努力中.
2008-10-26 17:59
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
连关键CALL都找不到!
2008-10-26 18:04
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
帅哥太厉害了!
2008-10-27 05:35
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
10
LZ来一盘美女
2008-10-28 01:59
0
雪    币: 295
活跃值: (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
无聊看了下  挺有意思的.

初始化时就启动了线程, 不停的执行.
所以最开始bp CreateThread  可得到线程处理函数 004011e0
/*4011E0*/  SUB ESP,208
/*4011E6*/  MOV EAX,DWORD PTR DS:[4091F4]
/*4011EB*/  XOR EAX,ESP
/*4011ED*/  PUSH EBX
/*4011EE*/  PUSH EBP
/*4011EF*/  PUSH ESI
/*4011F0*/  PUSH EDI
/*4011F1*/  MOV EDI,DWORD PTR SS:[ESP+21C]
/*4011F8*/  MOV DWORD PTR SS:[ESP+214],EAX
/*4011FF*/  MOV BL,1
/*401201*/  LEA EAX,DWORD PTR SS:[ESP+14]
/*401205*/  PUSH EAX
/*401206*/  CALL crackme.00401000
/*40120B*/  MOV AL,BYTE PTR SS:[ESP+18]
/*40120F*/  ADD ESP,4
/*401212*/  TEST AL,AL
/*401214*/  MOV ESI,EDI
/*401216*/  LEA EDX,DWORD PTR SS:[ESP+14]
/*40121A*/  MOV BYTE PTR DS:[40A4D0],BL
/*401220*/  JE SHORT crackme.0040123D
/*401222*/  MOV CL,AL
/*401224*/  MOVSX EBP,BYTE PTR DS:[ESI]
/*401227*/  MOVSX ECX,CL
/*40122A*/  SUB ECX,EBP
/*40122C*/  MOV DWORD PTR SS:[ESP+10],ECX
/*401230*/  JNZ SHORT crackme.00401249
/*401232*/  MOV CL,BYTE PTR DS:[EDX+2]
/*401235*/  ADD EDX,2
/*401238*/  INC ESI
/*401239*/  TEST CL,CL
/*40123B*/  JNZ SHORT crackme.00401224
/*40123D*/  MOV DWORD PTR DS:[409AC8],crackme.00409030
/*401247*/  JMP SHORT crackme.00401253
/*401249*/  MOV DWORD PTR DS:[409AC8],crackme.00409110
/*401253*/  CMP BYTE PTR DS:[40A4D1],BL
/*401259*/  JNZ SHORT crackme.00401201
/*40125B*/  TEST AL,AL
/*40125D*/  MOV EDX,EDI
/*40125F*/  LEA ECX,DWORD PTR SS:[ESP+14]
/*401263*/  MOV BYTE PTR DS:[40A4D0],BL
/*401269*/  JE SHORT crackme.00401289
/*40126B*/  JMP SHORT crackme.00401270
/*40126D*/  LEA ECX,DWORD PTR DS:[ECX]
/*401270*/  MOVSX ESI,BYTE PTR DS:[EDX]
/*401273*/  MOVSX EAX,AL
/*401276*/  SUB EAX,ESI
/*401278*/  MOV DWORD PTR SS:[ESP+10],EAX
/*40127C*/  JNZ SHORT crackme.00401298
/*40127E*/  MOV AL,BYTE PTR DS:[ECX+2]
/*401281*/  ADD ECX,2
/*401284*/  INC EDX
/*401285*/  TEST AL,AL
/*401287*/  JNZ SHORT crackme.00401270
/*401289*/  MOV DWORD PTR DS:[409AC8],crackme.00409030
/*401293*/  JMP crackme.00401201
/*401298*/  MOV DWORD PTR DS:[409AC8],crackme.00409110
/*4012A2*/  JMP crackme.00401201

其实这里就是算法部分.  如果正确将执行这个
/*401289*/  MOV DWORD PTR DS:[409AC8],crackme.00409030
/*401293*/  JMP crackme.00401201
不正确会执行
/*401298*/  MOV DWORD PTR DS:[409AC8],crackme.00409110
/*4012A2*/  JMP crackme.00401201

而大家都知道
在sleep一些随机时间后 会执行
/*4011C1*/  CALL DWORD PTR DS:[409AC8]
这个

当DWORD PTR DS:[409AC8]=00409030   即跳向正确

所以仅分析那个线程中的算法即可.
而这个算法 较为简单  并且sessiondiy 已经说过了   就不在赘述啦

楼上谁的计算机名是cat
2008-10-30 22:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
多谢FindLakes, 偶是new hand,嗬嗬,得到的启示是:如果MainLoop里有Sleep调用,基本上可以知道是启动线程了,可以在CreateThread上加断点。我开始在messageBox上断的,怎么也找不到处理的代码:)呵呵
2008-11-4 18:17
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
为什么我的OD载入之后运行软件输入注册码点确定就卡住了.

难道我的OD出错了.
2008-11-6 23:44
0
游客
登录 | 注册 方可回帖
返回
//