首页
社区
课程
招聘
[旧帖] [分享]一个crackme破解完整版 0.00雪花
发表于: 2010-11-28 21:20 2608

[旧帖] [分享]一个crackme破解完整版 0.00雪花

2010-11-28 21:20
2608
破文完整版
首先声明一下我是个菜鸟,在这方面缺乏经验,希望大家多多指教!
这也是我的业余时间的第一篇文章,虽然很烂,但希望大家能鼓励我一下,毕竟我还是喜欢学习的。
1 查壳 可用查壳工具进行查壳,但不要长期依赖于它。
2 去壳 随着知识的提高,尝试手动脱壳
3 破解 此crackme没有加壳,故省了第二步。这里我将用爆破,跟踪注册码,写内存注册机三种方法来介绍一下,不足之处还请批评指正。
一、首先我们用第一种方法win32dasm ,winhex来暴力破解运行一下crackme,随便输入名字加序列号找出关键提示信息bad name or serial number。用win32asm打开crackme,在参考---->串式数据参考中找到bad name or serial number,双击即来到相关位置。顺着代码往上走,可以看到Referenced by a (u)conditional or (C)onditional jump at address 0042dcc2 。也就是说错误信息是从0042dcc2这个地址跳过来的。那我们跳到0042dcc2这里看一下。
:0042DCB2 A360F74200              mov dword ptr [0042F760], eax  你输入的序列号(这里是经过动态调试得到的,一会再说)
:0042DCB7 A158F74200              mov eax, dword ptr [0042F758]  真序列号
:0042DCBC 3B0560F74200            cmp eax, dword ptr [0042F760]   比较真假序列号
:0042DCC2 7517                    jne 0042DCDB  不为0(即序列号不相同)则跳到注册失败处
:0042DCC4 6A00                    push 00000000
:0042DCC6 668B0D1CDD4200          mov cx, word ptr [0042DD1C]
:0042DCCD B202                    mov dl, 02

* Possible StringData Ref from Code Obj ->"Good Serial, Thanks For trying "
                                        ->"this Crackme
从这可以看出,jne 0042DCDB为关键跳转,若不跳转往下继续即可成功。所以此处可用nop填充,也可把jne改成je来暴力破解。我使用的win32dasm可直接进行修改,若你的版本不支持的话可以用winhex进行修改。若用winhex的话,我们修改的是offset address,在win32dasm状态栏下可以看出对应的offset address为0002d0c2。
用winhex打开crackme,找到该地址处,将75改为74即可,也可以用nop即9090填充。
保存后运行可看出已经破解成功。
附:常用爆破修改
汇编指令修改                相应机器码修改
jnz/jne->nop                75->90
jnz/jne->jmp                75->EB
jz/je->nop                74->90
jz/je->jmp                74->EB
jnz/jne->jz/je                        75->74或0F85->0F84
jz/je->jnz/jne                        74->75或0F84->0F85
二、用ollydbg跟踪注册码我们知道程序在0042DCBC处进行比较,所以我们在这下断点,按F2即可。
按F9运行输入macheng   12345, 当然你也可以用你的名字和你的密码,这里随意。按下check后程序中断。
看一下数据窗口
从这可以看出0042f760中存储的正是你输入的序列号12345(3039是12345的十进制形式),经过上面的分析可知它是与eax中的数据比较的,所以eax中的数据就是真的序列号,我们将它转化成十进制为229644648,所以229644648就是对应macheng的真正的序列号
  
三、内存注册机这里我们用keymake1.73制作
制作内存注册机需要知道
中断地址 在这里可用42dcbc
次数      这里是1次
指令第一个字节  3B   因3B05 60F7420的第一字节就是3B
指令长度   6    因6个字节
步骤: 打开keymake程序,其他-->内存注册机  通过 浏览-->选择程序名称,通过 添加按钮 输入以上信息。
注册码选择寄存器EAX,十进制形式。
设置好后你也可以在注册机中修改用户信息,此处略。设置完后生成保存即可。详见keymake的使用方法。双击你制作的内存注册机,输入信息,macheng  12345 是不是发现真的注册码蹦出来了 呵呵
原先我想用四种方法,加上算法注册机,但是在计算处多个call弄得我眼花缭乱,我水平太烂,没能分析出算法,所以希望能有高手完成后续的算法,我不需要什么版权,版权可以归得出算法的人,我只想跟其他菜鸟一样学习。希望大家能支持!还希望前辈能给我个邀请码便于我今后更好的学习!非常感谢
crackme下载地址http://download.csdn.net/source/2866526
对了还有一个问题是为什么不能上传本地图片和crackme原文件啊,我本想上传本地截取的图片,不会上传,高手帮忙告诉我一下 谢谢

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

收藏
免费 0
支持
分享
最新回复 (26)
雪    币: 544
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
恭喜楼主入门了
2010-11-28 22:12
0
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢您对我的支持!只不过算法没弄出来,计算的地方好多call,我经验不足弄不明白。如果能弄明白算法再好不过了,还希望有高人能解决,以帮助我们更多的菜鸟知道学习的渐进过程。
2010-11-28 22:22
0
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢楼主分享,学习了
2010-11-29 09:59
0
雪    币: 343
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢分享谢谢分享谢谢分享
2010-11-29 13:58
0
雪    币: 288
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
2楼和4楼的kx都多于100了为何还是临时用户?呵呵!4楼的直接买两个注册码送楼主一个,自己用一个得了!
2010-11-29 16:14
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢分享,本人刚刚学,看好久才搞懂!Lz说到的第四种办法,看来要学懂汇编才行!

我试了一下,有几个跳是设了固定常量的,就看懂这点,别的看眼花也没有头绪!
2010-11-30 01:22
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习下。      
2010-11-30 08:57
0
雪    币: 247
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习学习一下......
2010-11-30 09:14
0
雪    币: 544
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
2010-12-1 14:14
0
雪    币: 166
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
非常感谢高人指点,谢谢!
2010-12-1 21:01
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
[QUOTE=ddsoft;897292]看我的算法分析。。。

http://bbs.pediy.com/showthread.php?p=897298#post897298[/QUOTE]

很值得学习!
2011-1-4 11:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习一下  支持一下
2011-1-4 13:34
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
恩~~~不错不错
2011-1-4 13:50
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
学习学习一下......
2011-1-4 14:50
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
恭喜楼主,这个创意不错
2011-1-4 19:55
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
谢谢分享,谢谢分享.
2011-1-4 20:05
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
很详细。谢谢。
引用的这哥们比我还老啊!2005届的。哈哈~~我本来以为我就是够费劲的了。
2011-1-4 23:49
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
看来还是不错的!
2011-1-5 05:30
0
雪    币: 25
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
学习学习!
2011-1-5 09:13
0
雪    币: 630
活跃值: (570)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
LZ 不错 继续努力!~
2011-1-5 10:14
0
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
学习~
以crackme的方式来学破解很好玩
2011-1-7 01:26
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
感谢高人指点,谢谢
2011-1-24 15:28
0
雪    币: 467
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
我看不懂。。。。
2011-1-24 21:44
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
不知道是不是很难 反正还在钻研
2011-1-24 22:31
0
游客
登录 | 注册 方可回帖
返回
//