首页
社区
课程
招聘
*已破* [PEDIY Crackme 竞赛 2007] [第十三回] 第8 队 – ccfer
发表于: 2007-6-26 12:00 16443

*已破* [PEDIY Crackme 竞赛 2007] [第十三回] 第8 队 – ccfer

2007-6-26 12:00
16443
收藏
免费 0
支持
分享
最新回复 (126)
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
像是骗人的东西
2007-6-26 18:57
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
这个算法好熟悉,是我一个学生研究出来的
2007-6-26 20:11
0
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
28
听说那学生明天要转世.
2007-6-26 20:13
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
29
貌似已经复活了
2007-6-26 20:15
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
怎么半天没人re了?

看到前面有人说只有十几行代码,就看了看,贴出来给大家想..简单描述一下(没核对,有错误不负责)

a:=0x20070609, //初始化
-each(username),ROR 0x0D, //对username的每一位先减再循环位移,下同
+each(sn),ROR 0x0F

b:=0x31415926,
^each(username),ROR 0x0B,
-each(sn),ROR 0x09

c:=0x0BADC0DE,
+each(username),ROR 0x05,
^each(sn),ROR 0x07
以上谈不到可逆不可逆(因为不是11对应),不过凑起来不是一眼能看通的就是了
然后找出一个值满足下满
((b+c)*a+b*c)*2-c*c-b*b*2-a*a*g1-g2>=g3
g1,g2,g3分别是
DWORD PTR DS:[40A120]
DWORD PTR DS:[40A11C]
DWORD PTR DS:[40A118]
哪里改的这些全局变量没看,我调试的这次分别是5,1,0

嗯..式子看上去就是g2-(x1a+x2b)^2-(x3b+x4c)^2-(x5c+x6a)^2的形式
用5,1,0来凑的话,就是g2-(2a-b)^2-(b-@c)^2-(a-@c)^2
@表示根号二分之一
所以我这次g2=1,所以a,b,c都为整数的话,一个可能的解是a,b都等于@c,但2a比b大1,所以a=1,b=1,c=2
对不对?对整数*非整数的结果不清楚,也没编程验证,吃饭去了,大家加油
2007-6-26 20:36
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
31
如果你在你的机器中存在一个零质量的元素,理论上它对系统一点也没有影响。但其数学影响就是会使拉格朗日框架进入尾旋状态而无法使用。
2007-6-26 20:40
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
楼上说的这个问题, 我当年和几个学生研究过一段时间,有兴趣的可以google一下
2007-6-26 20:43
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
哦,搞错了,a/b/c都是浮点数来着..那就简单了,解很多,比如说a=b=@c=1
然后就是凑那个用户名密码了
2007-6-26 20:49
0
雪    币: 219
活跃值: (56)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
34
看样子这个真要像传说中要过夜了~~~~
2007-6-26 20:50
0
雪    币: 112
活跃值: (16)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
35
拉格朗日时代经典力学难题被美国工程师解决

据《sciencedaily》网络版2006年3月1日报道,在纯粹的经典力学领域里中,更多有时能够雅致地意味着更少。在3月1日的《皇家科学院学报》上的一篇论文中,来自USC Viterbi工程学院的两位工程师使用一种新的且内在更灵活的数学方法来描述力学系统。

据Firdaus Udwadia教授称,这种方法也解决了一个200多年之久的力学悖论,他和以前的博士学生Phailaung Phomosiri一块写了这篇文章。

这充满矛盾和问题的现象出自法国物理学家 Joseph Louis Lagrange(1736-1813)的经典杰作,他在1788年用一种新的数学方法来描述互相连接机械部件系统的运动(约束机械系统),这比一个世纪前由牛顿最初找出的方法更简洁。

Udwadia给出了很简单这样系统的例子,一个双摆锤,其一端用一根链条拴一个重物,另一端通过链条栓有另一重物。第一个拴重物链条与垂直线的角度以及此链条的长度,第二根链条相应的角度和长度,再加上两个重物的质量都代入在一个数学矩阵方程式中。当这一方程使用经典拉格朗日/高斯方程来描述此系统,其计算难以想像得复杂。

Udwadia的新方法忽略了系统两部分的连接,分别用坐标集合来表示各自最初空间的位置,而忽略连部分。

Udwadia称这种描述法把一个系统分解为两个或更多的单独系统,相当简洁。“你可以忽略连接重物1和重物2的连接部分,只跟踪重物2的质量在空间中的运动过程。”

他补充说:“把一个系统分为两个单独系统分别描述时,你需要更多的坐标。”但更多也意味着更简洁,“对两个单独系统的分别计算变得更加容易。”

Udwadia说这个方法伴随而来的难点要在数学上再引入缺少的连接部分。需要信息来把多系统合并成一个系统来展现,但在很多时候重构导致数学上死锁,称为奇质量矩阵。

这种矩阵自拉格朗日时代就众所周知,按经典定义,如果你在你的机器中存在一个零质量的元素,理论上它对系统一点也没有影响。但其数学影响就是会使拉格朗日框架进入尾旋状态而无法使用。

拉格朗日矩阵既可以用在量子力学中也可以用在经典力学中,1964年,量子物理学家保罗·迪拉克获得了一个突破。在研究量子系统中的约束运动时他发现在某些确定情况下如在称为哈密尔敦函数的系统中,他找到办法甚至在奇矩阵的情况下得出正确的运动方程。

Udwadia和Phomosiri也发现与迪拉克完全不同的方法来获得他们的运动方程。他们在其论文中说道:“这篇论文所得到的精确定义运动的通用方程适用于完全和非完全奇质量矩阵系统,是经典力学中第一次使用类似方法。”

作者补充说:“这些方程式,可以把复杂的多重系统分解成几个子统……并把这些子系统方程重新构造获得一个简洁且直接了当的合成系统运动方程式。”这一方程可能还具有其他方面的应用。

Udwadia表示:“而其他研究人员将在何处使用这个基础的方程式还很难说。”
2007-6-26 20:51
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
36
拉普拉斯让我告诉拉格朗日,"我们的学生不错"
2007-6-26 20:54
0
雪    币: 112
活跃值: (16)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
37
2007-6-26 20:56
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
38
不要被别人误导了,我哪懂那么高深的理论
2007-6-26 21:05
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
39
作者是搞物理的……
2007-6-26 21:10
0
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
40
其实仔细观察一下就能发现,里面有一个虚拟重力空间系统.
2007-6-26 21:19
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
41
其实只是不确定性的一个应用
2007-6-26 21:21
0
雪    币: 6051
活跃值: (1441)
能力值: ( LV15,RANK:1473 )
在线值:
发帖
回帖
粉丝
42
我研究的结果是:

三个值要满足:
aa+2bb+5cc-2ab-2ac-2bc-1=0

再根据a,b,c值必须为整型可以简单分解为:
aa-2(b+c)a+(2bb+5cc-2bc-1)=0........................(1)

可得出:
(b+c)(b+c)=2bb+5cc-2bc-1
简化:
(b-2c)^2=1

可得出:
b=2c±1
再代入(1)式中可得:
a=3c±1

结论:
下面对注册码计算结果满足上面二式即可:
00401449  |> /0FBE81 1CD84000   /movsx   eax, byte ptr [ecx+40D81C]
00401450  |. |3145 FC           |xor     dword ptr [ebp-4], eax
00401453  |. |2945 F4           |sub     dword ptr [ebp-C], eax
00401456  |. |0145 EC           |add     dword ptr [ebp-14], eax
00401459  |. |8B45 FC           |mov     eax, dword ptr [ebp-4]
0040145C  |. |C1C8 07           |ror     eax, 7
0040145F  |. |8945 FC           |mov     dword ptr [ebp-4], eax
00401462  |. |8B45 F4           |mov     eax, dword ptr [ebp-C]
00401465  |. |C1C8 09           |ror     eax, 9
00401468  |. |8945 F4           |mov     dword ptr [ebp-C], eax
0040146B  |. |8B45 EC           |mov     eax, dword ptr [ebp-14]
0040146E  |. |C1C8 0F           |ror     eax, 0F
00401471  |. |8945 EC           |mov     dword ptr [ebp-14], eax
00401474  |. |41                |inc     ecx
00401475  |. |3B0D D0D84000     |cmp     ecx, dword ptr [40D8D0]
0040147B  |.^\7C CC             \jl      short 00401449


这个算法似乎不可逆,我就此打住了。。。

哪位高手继续分析。。。

PS:看了forgot的提示仍然一片迷茫,不明白在说什么。。。牛人们分析一下吧。。。我只会看汇编原型,对数学算法、物理算法一窍不通。。。
2007-6-26 21:37
0
雪    币: 112
活跃值: (16)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
43
2007-6-26 21:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44

被忽悠
2007-6-26 22:27
0
雪    币: 6051
活跃值: (1441)
能力值: ( LV15,RANK:1473 )
在线值:
发帖
回帖
粉丝
45
是这意思

有二种解:
a-b-c=±1
b-2c=0

a-b-c=0
b-2c=±1

即:
a=3c±1
b=2c

b=2c±1
a=3c±1

比我前面的多出一解?呵呵~

兄弟们继续研究,我先睡了~
2007-6-26 22:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
是这意思

有二种解:
a-b-c=±1
b-2c=0

a-b-c=0
b-2c=±1

即:
a=3c±1
b=2c

b=2c±1
a=3c±1

比我前面的多出一解?呵呵~

兄弟们继续研究,我先睡了~
2007-6-26 23:22
0
雪    币: 112
活跃值: (16)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
47
,太有才了!
2007-6-26 23:53
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
楼上算错了,我前面贴的也错了

调了调,感觉那3个全局变量没变(也可能是程序默认是这几个值,但是非调试状态时会改成其他值,我简单看了看觉着ccfer没这么做)

后半部分要满足的条件应该是
//  ((b+c)*a+b*c)*2-c*c-b*b*2-a*a*5-1 >= 0
//  b^2-2a^2-1-(a-b)^2-2(b-c/2)^2-2(a-c/2)^2 >= 0
看了看看不出怎么解,有解么..?

穷举了一下a/b/c在1000以内的情况,无解,为了准确,我直接把汇编代码拷进来的.

不知ccfer能不能提示一下 :)

float g1=5,g2=1,g3=0;
__int64 a=1,b=1,c=1;
for(a=0;a<1000;a++)
{
        for(b=0;b<1000;b++)
        {
                for(c=0;c<1000;c++)
                {
                        __asm{
                                FILD a
                                FILD b
                                FILD c
                                FLD ST(1)
                                FADD ST,ST(3)
                                FMUL ST,ST(1)
                                FLD ST(2)
                                FMUL ST,ST(4)
                                FADDP ST(1),ST
                                FADD ST,ST
                                FLD ST(3)
                                FMUL ST,ST(4)
                                FSUBP ST(1),ST
                                FLD ST(2)
                                FMUL ST,ST(3)
                                FADD ST,ST
                                FSUBP ST(1),ST
                                FLD ST(1)
                                FMUL ST,ST(2)
                                FMUL g1
                                FSUBP ST(1),ST
                                FSUB g2
                                FCOMP g3
                                FSTP ST
                                FSTSW AX
                                FSTP ST
                                SAHF
                                FSTP ST
                                JB r2
                        }
                        __asm nop;
r2:
                        __asm nop;
                }
        }
}
2007-6-26 23:57
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
49
看来要成功过夜,不知道会不会爆冷
2007-6-26 23:57
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
50
hash可能会在1000以内吗?
2007-6-27 00:05
0
游客
登录 | 注册 方可回帖
返回
//