首页
社区
课程
招聘
5
[原创]一枚解数学方程的CrackeMe分析
发表于: 2013-8-21 10:15 19044

[原创]一枚解数学方程的CrackeMe分析

2013-8-21 10:15
19044

这个CrackMe必须在NET4.0环境下运行,比较容易,顺道复习了中学数学。



1、运行程序,有三个Edit输入框,貌似三者都必须符合某种要求才能弹出正确的提示。




2、用Reflector载入,可以发现,程序的Form1里的点击按钮事件:




3、点进去查看代码,不难看出,三个输入的数字必须要同时满足三个条件才能弹出正确提示。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void btnCheck_Click(object sender, EventArgs e)
{
    double num = Convert.ToDouble(this.Num1.Text);
    double num2 = this.Change(Convert.ToDouble(this.Num2.Text));
    double num3 = Convert.ToDouble(this.Num3.Text);
    if ((((Math.Log10(num3 - 3.0) + Math.Log10(num3 + 1.0)) == Math.Log10((4.0 * num3) - 3.0)) && ((Math.Pow(2.0, num + 3.0) - Math.Sqrt(Math.Pow(2.0, (num3 - 2.0) + (2.0 * num)))) == (4.0 + (2.0 * Math.Pow(4.0, num / 2.0))))) && (((Math.Sqrt(3.0) * Math.Pow(Math.Tan(2.0 * num2), 2.0)) - (4.0 * Math.Tan((num3 - 4.0) * num2))) == (Math.Sqrt(3.0) * -1.0)))
    {
        MessageBox.Show("Valid Combination! :)");
    }
    else
    {
        MessageBox.Show("Invalid combination :(");
    }
}


4、这三个条件分别是:


Math.Log10(num3 - 3.0) + Math.Log10(num3 + 1.0) == Math.Log10((4.0 * num3) - 3.0)


Math.Pow(2.0, num + 3.0) - Math.Sqrt(Math.Pow(2.0, (num3 - 2.0) + (2.0 * num)) == 4.0 + (2.0 * Math.Pow(4.0, num / 2.0))


Math.Sqrt(3.0) * Math.Pow(Math.Tan(2.0 * num2), 2.0) - 4.0 * Math.Tan((num3 - 4.0) * num2) == Math.Sqrt(3.0) * -1.0



5、下面就是分别来解这个方程组了,先看第一个方程,是对数方程:


Math.Log10(num3 - 3.0) + Math.Log10(num3 + 1.0) == Math.Log10((4.0 * num3) - 3.0)


log(num3 - 3) + log(num3 + 1) = log(4 * num3 - 3)


log((num3 - 3)(num3 + 1)) = log(4 * num3 - 3)


(num3 - 3)(num3 + 1) = 4 * num3 - 3


num3^2 – 2 * num3 – 3 = 4 * num3 – 3


num3^2 = 6 * num3


num3 = 6 或num3 = 0


由于负数和0没有对数,所以num3只能=6



6、再看第二个方程,是幂方程:


Math.Pow(2.0, num + 3.0) - Math.Sqrt(Math.Pow(2.0, (num3 - 2.0) + (2.0 * num)) == 4.0 + (2.0 * Math.Pow(4.0, num / 2.0))


2^(num + 3) - (2^(num3 – 2 + 2 * num))^0.5 = 4 + 2 * (4^(num / 2))


2^num * 2^3 – (2^(6 – 2 + 2 * num))^0.5 = 4 + 2 * ((4^num)^0.5))


8 * 2^num – 4 * 2^num = 4 + 2 * 2^num


2^num * 2 = 4


[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费 5
支持
分享
赞赏记录
参与人
雪币
留言
时间
心游尘世外
为你点赞~
2024-5-31 06:11
QinBeast
为你点赞~
2024-5-31 06:03
飘零丶
为你点赞~
2024-4-3 00:53
shinratensei
为你点赞~
2024-2-27 00:13
PLEBFE
为你点赞~
2023-3-5 04:18
最新回复 (5)
雪    币: 1372
活跃值: (5667)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
能爆破呗。。
2013-8-21 10:43
0
雪    币: 558
活跃值: (117)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
3
爆破就非常简单了,呵呵。
2013-8-21 11:20
0
雪    币: 27
活跃值: (122)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
哦,瞧瞧
2013-8-21 11:41
0
雪    币: 156
活跃值: (27)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
围观爆破
2013-10-8 15:48
0
雪    币: 151
活跃值: (323)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
必须先爆破,然后在分析算法。。。
2013-10-11 08:06
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册