

这题非常复杂,斐波那契数组


1.接受16个数字输入
2.计算斐波那契数列前16项
3.把16个数字输入从第二个元素开始,都加上第一个元素
4.将3的结果反向
5.将4的结果和2的结果比较,完全相同则输入的是flag
def fib(a1): if a1 == False or a1 == 1: return 1 v2 = fib(a1 - 1) return v2 + fib(a1 - 2) for i in range(16): print fib(i) a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987] c = a[::-1] d = [987] for i in range(1,len(c)): d.append(c[i]-987) print(d) #[987, -377, -610, -754, -843, -898, -932, -953, -966, -974, -979, -982, -984, -985, -986, -986]
from pwn import *
p = process('./easyCpp')
input_ = [987,
-377,
-610,
-754,
-843,
-898,
-932,
-953,
-966,
-974,
-979,
-982,
-984,
-985,
-986,
-986]
for i in input_:
p.sendline(str(i))
p.interactive()
#flag{987-377-843-953-979-985}