首页
社区
课程
招聘
[原创]我的Crackme
发表于: 2007-4-19 15:54 13104

[原创]我的Crackme

2007-4-19 15:54
13104
我写的一个Crackme,大家试试看。

要求:
1、不能爆破!
2、分析算法,并写出注册机。

祝 大家好运!

kaien

===================================
作了点修正,大家需要重新下载了。给大家带来的不便表示歉意。
新规定:“密码必须是数字,且位数上不能小于7位。且不能多于128位”
位数太小无法正常参与算法运算。
还发现新的bug可以提问。谢谢!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (27)
雪    币: 333
活跃值: (116)
能力值: ( LV9,RANK:570 )
在线值:
发帖
回帖
粉丝
2
用户名:aCaFeeL
注册码:7

有BUG的
2007-4-19 17:19
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
认真看看再说吧,练习一下

看了一下,BUG 不是一般的多啊,下面来一张贴图,绝非爆破
上传的附件:
2007-4-19 18:44
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
4
一直很惊讶小剑找BUG的能力!
2007-4-19 20:56
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
竟有这样的事情?
2007-4-19 20:59
0
雪    币: 234
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
好!小剑这个找的不错。
万能钥匙一把啊!
不过这的确是完全符合算法的解。
算法搞清楚了吗?
2007-4-19 22:37
0
雪    币: 29214
活跃值: (7724)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
7
当不下来了
2007-4-20 02:36
0
雪    币: 29214
活跃值: (7724)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
8
重新传一下附件?
2007-4-20 02:37
0
雪    币: 234
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
文件已经重新上传了。
程序没有任何手脚。既无Anti,也无加壳压缩,方便你直接切入正题。
关键是算法的分析和还原。
2007-4-20 04:15
0
雪    币: 29214
活跃值: (7724)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
10
可以下了..当下来看看~~
2007-4-20 06:37
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
11
早发现了``哦呵呵``
kaien哥的东东``bug`
注册码只要一位就正确``
2007-4-20 09:56
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
12
http://www.pediy.com/bbshtml/bbs8/pediy8-295.htm

跟这差不太多。努力分析
2007-4-20 10:57
0
雪    币: 29214
活跃值: (7724)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
13
果然差不多
2007-4-20 19:00
0
雪    币: 234
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
14
呵呵!一个小数学游戏而已了。
给大家练炼手地。

to: 大菜一号
第一版中的bug我的确疏忽了。一位数字根本无法参与运算的,原因那要涉及到算法的本身了,现在不便透漏。呵呵!

其实说穿了他的数学原理很简单,而且运算量也不算大,比较适合新手。
不过,他还是有一定的存在价值的。
如果你能真正完全理解这个运算过程后,你会发现"数学"实在是太奇妙了!+U吧! ^_^
“数字的世界存在太多的巧合,而你能抓住他们的概率是多少呢?”
2007-4-22 00:52
0
雪    币: 10773
活跃值: (3262)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
15
密码前4位 做一个初始参数 A  ,
A->f(x)->b      //A 传入f(x)得到b
b->f(x)->c      //再把b 传入f(x)得到c
.........
.......

经过几次运算后 输入的参数 跟 经过f(x)运算后的结果相等,为181E

如果循环次数不为5则失败.

然后接着取密码后面四位数字,做上述运算,同样循环次数不为5 则失败

再接着取四位数字运算,如果后面不够四位的,从第一位开始补够四位 比如密码为125678129时的
取法为:(1256 7812 9125)

这三组数都分别满足上面算法时提示成功!

用户名:netwind
密码:12567812   //密码长度>=8

netwind
125678129
2007-4-22 14:59
0
雪    币: 29214
活跃值: (7724)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
16
补充一句,循环次数为:name的各位ASCII码之和 mod 7
且第4*N+1位(N为2,3,4,.....)不能为0
2007-4-22 16:09
0
雪    币: 29214
活跃值: (7724)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
17
发现BUG一个,如果用户名ASCII之和是7的倍数,就无法注册成功,如abc,因为循环次数为0
2007-4-22 20:53
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
又是找碴的
2007-4-22 22:37
0
雪    币: 234
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
19
netwind的分析已经很有意思了。
“经过f(x)运算后的结果相等,为181E“ 181E就是十进制的6174
能发现这个判断关键之处,做的非常好。
除了循环次数的判断有误
netwind+风间仁就基本上是正确的了。

风间仁对循环次数的理解已经很透彻了,做得不错哦。
sum(name)%7=0的情况那是被我故意排除的。因为它的注册码形式过于简单了,很容易会被推算出来成为分析算法得突破口,所以都被我加入了黑名单,呵呵。

这个问题已经基本上被破解了。
那么让我们来看看 经过f(x)的运算=6174说明了什么呢?
这个数是数学上“非 常 奇 妙”的结果。
事实上,它并不是偶然而是必然。

分析一下f(x)的具体运算大家就会明白了。
这个数字--6174,被称为“数字黑洞”。
任何四位数字(1000 - 9999之间的),经过f(x)的运算只有两种结果0或者6174。
经过我的具体统计发现其循环运算次数正好是在0-7之间。
且每种情况都有很多符合要求的四位数字。

例如3次运算的话,就有2124个四位数符合要求。
试想这种四位数排列出来的符合要求的注册码会有多少呢?
如果你的密码长度为4*k 其中k>=2。且根据用户名计算出的循环次数必须为3的话
那么你的注册码就有2124*2124*...*2124(k个2124相乘)=2124^k
而长度为4*k的数字组合有10^(4k)=10000^k
所以这种注册码的分布概率就是P(k)=2124^k / 10000^k = 0.2124^k
即P(k) = 0.2124^k
P(2)=4.5%
P(3)=0.96%
P(4)=0.2%
当k=2,即密码长度为4*2 = 8位的时候,你将有4.5%的可能性在第一次凑出一个正确答案来。
而当k=4,也就是说密码长度 = 16位,你也有0.2%的可能性在一次性凑出符合条件的注册码。
可见要获得这种注册码的机会是很高的哦!

最后,欢迎大家的热情参与和辛苦分析
2007-4-23 06:22
0
雪    币: 10773
活跃值: (3262)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
20
f(x)算法太长了,没精力和耐心跟,楼主可否把算法贴出来
2007-4-23 15:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
还存在BUG
我一个菜鸟 才要用它来练手  
下下来后``
自己随便输了一个
帐户用数字 121
密码 11111111
结果成功``   后来多试几次 竟然出现 用户名 在121 的后面添加N个1 照样能注册成功``
还有用户名只要末尾 数是2   密码 超过8位 全是1 都能成功`~
我还以为我真能行``有本事呢 `~
回来看贴才知道``~早都发现BUG了`~

哎~~失望`
图我贴不上来 还要上传`~没好的ftp地址 你自己看去`
2007-4-23 17:31
0
雪    币: 29214
活跃值: (7724)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
22
设传入参数为5983, 则从大到小排序9853,从小到大排序3589,9853-3589=6264, 6264即为返回值
2007-4-23 19:28
0
雪    币: 234
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
23
okooko不要失望,这不是bug,我说了这是必然的。
算法使然而已。
这个算法就是因为简单所以才拿出来练手。但是如果把它稍加修改或者和其他运算结合生成复合运算。那就绝对不会好破解了,也不会出现这么多的简单的注册结果了。毕竟,这种不加任何约束的情况下,可行解的概率也是很高的。着我前面都介绍过的,不是吗!最后,欢迎你的热情参与。

To: 风间人
算法的一部分就是你写出来的那样。确切的说,它是f(x)的一部分却不是f(x)的全部。你应该从那里跳出来。算法没什么好说的,明白什么是数字黑洞就知道怎么写了,很简单的。
2007-4-30 19:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
哈哈,我随手一敲,就破了:
用户名:123
注册码:12345678
2007-5-6 22:10
0
雪    币: 211
活跃值: (32)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
25
我随便打用户名leon   密码123456789    就成功了,,,不知是不是BUG?
2007-5-13 11:07
0
游客
登录 | 注册 方可回帖
返回
//