首页
社区
课程
招聘
[讨论] CTF2017第二题有没有像我一样用了N张纸的? 数学解题神器sympy解法
2017-10-29 11:23 5653

[讨论] CTF2017第二题有没有像我一样用了N张纸的? 数学解题神器sympy解法

2017-10-29 11:23
5653
我在纸上解题,用了好几张纸,把几个同事都惊动了。
本来是玩一玩ctf的. 哎!
全靠手算 + 计算器,有么有???

赛后来,发现一个数学解题神器

https://github.com/sympy/sympy/

下载包,解压。

安装:

python setup.py install
解题举例:

#!/usr/bin/python
# -*- coding: utf-8 -*-
from sympy import *

x=Symbol('x')
y=Symbol('y')
#x = Symbol('x') #符号化的运算对象是数字或者变量,所以当你想使用一个变量前, 你需要这些写。之后你就可以用x来做符号化的运算了
#Symbol('x')你可以理解成x是一个变量(符号) 在写这个是,一定要记住括号里面用x用英文半角单引号引起来。

#print (solve([5*(y-x)+x-0x8F503A42,13*(y-x)+x-0xEF503A42],[x,y]))

#print limit('sin(x)/x',x,0)
#当表达式为sin(x)/x,并且x(等价于命题:x是一个变量),如果,x趋近于0,那么表达式的值为?


print (solve([5*(y-x)+y-0x8F503A42,13*(y-x)+x-0xEF503A42],[x,y]))
#5 * (v1 - v0) + v1 == 8F503A42h && 13 * (v1 - v0) + v0 == EF503A42h
print (solve([17*(y-x)+y-0xF3A94883,7*(y-x)+x-0x33A94883],[x,y]))
#17 * (v1 - v0) + v1 == 0F3A94883h && 7 * (v1 - v0) + v0 ==  33A94883h 
print (solve([17*(y-x)+y-0xF3A94883,7*(y-x)+x-0x33A94883,5*(y-x)+y-0x8F503A42,13*(y-x)+x-0xEF503A42],[x,y]))

结论很明显 :满足两个条件的方程,无解。

换思路后,我们得到这个公式:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from sympy import *

x=Symbol('x')
y=Symbol('y')

#((x - y) << 2) + x + z = 0xEAF917E2
#((x - y) << 1) + (x - y) + x + z = 0xE8F508C8
#((x - y) << 1) + (x - y) + x - z = 0x0C0A3C68

#化简,先从后两个公式相减得到z.
#z=1853187632=0x6e756630

#4x-3y==3908372680-1853187632=0x7A7FA298
#4(x-y)+x=0x7C83B1B2
print (solve([4*x-3*y-0x7A7FA298,4*(x-y)+x-0x7C83B1B2],[x,y]))

运行:

C:\Python27>python.exe  2.py

 {x: 1953723722, y: 1919903280}


x: 0x7473754A

y: 0x726F6630

z: 0x6e756630



[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞1
打赏
分享
最新回复 (8)
雪    币: 39
活跃值: (352)
能力值: ( LV9,RANK:155 )
在线值:
发帖
回帖
粉丝
灬阑珊灬 2017-10-29 15:30
2
0
666
雪    币: 312
活跃值: (113)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
金箍棒 2017-10-29 16:36
3
0
666
雪    币: 201
活跃值: (10)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
祈酱 2017-10-29 18:30
4
0
666
雪    币: 5676
活跃值: (1303)
能力值: ( LV17,RANK:1185 )
在线值:
发帖
回帖
粉丝
holing 15 2017-10-29 18:43
5
0
我是http://www.yunsuanzi.com/matrixcomputations/solvelinearsystems.html
不过你这个也挺不错,star了
雪    币: 524
活跃值: (48)
能力值: ( LV6,RANK:140 )
在线值:
发帖
回帖
粉丝
turtledove 2 2017-10-29 19:04
6
0
回帖能装KX币吗?刚注册的,我手机太古老,没有微信啊,
雪    币: 791
活跃值: (404)
能力值: ( LV4,RANK:51 )
在线值:
发帖
回帖
粉丝
gxkyrftx 2017-11-2 18:22
7
0
get了
雪    币: 1470
活跃值: (74)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
新月之铭 2017-11-3 14:36
8
0
咱俩用的库一样,可以卡在前四个方程了
雪    币: 44
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pediy新人 2017-11-15 23:07
9
0
手算也不用那么多啊,用matlab
游客
登录 | 注册 方可回帖
返回