首页
社区
课程
招聘
[原创]要求:写出生成注册码的算法可得一百分,暴力破解请吃鸭蛋0分
发表于: 2009-1-7 19:32 13032

[原创]要求:写出生成注册码的算法可得一百分,暴力破解请吃鸭蛋0分

2009-1-7 19:32
13032
收藏
免费 0
支持
分享
最新回复 (38)
雪    币: 129
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
楼上的 大大 把算法分析的过程写一下把
我只能暴力破解 算法看不明白 讲解下
mov     eax, 00454538
call    00427D20
2009-2-11 15:07
0
雪    币: 129
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
貌似站在你楼上的几位都是神
2009-2-11 15:09
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
啊...到此一游..
2009-2-11 18:42
0
雪    币: 1596
活跃值: (35)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
29
00454495   .  8D55 F0       lea     edx, dword ptr [ebp-10]
00454498   .  8B83 00030000 mov     eax, dword ptr [ebx+300]
0045449E   .  E8 5DEFFDFF   call    <GetText>                        ;  取机器码
004544A3   .  8B45 F0       mov     eax, dword ptr [ebp-10]
004544A6   .  8D55 F4       lea     edx, dword ptr [ebp-C]
004544A9   .  E8 B23EFBFF   call    00408360
004544AE   .  8B45 F4       mov     eax, dword ptr [ebp-C]
004544B1   .  E8 5A41FBFF   call    <EAX转16进制>                       ;  看edx和eax
004544B6   .  E8 950BFBFF   call    00405050                         ;  运算1
004544BB   .  E8 6C0BFBFF   call    0040502C                         ;  运算2
004544C0   .  E9 67030000   jmp     0045482C

0045482C   > \05 9B94A96E   add     eax, 6EA9949B                ;注意进位
00454831   .  81D2 A5000000 adc     edx, 0A5                         ;如有进位还要加上进位
00454837   .  35 4D99B796   xor     eax, 96B7994D
0045483C   .  81F2 9C000000 xor     edx, 9C
00454842   .^\E9 8DFCFFFF   jmp     004544D4

004544D4   > /3B5424 04     cmp     edx, dword ptr [esp+4]           ;  比较64位的高32位
004544D8   . |75 03         jnz     short 004544DD
004544DA   . |3B0424        cmp     eax, dword ptr [esp]             ;  比较64位的低32位
004544DD   > |5A            pop     edx
004544DE   . |58            pop     eax
004544DF   . |75 0C         jnz     short 004544ED
004544E1   . |B8 38454500   mov     eax, 00454538                    ;  恭喜!恭喜!!!注册成功
004544E6   . |E8 3538FDFF   call    00427D20

这个CM主要注意的是它用两个32位寄存器,当一个64位寄存器用。
1、取得机器码,这时是一个10进制整数。
2、转换成16进制,这里因为一个32位寄存器装不下,所以用了两个32位寄存器,高位在EDX,低位在EAX。
3、经过运算1、运算2后,再加上0x0A56EA9949B,后再异或上0x9C96B7994D,注意进位。
4、再把以上运算的结果转换成10进制就是注册码了!
2009-7-16 12:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
爆了。。。。算法到没考虑,本来不想吃鸭蛋,追了半天的注册码没追到。。。惭愧啊。。
2009-8-7 10:30
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
吃了0鸡蛋
2009-8-12 11:54
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
太容易爆了,不爆对不起自己啊。

鸭蛋就鸭蛋吧,总比没得吃好。
上传的附件:
2009-8-25 17:14
0
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
我努力破。。
2009-8-27 22:09
0
雪    币: 42
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
郁闷,我vb写的怎么会溢出,算不出来啊,菜鸟向LZ投降
2009-8-27 22:14
0
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
有没有勤奋的高手给菜鸟们写一下破解过程,详细点的。
2009-8-28 09:54
0
雪    币: 146
活跃值: (182)
能力值: ( LV13,RANK:220 )
在线值:
发帖
回帖
粉丝
36
第一次看到注册码在EAX和EDX中,
00405041  |.  8B0424        MOV EAX,DWORD PTR SS:[ESP]               ;  1265245500给EAX
00405044  |.  F76424 0C     MUL DWORD PTR SS:[ESP+C]                 ;  *31

计算后高位存在EDX中,低位在EAX继续参与下面得 计算
。。
学习了
2009-8-28 12:30
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
研究了一晚,只知道最后那个成功上一点  那两个比较  两个值必须相等。或者注册不会成功。  删除了记录,自己看一下吧。  (至于算法,哎。~还是无法算出。~)  继续努力学习
2009-8-29 21:29
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
还是慢慢研究,毕竟别人放出也是要用心来研究,如果大家想知道算法,最好不懂跟贴回答.~这样学东西更快。~
2009-8-29 21:31
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
⊙﹏⊙b汗.....被楼主搞得有点糊涂了,但是后面......嘎嘎......
2009-8-30 20:45
0
游客
登录 | 注册 方可回帖
返回