祥云杯misc writeup

107 篇文章 4 订阅

鸣雏恋

把后缀修改为zip解压后在_rels找到key.txt和love.zip直接binwalk源文件是不会有的

key.txt是零宽字符隐写,解出来的压缩包的密码
在这里插入图片描述
然后使用脚本将图片中的按人物转为1和0然后转ascii会得到一个base64形式的图片数据

# 作者:小狐狸FM
import zipfile
lis = []
result = ""
data = ""
size = 1
with zipfile.ZipFile('love.zip', 'r') as zipobj: #读取压缩包
    for file_name in zipobj.namelist(): #遍历名称
        info = zipobj.getinfo(file_name)
        file_name = file_name.encode('cp437').decode('gbk')
        lis.append([file_name,info.file_size])
# print(lis)
del lis[0]
for i in range(len(lis)): #处理文件名和数据
    lis[i][0] = lis[i][0].replace("out/","")
    lis[i][0] = lis[i][0].replace(".png", "")
    lis[i][0] = int(lis[i][0])
    if lis[i][1]==262:
        lis[i][1]='0'
    else:
        lis[i][1]='1'
# print(lis)
lis = sorted(lis)
# print(lis)
for i in range(len(lis)):
    data += lis[i][1] #数据大小
    if len(data)%8==0: #集齐八位二进制时
        result+=chr(int(data,2))
        data=""
with open("2.txt","w") as fp:
    fp.write(result)

在这里插入图片描述
flag{57dd74fb21bb1aee50f19421bf836f23}

ChieftainsSecret

binwalk图片出来一个excel表和一个提示png然后是按照这个gui东西计算他的角度然后安装角度对照老式电话的数字

from math import atan2

sinP = []
sinN = []
cosP = []
cosN = []

data = open("adc.csv").readlines()
data = data[1:]

for i in data:
    s = i.strip().split(",")
    sinP.append(s[0])
    sinN.append(s[1])
    cosP.append(s[2])
    cosN.append(s[3])
data_li = []
for i in range(len(sinP)):
    sinP_ = float(sinP[i])
    sinN_ = float(sinN[i])
    cosP_ = float(cosP[i])
    cosN_ = float(cosN[i])
    sinX = (sinP_-sinN_)*1.0
    cosX = (cosP_-cosN_)*1.0

    tanX = atan2(sinX,cosX)
    angle = tanX*57.29
    data_li.append(angle)
print(len(data_li))
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
x_data = [x for x in range(len(data_li))]
y_data = data_li

plt.plot(x_data,y_data,color='red',linewidth=2.0,linestyle='--')

plt.show()

在这里插入图片描述
根据11个高峰得角度然后计算老式电话的旋转角度对应的数字

角度**-151 -152 -79 -128 161 -103 -175 86 136 160 -151**

数字77085962457

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值