【misc】[CISCN 2021初赛]robot --流量包数据提取,坐标画图

打开附件的流量包

可以发现有很多的tcp协议数据,追踪tcp协议数据看看

可以发现tcp数据流中有很多类似坐标的东西,先把这些数据另存为txt保存,如何用正则表达式提取这些数据,提取脚本如下:

import re

with open("data.txt", "r", encoding="utf-8") as f:    

    data = f.read()

pattern = r'tgPos\{\d+\}\.Value\.\[\d+,\d+,\d+\]'       #正则表达式匹配

results = re.findall(pattern, data)                     #findall匹配所有符合的数据,results是匹配到数据的列表形式

if results:                                            

    with open("output.txt", "w", encoding="utf-8") as f:            

        for result in results:

            f.write(result + "\n")              

    print("匹配结果已成功写入output.txt文件")

else:

    print("Pattern not found")

提取到的数据如下:

可以发现,第三个数据始终是0,可以猜测是z轴,然后前面是x轴和y轴,可以根据这个坐标轴来画图,这里可以用两种方式来画图

import re

import matplotlib.pyplot as plt

from PIL import Image

f=open("output.txt",'r')

data=f.read()

pattern=r'\[\d+,\d+,\d+]'

results = re.findall(pattern, data)

print(results)

x=[]

y=[]

for result in results:

    pattern=r'\d+'            

    result=re.findall(pattern,result)

    print(result)

    x.append(int(result[0]))

    y.append(int(result[1]))

x_len = 400

y_len = 200  # 查看最大坐标得知图片大致大小

im = Image.new("RGB", (x_len, y_len))

for i in range(len(x)):

    im.putpixel((x[i], y[i]), (255, 255, 255))  #可以用像素法画出来

im.show()

'''# 创建散点图

plt.scatter(x, y)  

# 设置图表标题和坐标轴标签

plt.title('Scatter Plot of XY Coordinates')

plt.xlabel('X')

plt.ylabel('Y')

# 显示图表

plt.show()'''

然后将这个数据进行md5加密

md5:d4f1fb80bc11ffd722861367747c0f10
flag:NSSCTF{d4f1fb80bc11ffd722861367747c0f10}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值