首页
社区
课程
招聘
[原创]向猫大学习,菜鸟也写CrackMe。[VB]难度初级偏上
发表于: 2009-10-12 19:04 12032

[原创]向猫大学习,菜鸟也写CrackMe。[VB]难度初级偏上

2009-10-12 19:04
12032
向猫大学习,菜鸟也写CM。【VB】难度初级偏上
1.只会VB,所以CM也是VB的;
2.吸取教训,没有明码比较,要看寄存器才能破解的注意了;
3.没有参考字符串,没有注册成功失败弹窗,下断是重点;
4.核心算法只有2句,但没有算法你不能注册:D
5.综上所述,难度定为初级偏上。试试吧~~~
5.一组参考注册码:
注册名:Zaas
注册码4d6a4745

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (20)
雪    币: 119
活跃值: (10)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
2
这样算爆破成功吧?


谢谢LZ的CM。。
上传的附件:
2009-10-12 20:03
0
雪    币: 399
活跃值: (214)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
3
hoho... 偶没加验证,爆破会快一点。
等待算法。。。。
2009-10-12 20:23
0
雪    币: 347
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
用SmartCheck获取click事件的地址

在OD中CRTL+G定位到这个位置,下断点,F9执行输入用户名和错误的序列号,点"试试手气",来到断点处,F8到402F38
00402F2C   .  FF15 28104000 call    dword ptr [<&MSVBVM60.__vbaFreeO>;  MSVBVM60.__vbaFreeObjList
00402F32   .  83C4 18       add     esp, 18
00402F35   .  66:85FF       test    di, di
[COLOR=red]00402F38      74 6C         je      short 00402FA6                  ;这里会跳到另一个出错提示,判断用户和序列号是否为空的,继续F8[/COLOR]
00402F3A   .  8B0E          mov     ecx, dword ptr [esi]

F8到402FA6
[COLOR=red]00402FA6   > \66:833D 24604>cmp     word ptr [406024], 0[/COLOR]
00402FAE   .  8B0E          mov     ecx, dword ptr [esi]
00402FB0   .  56            push    esi
[COLOR=red]00402FB1      75 62         jnz     short 00403015                  ;这里就是跳转的关键地方[/COLOR]

在00402FA6处的指令,提取保存在406024处的一个低四节值与0做比较,如果是0那么验证通过,非0(FFFF)验证失败
我把00402FB1这句指令NOP掉
00402FAE   .  8B0E          mov     ecx, dword ptr [esi]             ;  CrackMe1.00406354
00402FB0   .  56            push    esi
[COLOR=green]00402FB1   .  90            nop[/COLOR]
[COLOR=green]00402FB2   .  90            nop[/COLOR]
00402FB3   .  FF91 0C030000 call    dword ptr [ecx+30C]

右键->复制到文件中->全部修改,再次右键->保存到文件(不要覆盖原始CM)
再次运行CM,随便输入点什么,提示如下:


至于注册机嘛,我还没分析出来,看汇编代码算法部分应该是在403320处,输入序列号的时候计算的,不是在最后比较处,序列号貌似是从后开始,每2位结合为一个十六进制,然后得到ASCII,,,其他还没有看明白,我太菜了,,,呵呵
上传的附件:
2009-10-13 11:11
0
雪    币: 399
活跃值: (214)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=asmc;699079]用SmartCheck获取click事件的地址
33037
在OD中CRTL+G定位到这个位置,下断点,F9执行输入用户名和错误的序列号,点"试试手气",来到断点处,F8到402F38

00402F2C   .  FF15 28104000 call    dword ptr [<...[/QUOTE]

这位同学几乎就要成功了!加油。
2009-10-13 18:49
0
雪    币: 347
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
分析VB的反汇编代码是一件很头疼的事情,而且还不熟悉VB,呵呵,LZ贴算法吧
2009-10-14 10:18
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=asmc;699079]用SmartCheck获取click事件的地址
33037
在OD中CRTL+G定位到这个位置,下断点,F9执行输入用户名和错误的序列号,点"试试手气",来到断点处,F8到402F38

00402F2C   .  FF15 28104000 call    dword ptr [<...[/QUOTE]

请问你用的SmartCheck哪个版本?我用的6.2版本,竟然无法运行楼主的程序。。
2009-10-15 10:28
0
雪    币: 347
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
看雪2009新年大礼包里的
2009-10-15 12:22
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我是从其他地方下过来的,
看雪2009大礼包里的我这竟然解压不了,出错了,我去找个别的版本试试先
2009-10-15 12:50
0
雪    币: 347
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
笨,那不是解压,是ISO文件,你用虚拟光驱挂上
2009-10-15 13:43
0
雪    币: 1596
活跃值: (30)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
11
用最新版本的WINRAR也可以解压ISO文件
*************************************
OD分析VB真是痛苦
输入SN后先这样运算:
for (i=0;i<U.len;i++)
{
S[i]=(U[i]->ACSII->10进制)-32;
}
更新中~~~~~~~
2009-10-16 08:21
0
雪    币: 13097
活跃值: (4097)
能力值: ( LV15,RANK:1673 )
在线值:
发帖
回帖
粉丝
12
[QUOTE=柳州小林;700187]用最新版本的WINRAR也可以解压ISO文件
*************************************
OD分析VB真是痛苦
输入SN后先这样运算:
for (i=0;i<U.len;i++)
{
S[i]=(U[i]->ACSII->10进制)-32...[/QUOTE]

你写这几句算的不是SN吧, 并且好象少了个判断 u[i] > 'Z',
其实也就是s[i] = toupper(u[i]);
这只是个转成大写的步骤.

这个CM算法比较简单,不过还是比较有意思的...大家可以玩玩...
2009-10-16 11:22
0
雪    币: 1596
活跃值: (30)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
13
[QUOTE=AloneWolf;700253]你写这几句算的不是SN吧, 并且好象少了个判断 u[i] > 'Z',
其实也就是s[i] = toupper(u[i]);
这只是个转成大写的步骤.

这个CM算法比较简单,不过还是比较有意思的...大家可以玩玩...[/QUOTE]

请赐教!用什么工具分析出来的!
*************************************
我在关键跳的地方加了VMP,请大家看看还能不能爆破!
上传的附件:
2009-10-16 20:34
0
雪    币: 13097
活跃值: (4097)
能力值: ( LV15,RANK:1673 )
在线值:
发帖
回帖
粉丝
14
OD...
不喜欢爆破...总是想知道算法...
但当然不一定能知道...
2009-10-16 23:38
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
15
123456
上传的附件:
2009-10-17 02:50
0
雪    币: 77
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16

用户名注册码输入完毕以后.
下bp __vbaStrCmp断点.点试试运气.
734793DA >  FF7424 08           push    dword ptr [esp+8] //od停在这里.
734793DE    FF7424 08           push    dword ptr [esp+8]
734793E2    6A 00               push    0
734793E4    E8 44E6FFFF         call    __vbaStrComp
734793E9    C2 0800             retn    8
alt+f9返回用户代码.
下面就会看见2个比较大的跳转.哈哈!
上传的附件:
2009-11-3 14:21
0
雪    币: 179
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
[QUOTE=KOEIKOEI;707071]
用户名注册码输入完毕以后.
下bp __vbaStrCmp断点.点试试运气.
734793DA >  FF7424 08           push    dword ptr [esp+8] //od停在这里.
734793DE    FF7424 08           pus...[/QUOTE]

我按照你的方法试了一下,下了如下2个断点:
004034A1   .  FF15 6C104000 call    dword ptr [<&MSVBVM60.__vbaStrCm>;  MSVBVM60.__vbaStrCmp

00402FA1     /75 62         jnz     short 00403005  后,
每输入一个注册码,OD都在004034A1    断了下来(注意我并没有点“试试运气”),必须按F9后,才能继续输入下一个注册码(而且,这个时候 00402FA1   处并没有断下来)。 只有在点“试试运气”后,00402FA1   处才能断下来。

我的意思是说,光一个bp __vbaStrCmp断点,无法断下点“试试运气”后的情况啊。还是不知道你是如何断 “试试运气” 的。
2011-5-13 16:17
0
雪    币: 179
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
[QUOTE=asmc;699079]用SmartCheck获取click事件的地址
33037
在OD中CRTL+G定位到这个位置,下断点,F9执行输入用户名和错误的序列号,点"试试手气",来到断点处,F8到402F38

00402F2C   .  FF15 28104000 call    dword ptr [<...[/QUOTE]
如何用SmartCheck获取click事件的地址 啊?能否说详细点?
2011-5-13 16:18
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
拉下来,学习学习
2011-8-2 10:31
0
雪    币: 195
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
学习!!!!!!!!!!
2011-8-13 20:06
0
雪    币: 67
活跃值: (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21

感谢各位大牛
上传的附件:
2011-8-14 18:33
0
游客
登录 | 注册 方可回帖
返回
//