首页
社区
课程
招聘
[原创]菜鸟必看的破解文章(2)-追出软件注册码-答案
发表于: 2005-1-24 19:30 8174

[原创]菜鸟必看的破解文章(2)-追出软件注册码-答案

2005-1-24 19:30
8174

【破文作者】   小弟[爆破王]

【文章题目】   菜鸟必看的破解文章(2)-追出软件注册码-答案

【软件名称】   crackme

【破解难度】   初级   +++中级+++      高级            超难

【破解平台】   XP SP2

----------------------------------------------------------------------------------------------
【文章简介】

是上篇帖子"菜鸟必看的破解文章(2)-追出软件注册码"的答案.

----------------------------------------------------------------------------------------------
【破解过程】

呵呵,答案我就写的不是很详细了,希望广大菜鸟能多多包涵.
用OllyDbg v1.10b载入后运行程序,随便输入姓名和序列号,点击registet,弹出提示"No, no just try again."
记下来,在反汇编后的代码上右击,搜索->字符参考,找到ASCII "No, no just try again."双击来到这里
00401969    .  68 83414000        push unpacked.00404183             ; |Text = "No, no just try again."
然后向上找,
004016D3    .  6A 40              push 40                            ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
004016D5    .  68 19414000        push unpacked.00404119             ; |Title = "Info"
004016DA    .  68 1E414000        push unpacked.0040411E             ; |Text = "Please enter a key"
004016DF    .  6A 00              push 0                             ; |hOwner = NULL
004016E1    .  E8 C60D0000        call <jmp.&USER32.MessageBoxA>     ; \MessageBoxA
004016E6    .  E9 8A020000        jmp unpacked.00401975
004016EB    >  33C0               xor eax,eax
004016ED    .  33DB               xor ebx,ebx
004016EF    .  33C9               xor ecx,ecx
004016F1    .  B1 10              mov cl,10
004016F3    .  BE 9B424000        mov esi,unpacked.0040429B
004016F8    .  BF AF424000        mov edi,unpacked.004042AF
004016FD    >  8A06               mov al,byte ptr ds:[esi]
004016FF    .  8A66 01            mov ah,byte ptr ds:[esi+1]
00401702    .  3C 60              cmp al,60
00401704    .  76 02              jbe short unpacked.00401708
00401706    .  2C 20              sub al,20
00401708    >  80FC 60            cmp ah,60
0040170B    .  76 03              jbe short unpacked.00401710
0040170D    .  80EC 20            sub ah,20
00401710    >  2C 30              sub al,30
00401712    .  80EC 30            sub ah,30
00401715    .  3C 09              cmp al,9
00401717    .  76 02              jbe short unpacked.0040171B
00401719    .  2C 07              sub al,7
0040171B    >  80FC 09            cmp ah,9
0040171E    .  76 03              jbe short unpacked.00401723
00401720    .  80EC 07            sub ah,7
00401723    >  83C6 02            add esi,2
00401726    .  C0E0 04            shl al,4
00401729    .  0AC4               or al,ah
0040172B    .  8807               mov byte ptr ds:[edi],al
0040172D    .  47                 inc edi
0040172E    .  49                 dec ecx
0040172F    .^ E2 CC              loopd short unpacked.004016FD
00401731    .  A1 73424000        mov eax,dword ptr ds:[404273]
00401736    .  8B1D 77424000      mov ebx,dword ptr ds:[404277]
0040173C    .  2BC3               sub eax,ebx
0040173E    .  66:8B1D AF424000   mov bx,word ptr ds:[4042AF]
00401745    .  66:3BC3            cmp ax,bx
00401748    .  74 05              je short unpacked.0040174F<---这个要改
0040174A    .  E9 13020000        jmp unpacked.00401962
0040174F    >  A1 69424000        mov eax,dword ptr ds:[404269]
00401754    .  8B1D 6D424000      mov ebx,dword ptr ds:[40426D]
0040175A    .  03C3               add eax,ebx
0040175C    .  66:35 1010         xor ax,1010
00401760    .  0FCB               bswap ebx
00401762    .  2AC3               sub al,bl
00401764    .  33DB               xor ebx,ebx
00401766    .  66:8B1D B1424000   mov bx,word ptr ds:[4042B1]
0040176D    .  B9 4E230000        mov ecx,234E
00401772    .  66:83F1 03         xor cx,3
00401776    .  02D9               add bl,cl
00401778    .  66:81F1 1010       xor cx,1010
0040177D    .  03D9               add ebx,ecx
0040177F    .  66:3BC3            cmp ax,bx
00401782    .  74 05              je short unpacked.00401789<----这个要改
00401784    .  E9 D9010000        jmp unpacked.00401962
00401789    >  33C0               xor eax,eax
0040178B    .  33DB               xor ebx,ebx
0040178D    .  33D2               xor edx,edx
0040178F    .  66:A1 B3424000     mov ax,word ptr ds:[4042B3]
00401795    .  8BD8               mov ebx,eax
00401797    .  0FCB               bswap ebx
00401799    .  E8 7C000000        call unpacked.0040181A
0040179E    .  66:3D 7D19         cmp ax,197D
004017A2    .  74 02              je short unpacked.004017A6<-----这个要改
004017A4    .  EB 02              jmp short unpacked.004017A8
004017A6    >  EB 0B              jmp short unpacked.004017B3
004017A8    >  66:3D 5517         cmp ax,1755
004017AC    .  74 05              je short unpacked.004017B3<----这个要改
004017AE    .  E9 AF010000        jmp unpacked.00401962
004017B3    >  33C0               xor eax,eax
004017B5    .  66:8B1D B5424000   mov bx,word ptr ds:[4042B5]
004017BC    .  0FCB               bswap ebx
004017BE    .  8BC3               mov eax,ebx
004017C0    .  0BC0               or eax,eax
004017C2    .  74 21              je short unpacked.004017E5<-----这个要改
004017C4    .  0FBDD0             bsr edx,eax
004017C7    .  B9 1F000000        mov ecx,1F
004017CC    .  2BCA               sub ecx,edx
004017CE    .  D3E0               shl eax,cl
004017D0    .  8D15 CB424000      lea edx,dword ptr ds:[4042CB]
004017D6    >  D1E0               shl eax,1
004017D8    .  0F9202             setb byte ptr ds:[edx]
004017DB    .  8002 30            add byte ptr ds:[edx],30
004017DE    .  42                 inc edx
004017DF    .  41                 inc ecx
004017E0    .  83F9 20            cmp ecx,20
004017E3    .^ 7C F1              jl short unpacked.004017D6
004017E5    >  A1 CB424000        mov eax,dword ptr ds:[4042CB]
004017EA    .  0B05 CF424000      or eax,dword ptr ds:[4042CF]
004017F0    .  0B05 D3424000      or eax,dword ptr ds:[4042D3]
004017F6    .  3D 31313130        cmp eax,30313131
004017FB    .  74 05              je short unpacked.00401802<--------这个要改
004017FD    .  E9 60010000        jmp unpacked.00401962
00401802    >  6A 30              push 30                            ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
00401804    .  68 31414000        push unpacked.00404131             ; |Title = "Info"
00401809    .  68 36414000        push unpacked.00404136             ; |Text = "Well done you have made it, send the solution to......"
0040180E    .  6A 00              push 0                             ; |hOwner = NULL
00401810    .  E8 970C0000        call <jmp.&USER32.MessageBoxA>     ; \MessageBoxA
把上面所有这个要改的跳转指令改为jne,注册成功
也许各位菜鸟都看到了,几乎每一个je后面都是无条件跳转指令jmp,而且每个jmp都跳转到错误提示信息那里
而那个je正好跳过了那个无条件跳转.所以我们改了他就可以爆破,估计这么多跳转是特意防止我们爆破的,
不过还是让我们爆破了.呵呵^_^

----------------------------------------------------------------------------------------------
【破解心得】

整理成程序格式
if 注册码正确 then<---这个是cmp加je的那个跳转,下面的都是
if 注册码正确 then
if 注册码正确 then
if 注册码正确 then
if 注册码正确 then
goto 注册码正确
else
goto 注册失败<----那个jmp
end if
else
goto 注册失败<----还是jmp
end if
else
goto 注册失败<----下面是注册失败的语句的都是jmp
end if
else
goto 注册失败
end if
else
goto 注册失败
end if

注册正确:
提示注册正确

注册失败:
提示注册失败

这个程序的注册验证部分整理成程序格式真折腾人,嵌套if语句都要把我弄昏了.可是编这个crackme的人竟然没有昏~~~~
厉害:)
----------------------------------------------------------------------------------------------
【破解声明】   我是一只小菜鸟,偶得一点心得,愿与大家分享:)

【版权声明】   本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
----------------------------------------------------------------------------------------------
                                                                                 文章写于2005-1-24 11:19:00


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

收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 296
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
晕,爆破啊。。。本来等着看算法的
我有看过几百个跳转的软件。。。
喜欢爆破试试sLtYJ的这个crackme吧,^_^附件:Crackme_Anti.rar
2005-1-24 20:15
0
雪    币: 300
活跃值: (521)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
3
016F:0040EB33 0F84A4020000     JZ       NEAR 0040EDDD    |

016F:0040ED84 0F84F7010000     JZ       NEAR 0040EF81    |  三条指令形成贼船。要过五次。也可以跟出一点注册码~

016F:0040EDD8 E954FDFFFF       JMP      0040EB31         |

016F:0040EE63 0F8418010000     JZ       NEAR 0040EF81   关键跳



Winter是不是知道我用TRW啊~~没有明显的跳转标记想晃我眼睛啊~~OD可能就好点,容易看出是循环在比较~不过俺用不了OD~~系统烂~
2005-1-25 07:14
0
雪    币: 214
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
这个CrackMe还算比较简单的,我这样的菜鸟也破解出来了
用OD载入之后,双击“Well done you have made it”那里,再向上找,就好了
2005-1-25 09:09
0
雪    币: 272
活跃值: (470)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
5
支持顶一个!
2005-1-25 09:15
0
雪    币: 300
活跃值: (521)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
6
最初由 davidnash 发布
这个CrackMe还算比较简单的,我这样的菜鸟也破解出来了
用OD载入之后,双击“Well done you have made it”那里,再向上找,就好了


问题是如果他不给你字符串提示呢?本来CRACKME就是练习玩,还是多练习下跟踪能力。
2005-1-25 12:36
0
雪    币: 97697
活跃值: (200834)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
支持你!!!
2005-1-27 02:01
0
雪    币: 221
活跃值: (137)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
谢谢你如此强的分析
2005-1-28 00:10
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不错,支持一下
2005-1-28 20:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不是追出注册码吗?怎么成爆破了,能说一说如何找到注册码吗,谢谢!
2005-1-28 21:43
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
TNT??我一般都用这个,好用呀

其实爆破也是一门艺术~~~~
2005-2-1 13:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ZQH
12
不错.请继续
2005-2-1 17:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
碰到提示信息是中文的,用什么软件能查到啊?
2005-2-1 17:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Jam
14
还是没有追出注册码啊~~~
2005-2-11 22:41
0
雪    币: 214
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
最初由 yyjshq 发布
碰到提示信息是中文的,用什么软件能查到啊?


可以用w32asm黄金中文版,但是有时也不行,大多数行
2005-2-13 05:58
0
游客
登录 | 注册 方可回帖
返回
//