能力值:
( LV2,RANK:10 )
|
-
-
2 楼
/////////////////////////////////////////////////////////////////////////////////
CrackMe破解详解:
1.首先用OllyICE打开CrackMe.exe,然后运行。我们第一眼就可以看到很明数据区有信息
你可以先用字符串搜索一下,如果什么都每找到,可以继续跟随本教程,但如果你找到了,你可以用自己的方法,:)
2.在(C)调试窗口,单击右键,选择【查找】--【所有模块中的名称】:如下所示
3.在(N)窗口中,输入Message....以后(别跟我说没有输入框 - -!),会显示如下:选择如图,但看仔细咯,是rdata段的
4.Enter 回车 跟随到(R)窗口,全部下断
5.切换到CrackMe程序,随便输入用户名和序列号,点【登陆】,就断下了,在这里
6.让我们看看领空,这里不是CrackMe领空,所以我们按下Ctrl+F9,然后【切换】到CrackMe,点【确定】,这时就到了,CrackMe领空,如果没有到,那继续返回,直到返回到CrackMe领空,如下图所示的地方:
我在图片上已经附带了详细的说明,应该都能看懂。
7.看图片,已经写的很详细了
这之后,嘿嘿~把【0040168E】处【jnz short 004016A7】改为【je short 004016A7】或者【jmp short 004016A7】就完成了~
//////////////////////////////////////////////////////////////////////////////////////////////////////
后话:
还有一个我个人觉得更好的修改点,只修改一个字节,有人找出来吗?
|
能力值:
(RANK:300 )
|
-
-
3 楼
把偏移地址1673 处的 6个字节改了!
改为
8D 44 24 10 90 90
也可以把
168E 处的
75 改为 74
不过注册机我是没有办法写出来了!
在注册码演算的时候有一串随机数!这个不知道是调试器里面会有这样的结果!还是程序设计的时候随机生成!没有深究!
作者要是愿意解释一下吧!
|
能力值:
( LV8,RANK:130 )
|
-
-
4 楼
name:ccbszhxd
code:鲍痛茂K25223191
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
用OllyICE打开,在0x0040167f处设断点,0x0040168e处用NOP填充
|
能力值:
( LV9,RANK:180 )
|
-
-
6 楼
004016A7 . 68 50304000 push 00403050
004016AC . 68 44304000 push 00403044
改成
68 64304000 push 00403064
68 58304000 push 00403058
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
EDX 是 随即数,但是不是绝对性的(向COM要求一个UUID)
EBX 是 硬盘序列号
//----------------------------------EDX算法----------------------------------------------
// 向COM要求一个UUID。如果机器中有以太网卡,
// UUID最后的六个字节(Data4的2-7字节)应该是本地以太网卡的MAC地址。(不是一定能得到)
GUID uuid;
CoCreateGuid(&uuid);
// Spit the address out
char mac_addr[20];
sprintf(mac_addr,"%d%d%d%d%d%d",
uuid.Data4[2],uuid.Data4[3],uuid.Data4[4],
uuid.Data4[5],uuid.Data4[6],uuid.Data4[7]);
strcpy(strMac,mac_addr);
能写出注册机吗?写好了记得教我哈,呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
- -!学习了~ 乍一看,挺出乎意料的..感觉像掩耳盗铃...不过真的可以
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
有大侠可以指教一下 如何追出序列号
搂主的爆破方法有点简单了
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
嘿嘿。爆破。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
序列号: CUUBY
用户名: 彛獿TNM196152
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
用户:dqgdeng 序列号:倐亅~亅~geb203
楼主这个cm好像没有正确的注册码,我们和楼上的都没有一个正确的,难道不支持乱码?
|
能力值:
( LV4,RANK:50 )
|
-
-
17 楼
004016B3 . E8 6C030000 CALL <JMP.&MFC42.#4224_?
004016CC . E8 53030000 CALL <JMP.&MFC42.#4224_?
用的时候应该把上行中的E8 53030000 改为E8 6C030000 吧
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
又学到一种找字符串的方法.
楼主爱死你了.支持下.
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
下来学习了一下,比较适合我这种新手。呵呵
1.OD载入,找字串“注册失败”
2.往上找,看到S2 / S1 很明显的在比较,下断
3.运行,输假码,断下真码
0040167D . 52 PUSH EDX ; /s2 = "x€倎KKJNPS42139"
0040167E . 50 PUSH EAX ; |s1
|
能力值:
( LV4,RANK:50 )
|
-
-
20 楼
爆破点较多,自己跟了一下,感觉算法跟出来了,因为参与计算的EDX值都不一样,每一次的注册码都不一样,不会写程序,因为EDX每一次数值不一样,也不知道对不对,算法是:序列号每一位与EDX相对应位的ASCII相加取前十位,结果与,EBX(相对与自己的电脑固定值)每一位ASCII算术右移1位的结果相加。结果的每一位ASCII要与用户名的每一位ASCII相等。
|
能力值:
( LV5,RANK:60 )
|
-
-
21 楼
全在这一段里面吧,爆破什么的
大家是到达这里的方法有那些额,说说那
004015B3 . 55 push ebp
004015B4 . 57 push edi
004015B5 . 8BE9 mov ebp, ecx
004015B7 . 6A 01 push 1
004015B9 . E8 6C040000 call <jmp.&MFC42.#6334_CWnd::UpdateData>
004015BE . 8B95 94000000 mov edx, dword ptr [ebp+94]
004015C4 . 83C9 FF or ecx, FFFFFFFF
004015C7 . 8BFA mov edi, edx
004015C9 . 33C0 xor eax, eax
004015CB . F2:AE repne scas byte ptr es:[edi]
004015CD . F7D1 not ecx
004015CF . 49 dec ecx
004015D0 . 0F84 E8000000 je 004016BE
004015D6 . 8BBD 98000000 mov edi, dword ptr [ebp+98]
004015DC . 83C9 FF or ecx, FFFFFFFF
004015DF . F2:AE repne scas byte ptr es:[edi]
004015E1 . F7D1 not ecx
004015E3 . 49 dec ecx
004015E4 . 0F84 D4000000 je 004016BE
004015EA . B9 07000000 mov ecx, 7
004015EF . 8D7C24 09 lea edi, dword ptr [esp+9]
004015F3 . 884424 08 mov byte ptr [esp+8], al
004015F7 . 53 push ebx
004015F8 . F3:AB rep stos dword ptr es:[edi]
004015FA . AA stos byte ptr es:[edi]
004015FB . 8BFA mov edi, edx
004015FD . 83C9 FF or ecx, FFFFFFFF
00401600 . 33C0 xor eax, eax
00401602 . 56 push esi
00401603 . F2:AE repne scas byte ptr es:[edi]
00401605 . F7D1 not ecx
00401607 . 2BF9 sub edi, ecx
00401609 . 8D5C24 10 lea ebx, dword ptr [esp+10]
0040160D . 8BC1 mov eax, ecx
0040160F . 8BF7 mov esi, edi
00401611 . 8BFB mov edi, ebx
00401613 . 8D55 60 lea edx, dword ptr [ebp+60]
00401616 . C1E9 02 shr ecx, 2
00401619 . F3:A5 rep movs dword ptr es:[edi], dword ptr [esi]
0040161B . 8BC8 mov ecx, eax
0040161D . 33C0 xor eax, eax
0040161F . 83E1 03 and ecx, 3
00401622 . F3:A4 rep movs byte ptr es:[edi], byte ptr [esi]
00401624 . 8BFA mov edi, edx
00401626 . 83C9 FF or ecx, FFFFFFFF
00401629 . F2:AE repne scas byte ptr es:[edi]
0040162B . F7D1 not ecx
0040162D . 49 dec ecx
0040162E . 8BF1 mov esi, ecx
00401630 . 85F6 test esi, esi
00401632 . 7E 12 jle short 00401646
00401634 > 8A0C02 mov cl, byte ptr [edx+eax]
00401637 . 8A5C04 10 mov bl, byte ptr [esp+eax+10]
0040163B . 02D9 add bl, cl
0040163D . 885C04 10 mov byte ptr [esp+eax+10], bl
00401641 . 40 inc eax
00401642 . 3BC6 cmp eax, esi
00401644 .^ 7C EE jl short 00401634
00401646 > 8D5D 74 lea ebx, dword ptr [ebp+74]
00401649 . 83C9 FF or ecx, FFFFFFFF
0040164C . 8BFB mov edi, ebx
0040164E . 33C0 xor eax, eax
00401650 . F2:AE repne scas byte ptr es:[edi]
00401652 . F7D1 not ecx
00401654 . 49 dec ecx
00401655 . 33F6 xor esi, esi
00401657 . 85C9 test ecx, ecx
00401659 . 7E 18 jle short 00401673
0040165B > 0FBE0433 movsx eax, byte ptr [ebx+esi]
0040165F . 99 cdq
00401660 . 2BC2 sub eax, edx
00401662 . 8A5434 10 mov dl, byte ptr [esp+esi+10]
00401666 . D1F8 sar eax, 1
00401668 . 02D0 add dl, al
0040166A . 885434 10 mov byte ptr [esp+esi+10], dl
0040166E . 46 inc esi
0040166F . 3BF1 cmp esi, ecx
00401671 .^ 7C E8 jl short 0040165B
00401673 > 8B85 98000000 mov eax, dword ptr [ebp+98]
00401679 . 8D5424 10 lea edx, dword ptr [esp+10]
0040167D . 52 push edx ; /s2
0040167E . 50 push eax ; |s1
0040167F . FF15 BC214000 call dword ptr [<&MSVCRT._mbscmp>] ; \_mbscmp
00401685 . 83C4 08 add esp, 8
00401688 . 85C0 test eax, eax
0040168A . 5E pop esi
0040168B . 5B pop ebx
0040168C . 6A 00 push 0
0040168E . 75 17 jnz short 004016A7
00401690 . 68 64304000 push 00403064 ; 感谢使用
00401695 . 68 58304000 push 00403058 ; 注册成功!
0040169A . 8BCD mov ecx, ebp
0040169C . E8 83030000 call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
004016A1 . 5F pop edi
004016A2 . 5D pop ebp
004016A3 . 83C4 20 add esp, 20
004016A6 . C3 retn
004016A7 > 68 50304000 push 00403050 ; 错误
004016AC . 68 44304000 push 00403044 ; 注册失败!
004016B1 . 8BCD mov ecx, ebp
004016B3 . E8 6C030000 call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
004016B8 . 5F pop edi
004016B9 . 5D pop ebp
004016BA . 83C4 20 add esp, 20
004016BD . C3 retn
004016BE > 6A 00 push 0
004016C0 . 68 3C304000 push 0040303C ; 提示
004016C5 . 68 20304000 push 00403020 ; 请正确填写用户名和序列号!
004016CA . 8BCD mov ecx, ebp
004016CC . E8 53030000 call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
004016D1 . 5F pop edi
004016D2 . 5D pop ebp
004016D3 . 83C4 20 add esp, 20
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
目前只会搞这个最简单的 如何提高呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
搞笑一下,另一种"掩耳盗铃",哈哈
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
这都看不懂,惨了,应该学什么呀???头大!
|