首页
社区
课程
招聘
[原创]HappyTowns 39th CrackMe 算法分析
2007-5-8 21:49 6984

[原创]HappyTowns 39th CrackMe 算法分析

2007-5-8 21:49
6984
这个ylp1332已经分析过了
  我虽然自己也分析了一遍.不过前面结果和他的差不多都类似
  我就不贴代码了
  关键是  看到ylp1332后面没有给出如何解那个方程
  我现在给我我的思路.  也不知道是否正确   请各位大牛评判吧!!

检查magic和密码长度须是偶数  并且要为16进制数
hash用户名
假设用户名为kyo327

hash(kyo327)=BA D2 21 44 95 24 E5 D8 2E 78 65 CC 7D 6F 6C E9

00409BD0=<CrackMe_._mp_read_unsigned_bin>

无符号数的读取

取上面hash(kyo327) 10位  因为是无符号的读  因此高位补为0了
78 2E D8 05 4E 52 49 04 21 D2 BA=Xuser

再读幻数88269537  转成16进制的数后取

37 95 26 08 08=Xmagic
08269537
00000008

再读密码 得到大数
9A 78 56 04 23 01=Xpass
0456789a
00000123

mp_exptmod( &M, &e, &n, &C );//C= M^e mod n

X1=C9C794FF125DC1CA546E797E9486F62D78D83A8E2A6D8D4B
X2=D96F7B8483E94DC1F6291AB7395B
X3=3FAF265328715370501B09597543BAF1B42455D283DEC78B
X4=6EDD84F08B6C308F5727EEC13F5D87AC03D3FB7476654D2F

上面大数全转换为无符号数后

mp_mulmod(a,b,c,d)   a*b mod c=d
0013e8b8
X5=Xuser*Xpass  mod X2
=DB D7 67 05 70 C0 5F 01 5D 42 BF 0A 36 FE B6 08

0013e8f8
X6=Xpass*Xmagic mod  X2
=16 8B A1 09 74 14 C5 08 AE 09

0013e8b8
X5'=X3^X5 mod X1
=05 41 F3 02 29 1E 13 0A 18 70 01 02 94 DE 41 0D C1 C0 78 08 14 6E 81 06 AD 07 13

0013e8f8
X6'=X4^X6 mod X1
=58 6A 4C 09 F2 C5 C8 06 ED BA 26 08 1B 54 BB 04 4D D7 C3 06 38 28 1D 01 99 2B 59

0013e8e8
X7=X5'*X6' mod X1
=6E DE 87 0C CE 97 77 07 A7 18 E3 00 C2 D3 C5 06 B2 2F DD 03 E6 52 09 01 BF F2 BB

0013e8e8
X7'=X7 mod X2
=F5 2D B6 0B ED D4 E7 04 5B E5 ED 0D A2 5B A1

如果
Xmagic=X7'  则注册成功
上面方程组可转化为这样

(X3^(Xuser*Xpass  mod X2) mod X1)*(X4^(Xpass*Xmagic mod  X2) mod X1) mod X1 mod X2=Xmagic

设Xmagic为已知数(随机假设一个数即可)
令(X3^(Xuser*Xpass  mod X2) mod X1)=C
令(X4^(Xpass*Xmagic mod  X2) mod X1)=Y
则C*Y mod X1 mod X2=Xmagic
那么C*Y=Xmagic+n*X2+k*X1   (n,k为自然数)

现在再设n=k=1
那么C*Y=Xmagic+X2+X1

分解Xmagic+X2+X1 得到两个数  设为p,q
则设(X3^(Xuser*Xpass  mod X2) mod X1)=p
    (X4^(Xpass*Xmagic mod  X2) mod X1)=q
用离散对数计算器求出

                    Xpass*Xuser  mod  X2=p'
                    Xpass*Xmagic mod  X2=q'

联立这个方程组可求出满足的xpass 就OK了

在最后 我用离散对数计算器  不知道为什么算不出来值.

可能是我的方法不对????也或者是那个DLPTOOL工具不好  呵呵  请大牛们来解释下吧

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

收藏
免费 0
打赏
分享
最新回复 (6)
雪    币: 926
活跃值: (367)
能力值: (RANK:500 )
在线值:
发帖
回帖
粉丝
humourkyo 12 2007-5-10 17:33
2
0
请happytown看看 我这个解法 是否可行啊
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2007-5-10 17:46
3
0
好深奥,完全不懂
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
happytown 31 2007-5-10 20:19
4
0
HorstStein出来,给大家写个分析教程.我实在没有时间.
雪    币: 35
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
HorstStein 5 2007-5-11 20:55
5
0
好早以前分析过,没做笔记,过几天给大家贴出分析过程来。
雪    币: 49
活跃值: (2320)
能力值: ( LV12,RANK:610 )
在线值:
发帖
回帖
粉丝
ylp1332 15 2007-5-12 02:38
6
0
分析倒没问题了,就是解不出那个离散对数。。。
雪    币: 926
活跃值: (367)
能力值: (RANK:500 )
在线值:
发帖
回帖
粉丝
humourkyo 12 2007-5-12 23:01
7
0
因为Xmagic  还有那个自然数都是随机取的
而 我又不知道 离散对数方程有解的条件  只试了 一种情况没算出来
所以我说没算出来啊
游客
登录 | 注册 方可回帖
返回