WP CTF-Misc 攻防世界 CSFJ1206 CatchCat

「附件」

附件是一个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
  • python

「知识拓展」

pip默认源安装matplotlib库太慢

试试这个:pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

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

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


__EOF__

本文作者stonechen
本文链接https://www.cnblogs.com/stonechen/p/CSFJ1206.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   没事摸摸小肚子  阅读(893)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示