首页
社区
课程
招聘
[旧帖] [原创]一个很简单的CM爆破过程 0.00雪花
发表于: 2009-12-12 17:34 1817

[旧帖] [原创]一个很简单的CM爆破过程 0.00雪花

2009-12-12 17:34
1817
文章仅适合很初很初的新手。

以前从论坛下的CM 当时没看懂(其实那时根本不可能看懂,汇编基本的指令都不知道),到图书馆借了那本经典的汇编语言看了下。今天抽空试了试,没想到成功了 着实激动了把,好了废话不说 咱们开始:
先直接运行下程序 随便输入 发现有错误提示:“Nic z tego!!!”

用OD载入后就来到了这里:

00401000 >/$  6A 00         PUSH 0                                   ; /hTemplateFile = NULL
00401002  |.  68 80000000   PUSH 80                                  ; |Attributes = NORMAL
00401007  |.  6A 03         PUSH 3                                   ; |Mode = OPEN_EXISTING
00401009  |.  6A 00         PUSH 0                                   ; |pSecurity = NULL
0040100B  |.  6A 00         PUSH 0                                   ; |ShareMode = 0
0040100D  |.  68 00000080   PUSH 80000000                            ; |Access = GENERIC_READ
00401012  |.  68 6B234000   PUSH Crackme.0040236B                    ; |FileName = "ACG.key"
00401017  |.  E8 84040000   CALL <JMP.&KERNEL32.CreateFileA>         ; \CreateFileA
0040101C  |.  83F8 FF       CMP EAX,-1
0040101F  |.  0F84 59010000 JE Crackme.0040117E
00401025  |.  A3 73234000   MOV DWORD PTR DS:[402373],EAX
0040102A  |.  6A 00         PUSH 0                                   ; /pFileSizeHigh = NULL
0040102C  |.  FF35 73234000 PUSH DWORD PTR DS:[402373]               ; |hFile = NULL
00401032  |.  E8 51040000   CALL <JMP.&KERNEL32.GetFileSize>         ; \GetFileSize

然后查找字符串 就到了这里:

00401326      6A 10               PUSH 10                            ;  这条由004012DF跳转而来
00401328   .  68 1B204000         PUSH Crackme.0040201B              ; |Title = "-=ACG=- T h e   B e s t -=ACG=-"
0040132D   .  68 CE204000         PUSH Crackme.004020CE              ; |Text = "Nic z tego!!!"
00401332   .  FF75 08             PUSH DWORD PTR SS:[EBP+8]          ; |hOwner
00401335   .  E8 18010000         CALL <JMP.&USER32.MessageBoxA>     ; \MessageBoxA

现在我们到004012DF去看看

00401260   .  83F8 05             CMP EAX,5                          ;  这里下个断
00401263   .  0F82 BD000000       JB Crackme.00401326
00401269   .  6A 28               PUSH 28                            ; /Count = 28 (40.)
0040126B   .  68 2E214000         PUSH Crackme.0040212E              ; |Buffer = Crackme.0040212E
00401270   .  68 EA030000         PUSH 3EA                           ; |ControlID = 3EA (1002.)
00401275   .  FF75 08             PUSH DWORD PTR SS:[EBP+8]          ; |hWnd
00401278   .  E8 F3010000         CALL <JMP.&USER32.GetDlgItemTextA> ; \GetDlgItemTextA
0040127D   .  BF 06214000         MOV EDI,Crackme.00402106
00401282   .  33DB                XOR EBX,EBX
00401284   .  33C0                XOR EAX,EAX
00401286   >  8A1F                MOV BL,BYTE PTR DS:[EDI]           ;  11<>
00401288   .  80FB 20             CMP BL,20                          ;  此循环为将输入的用户名字母对用的ASCII码相加
0040128B   .  0F82 95000000       JB Crackme.00401326
00401291   .  03C3                ADD EAX,EBX
00401293   .  47                  INC EDI
00401294   .  803F 00             CMP BYTE PTR DS:[EDI],0
00401297   .^ 75 ED               JNZ SHORT Crackme.00401286         ;  11<>
00401299   .  C1C0 03             ROL EAX,3
0040129C   .  35 A5150500         XOR EAX,515A5
004012A1   .  50                  PUSH EAX
004012A2   .  33C0                XOR EAX,EAX
004012A4   .  33DB                XOR EBX,EBX
004012A6   .  33FF                XOR EDI,EDI
004012A8   .  BE 2E214000         MOV ESI,Crackme.0040212E
004012AD   >  B8 0A000000         MOV EAX,0A                         ;  22<>
004012B2   .  8A1E                MOV BL,BYTE PTR DS:[ESI]
004012B4   .  85DB                TEST EBX,EBX                       ;  检测EBX是否为空 空则跳转 其实就是检查是否全部提取完
004012B6   .  74 15               JE SHORT Crackme.004012CD
004012B8   .  80FB 30             CMP BL,30
004012BB   .  72 69               JB SHORT Crackme.00401326
004012BD   .  80FB 39             CMP BL,39                          ;  此循环为将输入的密码原样提取出来 存储在EDI寄存器中
004012C0   .  7F 64               JG SHORT Crackme.00401326
004012C2   .  83EB 30             SUB EBX,30
004012C5   .  0FAFF8              IMUL EDI,EAX
004012C8   .  03FB                ADD EDI,EBX
004012CA   .  46                  INC ESI
004012CB   .^ EB E0               JMP SHORT Crackme.004012AD         ;  22<>
004012CD   >  81F7 CA870000       XOR EDI,87CA
004012D3   .  8BDF                MOV EBX,EDI
004012D5   .  58                  POP EAX
004012D6   .  03C3                ADD EAX,EBX
004012D8   .  35 E7970700         XOR EAX,797E7
004012DD   .  85C0                TEST EAX,EAX
004012DF   .  75 45               JNZ SHORT Crackme.00401326         ;  这里跳转则完蛋 只要将ZF位改为1爆破就成功

这样爆破就成功了,总结整个过程关键是字符串查找,其他没什么了。

本想等写出注册机后再发帖的,可我研究了半天竟无一点思路,弱弱的说句好像不能写注册机。
我再贴几个很适合初学者的连接 对初学者帮助很大
OllyDBG 入门系列 作 者: CCDebuger
http://bbs.pediy.com/showthread.php?t=21284
http://bbs.pediy.com/showthread.php?t=21308
http://bbs.pediy.com/showthread.php?t=21330
http://bbs.pediy.com/showthread.php?t=21378
http://bbs.pediy.com/showthread.php?t=21532
http://bbs.pediy.com/showthread.php?t=23873
期望斑竹看在我坐在电脑前5个小时的份上给个邀请码 临时会员学习起来真的很不方便

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 417
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
一切都是为了邀请码
2009-12-12 18:18
0
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
貌似不要邀请码也一样可以浏览文章.....一切为了好好学习。。。
2009-12-13 02:47
0
雪    币: 22
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
一切为了好好学习。。。
2009-12-13 08:48
0
雪    币: 13
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习了,新手上路,压马路咯
2009-12-13 10:05
0
雪    币: 42
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
新手来学习下!
2009-12-13 18:00
0
雪    币: 108
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
非也 主要是与大家分享一下成功爆破的喜悦,其次嘛才是邀请码
2009-12-14 07:43
0
雪    币: 3361
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习了。谢谢,我才刚起步,后面的路还很长
2009-12-15 21:45
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
9
这个是文件型注册,写出注册机还要继续加油呀
可能是今天RP比较好,OD载入后,就直接看到注册验证流程了
学习前辈的CM,很有价值!
貌似一用户名并不唯一对应一个注册码...
上传的附件:
2009-12-15 21:59
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
路过  要是跟我也介绍几块经典的汇编书籍就好了
2009-12-16 03:55
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
希望什么时候我也能有我自己的一个破解软件
2009-12-16 22:45
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
一切为了学习
2009-12-17 08:47
0
雪    币: 47
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
一切为了好好学习。。。
2009-12-17 09:12
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
原来这么简单
2009-12-17 13:55
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
如果能上图就更好了....
2009-12-17 15:29
0
雪    币: 99
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
到图书馆借了那本经典的汇编语言看了下
===哪本?
王爽的?
还是老外的?
2009-12-17 15:52
0
雪    币: 108
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
只推荐王爽的《汇编语言(第二版)》 超经典 上手很容易
2009-12-18 12:20
0
雪    币: 72
活跃值: (52)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
18
希望自己也早点能破解啊
2009-12-18 12:58
0
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
一切都是为了能在其他地方下载附件。。可以学习
2009-12-18 21:52
0
游客
登录 | 注册 方可回帖
返回
//