首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CTF关于GPS数据格式解析

攻防世界原题:可爱的猫猫走丢了,还好猫猫有GPS定位装置,我们陆陆续续在终端收到了GPS数据,你能帮忙找到可爱的猫猫吗?

下载文件内容为:

$GPGGA,090000.00,3416.48590278,N,10856.86623887,E,1,05,2.87,160.00,M,-21.3213,M,,*7E

$GPGGA,090000.05,3416.48590278,N,10856.86623887,E,1,05,2.87,160.00,M,-21.3213,M,,*7B

$GPGGA,090000.10,3416.48590278,N,10856.86623887,E,1,05,2.87,160.00,M,-21.3213,M,,*7F

$GPGGA,090000.15,3416.48590278,N,10856.86623887,E,1,05,2.87,160.00,M,-21.3213,M,,*7A

........

题目已经提醒是GPS数据,因此解析GPS 数据,画出轨迹图像,估计有所发现。以下是一位大佬在网上的解析代码:

import reimport matplotlib.pyplot as plt#要安装这个库,比较快# 预处理正则表达式,用于解析 GPS 数据pattern = re.compile( r"\$GPGGA,(\d+\.\d+),(-?\d+\.\d+),([NS]),(-?\d+\.\d+),([EW]),(\d),(\d+),(\d+\.\d+),(-?\d+\.\d+),M,(-?\d+\.\d+),M,,")

# 初始化经度、纬度列表lons, lats = [], []

# 遍历每一行 GPS 数据for line in open("CatchCat.txt", "r"): # 匹配 GPS 数据 m = pattern.match(line) if m: # 解析 GPS 数据 lat = float(m.group(2)) lat_dir = m.group(3) lon = float(m.group(4)) lon_dir = m.group(5) # 将角度转换为弧度 lat = (lat / 100.0) + (lat % 100.0) / 60.0 lon = (lon / 100.0) + (lon % 100.0) / 60.0 # 根据方向符号调整经度、纬度值 if lat_dir == "S": lat = -lat if lon_dir == "W": lon = -lon # 将经度、纬度添加到列表中 lons.append(lon) lats.append(lat)# 绘制经度、纬度坐标图plt.plot(lons, lats)# 添加坐标轴标签plt.xlabel("Longitude (degrees)")plt.ylabel("Latitude (degrees)")# 显示图表plt.show()

根据图像轨迹得出flag

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OxNVrwq9P-KgcBPvfLSK77gQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券