能力值:
( LV3,RANK:30 )
|
-
-
2 楼
简单看了一下,只是感觉太烦躁了,该可以逆推出来,战斗去
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
算法写起来很简单,我就是把注册码代入了一个不是很复杂的表达式进行了运算,然后和另一个值进行了匹配~~~
不过倒推还是有难度的喔~~呵呵~~
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
这个本人第一次破解
什么也不输入,点了Regist,竟然显示成功……,还破解干什么?
用OllyDBG打开,在下面字符串上下断:
ASCII "Registration Successful!",LF,"Good Job!",LF,"Please contact:xufeng0325@gmail.com"
程序在0040113D被断下
关键在于地址00401132处的跳转,我把这个跳转改成了2个nop,输入任何注册码都可以成功,不知道这样做算做完了吗?
004010F0 /> \55 push ebp
004010F1 |. 8BEC mov ebp, esp
004010F3 |. 83EC 44 sub esp, 44
004010F6 |. 53 push ebx
004010F7 |. 56 push esi
004010F8 |. 57 push edi
004010F9 |. 8D7D BC lea edi, dword ptr ss:[ebp-44]
004010FC |. B9 11000000 mov ecx, 11
00401101 |. B8 CCCCCCCC mov eax, CCCCCCCC
00401106 |. F3:AB rep stos dword ptr es:[edi]
00401108 |. 8B45 0C mov eax, dword ptr ss:[ebp+C]
0040110B |. 8945 FC mov dword ptr ss:[ebp-4], eax
0040110E |. 817D FC 11010>cmp dword ptr ss:[ebp-4], 111
00401115 |. 74 02 je short crackme.00401119
00401117 |. EB 60 jmp short crackme.00401179
00401119 |> 8B4D 10 mov ecx, dword ptr ss:[ebp+10]
0040111C |. 81E1 FFFF0000 and ecx, 0FFFF
00401122 |. 81F9 EA030000 cmp ecx, 3EA
00401128 |. 75 4F jnz short crackme.00401179
0040112A |. E8 EAFEFFFF call crackme.00401019
0040112F |. 83F8 01 cmp eax, 1
00401132 |. 75 24 jnz short crackme.00401158
00401134 |. 8BF4 mov esi, esp
00401136 |. 6A 00 push 0 ; /Style = MB_OK|MB_APPLMODAL
00401138 |. 68 9C004200 push crackme.0042009C ; |Title = "crackme"
0040113D |. 68 44004200 push crackme.00420044 ; |Text = "Registration Successful!",LF,"Good Job!",LF,"Please contact:xufeng0325@gmail.com"
00401142 |. 8B15 A0374200 mov edx, dword ptr ds:[4237A0] ; |
00401148 |. 52 push edx ; |hOwner => 009F02EA ('CrackMe0.1 By Ferris',class='myWindowClass')
00401149 |. FF15 04534200 call dword ptr ds:[<&USER32.MessageBo>; \MessageBoxA
0040114F |. 3BF4 cmp esi, esp
00401151 |. E8 3A040000 call crackme.00401590
00401156 |. EB 21 jmp short crackme.00401179
00401158 |> 8BF4 mov esi, esp
0040115A |. 6A 00 push 0 ; /Style = MB_OK|MB_APPLMODAL
0040115C |. 68 9C004200 push crackme.0042009C ; |Title = "crackme"
00401161 |. 68 2C004200 push crackme.0042002C ; |Text = "Registration Fail!"
00401166 |. A1 A0374200 mov eax, dword ptr ds:[4237A0] ; |
0040116B |. 50 push eax ; |hOwner => 009F02EA ('CrackMe0.1 By Ferris',class='myWindowClass')
0040116C |. FF15 04534200 call dword ptr ds:[<&USER32.MessageBo>; \MessageBoxA
00401172 |. 3BF4 cmp esi, esp
00401174 |. E8 17040000 call crackme.00401590
00401179 |> 33C0 xor eax, eax
0040117B |. 5F pop edi
0040117C |. 5E pop esi
0040117D |. 5B pop ebx
0040117E |. 83C4 44 add esp, 44
00401181 |. 3BEC cmp ebp, esp
00401183 |. E8 08040000 call crackme.00401590
00401188 |. 8BE5 mov esp, ebp
0040118A |. 5D pop ebp
0040118B \. C2 1000 retn 10
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
呵呵,哭了,真对不起大家!不输入注册码竟然也会显示注册成功~~我修改一下~~
楼上的朋友破解过程确实正确,不过,这个CrackMe不是为暴力破解设计的,不然,我不会这么容易就让你找到下断点的地方,而且验证也不可能只有1个地方有~~这个CrackMe是为了寻找注册码而设计的喔~~
我把程序修改了一下,纠正了不输注册码也能显示注册成功的错误,大家可以再尝试一下。这个CrackMe只有找到注册码才算成功,写出注册机才算真正的成功。这个CrackMe也可以用来练习爆破,不过这个爆破缺少挑战性,呵呵,楼上的朋友再想办法找找注册码~~
修改以后的下载地址(和原来一样~~)
http://www.cnitblog.com/Files/CoffeeCat/crackme/crackme.rar
谢谢楼上朋友的支持喔
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
知道算法在哪里,但是看不明白,只能爆破了
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
好吧,公布算法~~
算法写起来比较简单
_int64 esi;
_int64 sn = 你输入的注册码的数值;
esi = ~sn*sn + (sn & 0x0FF23301) + (sn * 0xBA2E8BA3) / 0x800000000;
esi = esi & 0xFFFFFFFF;
if (esi == 0x86FFB5B8)
// 注册成功
最后算出来的注册码是1143580011,至于如何通过0x86FFB5B8来算出SN,这个是本CrackMe的难点,也是写这个注册机的基础,有兴趣的可以研究一下,我没有研究出来,呵呵,正确的注册码我是通过穷举算出来的~~
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
0040112F |. 83F8 01 CMP EAX,1
00401132 |. 75 24 JNZ SHORT crackme.00401158
00401134 |. 8BF4 MOV ESI,ESP
00401136 |. 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL
00401138 |. 68 9C004200 PUSH crackme.0042009C ; |crackme
0040113D |. 68 44004200 PUSH crackme.00420044 ; |registration successful!\ngood job!\nplease contact:xufeng0325@gmail.com
00401142 |. 8B15 A0374200 MOV EDX,DWORD PTR DS:[4237A0] ; |
00401148 |. 52 PUSH EDX ; |hOwner => 002A07D0 ('CrackMe0.1 By Ferris',class='myWindowClass')
00401149 |. FF15 04534200 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
我是菜鸟,先爆了再说
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
我菜鸟一个 刚把这个爆破了
谢楼主发出如此简单的。。。
呵呵 不好意思 不会破解 只能爆破了
首先注册失败 出 regedistration fail
搜索这个字段,竟然发现了
向上翻竟然有successfull
哈哈 再往上发现关键跳 jnz 改为je 成功爆破
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
楼主给点提示吧!
|
能力值:
(RANK:1060 )
|
-
-
12 楼
干脆md5一万轮求逆吧
|
能力值:
( LV9,RANK:210 )
|
-
-
13 楼
表示上看是可逆的...
能不能把符号表示清楚一点,乘用x,与用and,或用or, 异或用xor,除还是用/,你那个~没有见过,所以不懂...
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
我也只会爆破.
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
先爆了,再找算法
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
哈哈看来大家还是喜欢暴力,比较简单点
|