[长城杯 2021 政企组] ---小明的电脑

[长城杯 2021 政企组] —小明的电脑

知识点:取证+编码套娃

题目分析

在这里插入图片描述

1.上面的文件一看就是DumpIT导出的文件,直接VOL分析,然后找到一张secret.png的图片

在这里插入图片描述

用LSB分析一下得到

在这里插入图片描述
得到密码b651b102

2.下面的文件是一个倒叙的压缩包,写个脚本还原

data = open("fl4g",'rb').read()[::-1]
file = open("flag.zip","wb+").write(data)
print(data)

得到

在这里插入图片描述

分析里面的内容,看了一下怀疑是PHP的字节码文件但是没什么思路,于是又去看了一下

有一个Hint文件,打开看看

在这里插入图片描述

感觉没什么用,直接把中间的URL字符串直接去解了。

可以看到后面

在这里插入图片描述

应该就是加密顺序url-UU-QP-GZIP

第一次解密后每一行基本都是M开头的,然后再去UUencode解个密得到等号开头的Quoted-printable,然后去解密,得到如下

在这里插入图片描述
然后最后得到的ZIP里面一个文本,是BAES64解码之后又是一个7Z,然后在解压

里面是42个TXT

在这里插入图片描述

然后TXT里面是一连串的坐标,我们直接画图看看

初步测试了一下应该是每个TXT都有一段信息被删除了,所有的TXT都是640*480大小的

先写一个脚本提取出来,摸了一会,终于把脚本摸出来了

list = [(x,y) for x in range(640) for y in range(480)]
set1 = set(list)
Flagall = [set1.copy() for _ in range(42)]
new_data = []
for i in range(42):
    data = open(str(i)+".txt",'r')
    for line in data.readlines():
        x1,y1 = line.replace("\n","").split(" ")
        Flagall[i].discard((int(x1),int(y1)))
    data.close()
    new_data = [str(i).replace("(","").replace(")","").replace(",","") for i in Flagall[i]]
    for j in new_data:
        new = open("new/"+str(i)+".txt",'a+').write(str(j)+"\n")

绘图脚本

import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mat

mat.rcParams['font.family'] = 'SimSun'
mat.rcParams['font.sans-serif'] = 'SimSun'

for i in range(42):
    x, y = np.loadtxt('new/'+str(i)+'.txt',unpack=True)
    plt.plot(x, y, '*', label='Data', color='pink')
    plt.savefig("pic/"+str(i)+'.png')
    plt.close()

在这里插入图片描述

然后手动解码写入TXT,经过测试低频1高频是0。

然后脚本转回字符串即可
在这里插入图片描述

转一下
在这里插入图片描述
得到结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值