能力值:
( LV2,RANK:10 )
|
-
-
2 楼
不错啊,高手都是从这步做起的
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
谢谢你
你也加油啊
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
不错的,学习一下
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
呵呵 支持 继续努力~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
这个看不懂!!!!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
很详细,学习了
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
支持下,这个我看懂了,感动,应该多一些这些帖子,让我们不知道怎么起步的人学习
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
学习一下
|
能力值:
( LV6,RANK:90 )
|
-
-
10 楼
本人菜鸟,第一次跟踪CM算法,请多多指教。
我下下来一看还有另一个对话框,试着搞定它。
先输入楼主的注册机生成的序列号,失败。使用OD,定位到关键代码:
0042F4BC |. 8D55 F0 lea edx, dword ptr [ebp-10]
0042F4BF |. 8B83 E0010000 mov eax, dword ptr [ebx+1E0]
0042F4C5 |. E8 8EB5FEFF call 0041AA58
0042F4CA |. 8B45 F0 mov eax, dword ptr [ebp-10];用户输入的序列号
0042F4CD |. 8B55 F4 mov edx, dword ptr [ebp-C];Hello Dude!
[COLOR="Red"]0042F4D0 |. E8 2745FDFF call 004039FC[/COLOR]
0042F4D5 |. 75 1A jnz short 0042F4F1
0042F4D7 |. 6A 00 push 0
0042F4D9 |. B9 64F54200 mov ecx, 0042F564 ; ASCII "Congratz!"
0042F4DE |. BA 70F54200 mov edx, 0042F570 ; ASCII "God Job dude !! =)"
跟了半天,原来 call 004039FC是判断输入的序列号是否等于Hello Dude!,等于则成功。遂作罢,于是跟踪楼主所破的这个对话框。先不看,搞定后和楼主对照。
先爆破,成功,此程序爆破确实很简单,然后跟踪算法,跟了半天才找到关键代码,其余都是糊弄人的。关键代码如下:
0042FA87 |. 8B45 F0 mov eax, dword ptr [ebp-10]
0042FA8A |. 0FB600 movzx eax, byte ptr [eax]
0042FA8D |. F72D 50174300 imul dword ptr [431750]
0042FA93 |. A3 50174300 mov dword ptr [431750], eax
0042FA98 |. A1 50174300 mov eax, dword ptr [431750]
0042FA9D |. 0105 50174300 add dword ptr [431750], eax
其实就是计算:0x29*输入的第一个字节*2,然后把它转化为字符串,相当于C中的sprintf(tmp,"%d", value)。
对照楼主的,基本吻合;但不大明白楼主的注册机,为什么要强迫用户输入多于3个字节的串。
一直用C、C++,第一次跟踪delphi的程序,还真不习惯,调用函数传递参数,怎么不压栈呢。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
呵呵····不错·····
|
能力值:
( LV6,RANK:90 )
|
-
-
12 楼
刚才看了一下CCDebuger老大的OD教程,OllyDBG 入门系列(二)-字串参考(http://bbs.pediy.com/showthread.php?s=&threadid=21308),那个例子中判断字符串相等的算法竟然与本文的例子判断字符串相同的算法(0042F4D0 |. E8 2745FDFF call 004039FC)非常的相似。老大分析的非常详细!
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
ls也是有精华的人
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
开始有点感觉了
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
这个,一定要顶..连我这么菜的小菜都看出点门道道来了
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
什么时候才能转正呢
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
顶哈顶哈生生世世
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
谢谢分享 学习了。
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
看到这篇贴子,我顿时热泪盈眶!!!
因为这里面的CrackMe就是我人生中接触到的第一个CrackMe!!!
当年我跟着教程一步一步学着爆破它的情景历历在目!
哥现在心情很激动
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
楼主太厉害啦,向楼主学习!
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
初学者请教:
0042F9DD >|. 8B83 DC010000 MOV EAX,DWORD PTR DS:[EBX+1DC] ; Edit1 怎么知道是edit1 或是其它的选项呢??
0042F9E3 >|. E8 70B0FEFF CALL CM.0041AA58 ; getText -- 取Name(同上) 怎么知道是取注册用户名? 如果注册用户名有两个以上的如用户名,地址电话,机器码这样的怎么判断?
0042F9E8 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; Name -> EAX
0042F9EB |. 0FB600 MOVZX EAX,BYTE PTR DS:[EAX] ; 第一个字符 -> EAX
谢谢
|
能力值:
( LV3,RANK:20 )
|
-
-
22 楼
不错
过来支持 你一下
..
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
恩 不错 学习了
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
小有成就啊,恭喜!
|
|
|