首页
社区
课程
招聘
KeyGenMe:Crack入门系列
发表于: 2006-10-26 10:18 113325

KeyGenMe:Crack入门系列

2006-10-26 10:18
113325
收藏
免费 7
支持
分享
最新回复 (223)
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
51
我用vc写了个01的注册机,要的话,喊一下
2006-12-19 22:56
0
雪    币: 228
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
52
新手从这里开始学习了,3Q
2006-12-21 10:16
0
雪    币: 297
活跃值: (21)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
53
最初由 Wucheng 发布
第7个:
通过字符串参考下断,输入name:Wucheng serial:223342
004025AA . 66:3D 0300 cmp ax, 3 ; name长度与3比
004025AE . 0F8C CB030000 jl 0040297F ; 小于,跳向失败
004025B4 . 8B4D A8 mov ecx, dword ptr [ebp-58]
........

从VB的函数名有时可看出来它要完成的功能,但不知它的参数是怎么传递的,还有结果是怎么回传的,它压栈的东西让人觉得稀里糊涂的。能不能请Wucheng或高手解释一下
这里多谢了!!
还有楼主辛苦了!
2006-12-21 10:49
0
雪    币: 297
活跃值: (21)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
54
最初由 Wucheng 发布
第7个:
通过字符串参考下断,输入name:Wucheng serial:223342
004025AA . 66:3D 0300 cmp ax, 3 ; name长度与3比
004025AE . 0F8C CB030000 jl 0040297F ; 小于,跳向失败
004025B4 . 8B4D A8 mov ecx, dword ptr [ebp-58]
........
0040277B . 8BD8 mov ebx, eax
0040277D . 8B45 D8 mov eax, dword ptr [ebp-28]
00402780 . 8985 08FFFFFF mov dword ptr [ebp-F8], eax
00402786 . C785 00FFFFFF>mov dword ptr [ebp-100], 8
00402790 . B8 01000000 mov eax, 1
00402795 . 8985 78FFFFFF mov dword ptr [ebp-88], eax
0040279B . 89BD 70FFFFFF mov dword ptr [ebp-90], edi
004027A1 . C785 48FFFFFF>mov dword ptr [ebp-B8], 6
004027AB . 89BD 40FFFFFF mov dword ptr [ebp-C0], edi
004027B1 . 8985 38FFFFFF mov dword ptr [ebp-C8], eax
004027B7 . 89BD 30FFFFFF mov dword ptr [ebp-D0], edi
004027BD . 8D4D DC lea ecx, dword ptr [ebp-24]
004027C0 . 898D 28FFFFFF mov dword ptr [ebp-D8], ecx
004027C6 . C785 20FFFFFF>mov dword ptr [ebp-E0], 4008
004027D0 . 8D95 70FFFFFF lea edx, dword ptr [ebp-90]
004027D6 . 52 push edx
004027D7 . 8D45 B8 lea eax, dword ptr [ebp-48]
004027DA . 50 push eax
004027DB . 8D8D 40FFFFFF lea ecx, dword ptr [ebp-C0]
004027E1 . 51 push ecx
004027E2 . 8D55 90 lea edx, dword ptr [ebp-70]
004027E5 . 52 push edx
004027E6 . FF15 C8104000 call dword ptr [<&MSVBVM60.__vbaVarMo>; A mod 6=C
。。。。。。

这段看得我有点晕,从函数名可看出它要完成什么功能,但不知它的参数是怎么传递的,还有结果是怎么回传的,感觉压栈的东西并不是真正需要的参数或参数的地址啊。。。。
请Wucheng或那位大侠指点一二,多谢了!!
感谢楼主,楼主辛苦了!!
2006-12-21 10:59
0
雪    币: 228
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
55
好难啊,我分析了第一个,暴破可以了,关键跳找到了,不过关键call没找到啊
2006-12-21 15:24
0
雪    币: 228
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
56
初次尝试,太伤自尊了,再研究2天,看能不能做出第一个的注册机
2006-12-21 15:32
0
雪    币: 461
活跃值: (93)
能力值: ( LV9,RANK:1170 )
在线值:
发帖
回帖
粉丝
57
最初由 dewar 发布
从VB的函数名有时可看出来它要完成的功能,但不知它的参数是怎么传递的,还有结果是怎么回传的,它压栈的东西让人觉得稀里糊涂的。能不能请Wucheng或高手解释一下
这里多谢了!!
还有楼主辛苦了!


如有以下指令:
push edx
push ecx

一般情况下,edx+8,ecx+8处为实际参数或参数的地址.你可以试试看.
2006-12-21 20:25
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
58
自己做得KeyGenMe01
目标: happytown的KeyGenMe CrackMe
注册机:自己用vc编写了一个,要的喊!
破解工具:OD、计算器
  首先用peid查壳,无壳。运行,收集足够的信息,用OD载入,通过字符串参考"Congratulations",找到如下信息:

00402568   .  FF15 80104000 call    dword ptr [<&MSVBVM60.__vbaR8Str>]    ;  MSVBVM60.__vbaR8Str
0040256E   .  DC9D 14FFFFFF fcomp   qword ptr [ebp-EC]
00402574   .  DFE0          fstsw   ax
00402576      F6C4 40       test    ah, 40
00402579      0F84 86000000 je      00402605
0040257F   .  B9 04000280   mov     ecx, 80020004
00402584   .  894D 8C       mov     dword ptr [ebp-74], ecx
00402587   .  B8 0A000000   mov     eax, 0A
0040258C   .  8945 84       mov     dword ptr [ebp-7C], eax
0040258F   .  894D 9C       mov     dword ptr [ebp-64], ecx
00402592   .  8945 94       mov     dword ptr [ebp-6C], eax
00402595      C785 6CFFFFFF>mov     dword ptr [ebp-94], 00401C74          ;//**  UNICODE "Congratulations"
0040259F      BF 08000000   mov     edi, 8
004025A4      89BD 64FFFFFF mov     dword ptr [ebp-9C], edi

往上查找,找到

0040256E   .  DC9D 14FFFFFF fcomp   qword ptr [ebp-EC]                        ;//堆栈中为密码,ebp-ec中为加密数据                               
00402574   .  DFE0          fstsw   ax
00402576      F6C4 40       test    ah, 40
00402579      0F84 86000000 je      00402605                                ;//爆破在此就可

往上追踪.
004024A9   .  8B1D 0C104000 mov     ebx, dword ptr [<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVarList
004024AF   >  66:3B75 D0    cmp     si, word ptr [ebp-30]                ;//关键,处理密码,下断
004024B3   .  0F8F 93000000 jg      0040254C
004024B9   .  C745 BC 01000>mov     dword ptr [ebp-44], 1

注册信息处理:
004024A9   .  8B1D 0C104000 mov     ebx, dword ptr [<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVarList
004024AF   >  66:3B75 D0    cmp     si, word ptr [ebp-30]                ;//ebp-30记录用户name长度,si计数
004024B3   .  0F8F 93000000 jg      0040254C
004024B9   .  C745 BC 01000>mov     dword ptr [ebp-44], 1
004024C0   .  C745 B4 02000>mov     dword ptr [ebp-4C], 2
004024C7   .  8D45 CC       lea     eax, dword ptr [ebp-34]                ;//用户name地址;ebp-24为密码地址
004024CA   .  8985 7CFFFFFF mov     dword ptr [ebp-84], eax
004024D0   .  C785 74FFFFFF>mov     dword ptr [ebp-8C], 4008
004024DA   .  8D4D B4       lea     ecx, dword ptr [ebp-4C]
004024DD   .  51            push    ecx
004024DE   .  0FBFD6        movsx   edx, si
004024E1   .  52            push    edx
004024E2   .  8D85 74FFFFFF lea     eax, dword ptr [ebp-8C]
004024E8   .  50            push    eax
004024E9   .  8D4D A4       lea     ecx, dword ptr [ebp-5C]
004024EC   .  51            push    ecx
004024ED   .  FF15 44104000 call    dword ptr [<&MSVBVM60.#632>]          ;  MSVBVM60.rtcMidCharVar
004024F3   .  8D55 A4       lea     edx, dword ptr [ebp-5C]
004024F6   .  52            push    edx
004024F7   .  8D45 C8       lea     eax, dword ptr [ebp-38]
004024FA   .  50            push    eax
004024FB   .  FF15 74104000 call    dword ptr [<&MSVBVM60.__vbaStrVarVal>>;  MSVBVM60.__vbaStrVarVal
00402501   .  50            push    eax
00402502   .  FF15 18104000 call    dword ptr [<&MSVBVM60.#516>]          ;  MSVBVM60.rtcAnsiValueBstr
00402508   .  66:0FAFC6     imul    ax, si                                  ;//用户名*次数password=m*i
0040250C   .  0F80 5F010000 jo      00402671
00402512   .  0FBFC8        movsx   ecx, ax
00402515   .  03CF          add     ecx, edi                                  ;//pasword+=pasword
00402517   .  0F80 54010000 jo      00402671
0040251D   .  8BF9          mov     edi, ecx
0040251F   .  8D4D C8       lea     ecx, dword ptr [ebp-38]
00402522   .  FF15 B4104000 call    dword ptr [<&MSVBVM60.__vbaFreeStr>]  ;  MSVBVM60.__vbaFreeStr
00402528   .  8D55 A4       lea     edx, dword ptr [ebp-5C]
0040252B   .  52            push    edx
0040252C   .  8D45 B4       lea     eax, dword ptr [ebp-4C]
0040252F   .  50            push    eax
00402530   .  6A 02         push    2
00402532   .  FFD3          call    ebx
00402534   .  83C4 0C       add     esp, 0C
00402537   .  B8 01000000   mov     eax, 1
0040253C   .  66:03C6       add     ax, si
0040253F   .  0F80 2C010000 jo      00402671
00402545   .  8BF0          mov     esi, eax
00402547   .^ E9 63FFFFFF   jmp     004024AF
0040254C   >  69FF 96740100 imul    edi, edi, 17496                     ;//最后结束后,password=pasword*0x17496

00402425   .  FF15 50104000 call    dword ptr [<&MSVBVM60.__vbaI2I4>]     ;  MSVBVM60.__vbaI2I4
0040242B   .  8945 D0       mov     dword ptr [ebp-30], eax
0040242E   .  66:3D 0300    cmp     ax, 3                                ;//用户名输入限制3
00402432   .  0F8C CD010000 jl      00402605

算法:(破解后,看了wucheng的帖子,借用呵呵)
   1。依次取用户名ascii值,然后转换成10进制 m;
   2。password = m*i(i是循环变量,用于取字符) +   password ;//password 初始值为1
   3。password = password*95382;
   4。比较password(明码哦!)
2006-12-21 21:17
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
59
keygenme_02
目标: happytown的KeyGenMe CrackMe 02
破解工具:OD、计算器
注册机:自己用vc编写了一个,要的喊!
同一,比一还简单.直接把name中的字符相加,然后与一个实数异或.不同的是在  

00402562   > \69FF 10030000 imul    edi, edi, 310
00402568   .  0F80 27010000 jo      00402695
0040256E   .  DD05 E8104000 fld     qword ptr [4010E8]
00402574   .  FF15 9C104000 call    dword ptr [<&MSVBVM60.__vbaFpI4>>;  MSVBVM60.__vbaFpI4
0040257A   .  33F8          xor     edi, eax

用了xor edi,eax.
往上看
0040256E   .  DD05 E8104000 fld     qword ptr [4010E8]这句是关键,实数入栈:
ds:[004010E8]=648213125.0000000
转化Hex为 26a2f285

get it!!!

用户名输入限制为2-25
2006-12-21 21:30
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
60
keygenme_03
目标: happytown的KeyGenMe CrackMe
破解工具:OD、计算器
注册机:vc编写了一个,要的喊
关键点:(前面关于name得处理,同01,02)
0040264E   > /8BC6          mov     eax, esi
00402650   . |99            cdq
00402651   . |B9 24000000   mov     ecx, 24
00402656   . |F7F9          idiv    ecx                                ;除以24取余数于edx
00402658   . |8B45 C0       mov     eax, dword ptr [ebp-40]
0040265B   . |8985 4CFFFFFF mov     dword ptr [ebp-B4], eax
00402661   . |C785 44FFFFFF>mov     dword ptr [ebp-BC], 8
0040266B   . |C745 AC 01000>mov     dword ptr [ebp-54], 1
00402672   . |C745 A4 02000>mov     dword ptr [ebp-5C], 2
00402679   . |8D4D DC       lea     ecx, dword ptr [ebp-24]
0040267C   . |898D 6CFFFFFF mov     dword ptr [ebp-94], ecx
00402682   . |C785 64FFFFFF>mov     dword ptr [ebp-9C], 4008
0040268C   . |8D45 A4       lea     eax, dword ptr [ebp-5C]
0040268F   . |50            push    eax
00402690   . |83C2 01       add     edx, 1                        ;edx+1
00402693   . |0F80 BC010000 jo      00402855
00402699   . |52            push    edx                                ;入栈

call 来自 MSVBVM60.rtcMidCharBstr

733B4644    2BF3            sub     esi, ebx
733B4646    8BC6            mov     eax, esi
733B4648    50              push    eax
733B4649    8B4424 14       mov     eax, dword ptr [esp+14]
733B464D    03D8            add     ebx, eax                             ;把查表的序号(偏移值)算出,得值在ebx中
733B464F    53              push    ebx
733B4650    FF15 EC193973   call    dword ptr [<&OLEAUT32.#150>]     ; OLEAUT32.SysAllocStringByteLen
733B4656    8BF0            mov     esi, eax
733B4658    85F6            test    esi, esi
733B465A    0F84 D0320200   je      733D7930

KeyGenMe模块中:
004026DE   .  83C4 10       add     esp, 10
004026E1   .  DB45 D0       fild    dword ptr [ebp-30]                ;把上次处理后得商值[epb-30],压入堆栈
004026E4   .  DD9D 04FFFFFF fstp    qword ptr [ebp-FC]                ;弹出,存在[ebp-fc]处
004026EA   .  DD85 04FFFFFF fld     qword ptr [ebp-FC]                ;实数压栈
004026F0   .  833D 00304000>cmp     dword ptr [403000], 0
004026F7   .  75 08         jnz     short 00402701
004026F9   .  DC35 F8104000 fdiv    qword ptr [4010F8]          ;/3

算法是:
1 依次取用户名ascii值,然后转换成10进制 m;
2 password = m*i(i是循环变量,用于取字符) +   password ;//password 初始值为1
3 password = password*0x147d5;
4 n = password%24;
5 根据n值查表"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"得密码。
6 password/3,四舍五入,循环4-6
注,Name长度限制很简单,就不再罗嗦了。

爆破同01 02。
2006-12-21 21:33
0
雪    币: 297
活跃值: (21)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
61
最初由 bxm 发布
如有以下指令:
push edx
push ecx

一般情况下,edx+8,ecx+8处为实际参数或参数的地址.你可以试试看.

多谢bxm的指点!
2006-12-22 14:22
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
62
学习学习再学习!
2006-12-28 22:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
63
最初由 alpsdew 发布
for( ; j < Lenth ; j++ )
{
Password = ( (int)Name[j] ) * (j+1) + Password ;
}

int j=1;
for( ; j <= Lenth ; j++ )
{
   Password = ( (int)Name[j-1] ) * (j) + Password ;
}

看了你的注册机再看的汇编

另外一些VB的API说明在哪里能够找到?我从看雪里下载的VB API不全啊,请大虾们告诉我们这些菜鸟

__vbafreestr,__vbafreevarlist等等都找不到
2007-1-1 04:34
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
64
我是新手,向楼主学习
2007-1-4 08:40
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
65
这位版主强呀```
看来偶要加点米饭`把版主给crack掉``西
2007-1-4 09:51
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
66
最初由 Wucheng 发布
我跟了第2个,算法如下:
1.name的每个字符累加后再加1,记为A
2.A^26A2F285=B
3.B的十进制即serial.
如:
........


老兄..
你的算法是怎?算出?的..
本人是菜?,能??破文?..????...
本人只能?哕用一部份的破解工具,但?什?算法的方法一?不明白..
2007-1-4 18:52
0
雪    币: 122
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
67
现在才知道,没学过汇编就跟本别想弄更深的破解。

痛苦中。。。。。。
2007-1-7 19:28
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
68
大家先分析一下,很简单,适合入门。
上传的附件:
2007-1-8 15:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
69
支持你帮住我等菜菜!
2007-1-9 11:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
70
多谢老大,初学破解,学习中
2007-1-9 15:49
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
71
最初由 kaien 发布
我看你干脆以后自己去开发一些加密算法好了,不要做成线性的,那些太简单了。做的复杂点,先试试多项式的。再把一些更复杂的数学函数都用用...

我写了一个对称加密算法.比较适合于软件加密.不过从来也没有用在crackme中,因为不可能有人逆向出来.也写了几个hash算法,
2007-1-9 21:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
72
先下了
慢慢研究~~
谢谢~~~~~
2007-1-10 20:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
73
新手.学习中.

呵呵

先试下.

不行再来请教个位

先谢谢楼主
2007-1-11 12:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
74
学习中啊。!!!!
2007-1-12 19:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
75
真是入门的好教程雅 谢谢版主
2007-1-15 21:02
0
游客
登录 | 注册 方可回帖
返回
//