首页
社区
课程
招聘
奉献一个CM
发表于: 2010-4-27 18:29 8216

奉献一个CM

2010-4-27 18:29
8216
近日从手头的项目中发掘出的一点点算法,各位尝试下。

Delphi6写的,无花无壳不防爆,请尽量手下留情,多算少爆

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 472
活跃值: (52)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
Name=  TYRONEKING
Code =  104872215
上传的附件:
2010-4-27 23:59
0
雪    币: 306
活跃值: (85)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
t大,给点提示,小菜分析不出来,哈哈
2010-4-28 12:09
0
雪    币: 435
活跃值: (1307)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
4
abcdefgh
40320000
2010-4-28 14:56
0
雪    币: 306
活跃值: (85)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
哥们给点提示,哈..
2010-4-28 15:09
0
雪    币: 435
活跃值: (1307)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
6
我瞎猜的.....
2010-4-28 15:40
0
雪    币: 306
活跃值: (85)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
额..那你太..
2010-4-28 15:44
0
雪    币: 435
活跃值: (1307)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
8
如果你的name里没有重复字符的话,应该会简单一点,你试试
这事不能说太细,说太细就露怯了
我也似懂非懂
2010-4-28 16:10
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
根据bitt的提示我也猜到了。。。
2010-4-28 16:24
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
看图。。。。。。。
上传的附件:
2010-4-28 16:32
0
雪    币: 306
活跃值: (85)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
11
abcdefgh
5040000- =
2010-4-28 17:22
0
雪    币: 306
活跃值: (85)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
12
谢谢..懂了点..
2010-4-28 17:38
0
雪    币: 151
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
呵呵,不知道大家玩的怎么样,其实用户名也不限制于字母,例如

name=请哥慢捂
code=5053756

我觉得jimly给的结果真油菜
2010-4-29 11:41
0
雪    币: 136
活跃值: (1525)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
14
用dede破解很容易了。。
2010-4-29 20:59
0
雪    币: 202
活跃值: (57)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
15
哈哈,我找到解了。

CrackMe算法分析:

1、用户名:不能有2种以上的重复字符。长度范围8 - 12
2、Code:转换成整数必须大于某指定的值。

以上两条保证算法的容错性。

算法大致流程:
1、用户名转大写,然后排序。例如:dcba1234 -> 1234ABCD
2、用Code做Key对上述字符串作移位密码运算:
   
   常量:a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13

    以1234ABCD作为例子:用户名长度 = 8
    新串顺序:
   Code = Code % a9
   字符一: '1234ABCD'[Code / a8], Code = Code % a8 假设为 'A'
    字符二:'1234BCD'[Code / a7], Code = Code % a7 假设为 'C'
    字符三:'1234BD'[Code / a6], Code = Code % a6 假设为 '4'
    字符四:'123BD'[Code / a5], Code = Code % a5 假设为 '2'
    字符五:'13BD'[Code / a4], Code = Code % a4 假设为 'D'
    字符六:'13B'[Code / a3], Code = Code % a3 假设为'1'
    字符七:'3B'[Code / a2], Code = Code % a2假设为'3'
    字符八:'B'[Code / a1], Code = Code % a1假设为'B'
   那么一位密码后的结果:'AC42D13B'
   该结果与原用户名:'DCBA1234'做比较。

求解过程:
 理解了上述过程,就很容易得到解了:找到排序后的串中个字符的移位值,根据常数反算Code,由于做了模数运算,而且是移位运算,所以存在多对多的解。

附上Delphi注册机:
上传的附件:
2010-4-30 00:26
0
雪    币: 435
活跃值: (1307)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
16
ls最最油菜
2010-4-30 00:32
0
雪    币: 151
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
挺好挺好,这个是全排列的一个生成算法,让大家见笑了
2010-4-30 23:06
0
游客
登录 | 注册 方可回帖
返回
//