[WP] 攻防世界 CSFJ1206 CatchCat

发布时间 2023-06-22 21:37:37作者: 没事摸摸小肚子

「附件」

附件是一个txt文件,部分内容:

$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数据,你能帮忙找到可爱的猫猫吗?
flag格式为CatCTF{*}

「思路」

没见过的数据格式,猜测GPGGA可能是对应的协议或者格式名称,搜索一下:

GPGGA是GPS数据输出格式语句,意思是一帧GPS定位的主要数据,是NMEA格式中使用最广的数据之一。
(简单了解)该语句包括17个字段,分别是语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,HDOP-水平精度因子,椭球高,高度单位,大地水准面高度异常差值,高度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记1。

既然是GPS数据,那就让AI写个程序按行解析数据,并画出轨迹图像。

import re
import 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

「过程」

pip默认源安装matplotlib库太慢,试试这个:pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

「工具」

「知识拓展」

__MACOSX 文件夹是拿来做什么用的

__MACOSX 文件夹在 Mac 系统上自动生成的用于存放一些缓存文件的目录12。
在 Mac 系统中,当用户将一个目录压缩成压缩包时,如果该目录中存在 __MACOSX 文件夹,则该文件夹会被自动添加到压缩包中。在 Windows 系统中,__MACOSX 文件夹则会被视为垃圾文件,需要手动删除。
此外,__MACOSX 文件夹还用于存储一些元数据信息,如文件夹的日期、访问记录等,这些信息对于 Mac 用户来说是有用的。