首页 > 其他分享 >如何扩充知识广深度:以强网杯2023谍影重重2.0为例

如何扩充知识广深度:以强网杯2023谍影重重2.0为例

时间:2023-12-19 10:24:14浏览次数:31  
标签:ModeS ADS 为例 解码 address ICAO 谍影 2023 ad

附件截图

 通过筛选, 提取tcp流量, 得到:

抛开弯弯曲曲的思考过程, 直接来看wp:(by:战队: Arr3stY0u)

 

 好, 直接解码得到结果的。好像这题就做完了?思考以下几个问题:

1. 为什么别人能马上知道是ADS-B? 下次比赛过程期间我能不能也查到一些未知的协议?

2.为什么一个协议马上就能有对应的解码器, 下次我要在哪里找小众协议的解码器?

3.ADS-B协议格式是什么? 以后会不会还有可能遇到? 

  一番查找之后发现了类似ModeS, C, A等同类协议, 增长了知识广度, 也知道了.ADS-B的格式, 以及包含了哪些信息, 如关键的ICAO address, 空速等。

3.仔细研究一下ModeS/ADS-B协议之后发现, 大部分都是56/112长度的, 但我们的流量有一些是64/120长度的, 这些它能解码吗?

  为了解答问题3, 安装pyModeS, 尝试解码上述异常流量, 发现在没有直接给出ICAO address的前提下, 居然能直接解码出来。尝试改一两个比特之后, 所得ICAO address与原来的完全不同。由此提出新问题:

4. 为什么有些ModeS消息能直接求出ICAO address, 它是怎么求出来的?

  查了半天文档没发现有用信息(后面发现是自己扫得太快, 漏过了重要的部分), 然后想到可以下载pyModeS的源代码, 直接查它是怎么解码的。通过全文搜索ICAO address发现:/decoder/uplink.py

 1 def uplink_icao(msg: str) -> str:
 2     "Calculate the ICAO address from a Mode-S interrogation (uplink message)"
 3     p_gen = 0xFFFA0480 << ((len(msg) - 14) * 4)
 4     data = int(msg[:-6], 16)
 5     PA = int(msg[-6:], 16)
 6     ad = 0
 7     topbit = 0b1 << (len(msg) * 4 - 25)
 8     for j in range(0, len(msg) * 4, 1):
 9         if data & topbit:
10             data ^= p_gen
11         data = (data << 1) + ((PA >> 23) & 1)
12         PA = PA << 1
13         if j > (len(msg) * 4 - 26):
14             ad = ad + ((data >> (len(msg) * 4 - 25)) & 1)
15             ad = ad << 1
16     return "%06X" % (ad >> 2)

查询GPT反馈如下

"在这段代码中,首先从 Mode-S 信息中提取出用于计算地址的部分(即 dataPA),然后使用一个特定的生成多项式 p_gen 进行一系列的位操作。这个算法并不是在反向解析 CRC 来还原原始内容。它是使用CRC算法来计算一种检验值(即 ICAO 地址),这个检验值用于标识特定的航空器。代码中的位操作、移位和异或运算是用于计算这个特定的值,而不是用于恢复原始内容。"

尽管可靠性存疑, 但可以知道大方向是:除了直接明文传输信息, 还可能通过编码方式进行传输, 其中很有可能用到CRC。

5. (尚未解决)在每条信息的前面都有类似1a33(32)ffffffffffff**的结构, 这些是什么协议对ModeS进行封装之后导致的?

....

 

由此, 一个问题下来, 可以获得充分的知识深度与广度。此为在无疑处有疑。

 

标签:ModeS,ADS,为例,解码,address,ICAO,谍影,2023,ad
From: https://www.cnblogs.com/lynnzixing/p/17912999.html

相关文章

  • 【2023-12-18】体感冬天
    20:00一个勇往直前、从不退缩的人绝不会怀疑云彩会从头上掉下来,绝不会想到XieE能胜利,而正义遭到挫败,他认为跌倒是为了爬起,受挫是为了更好的战斗,就寝是为了醒来。                                    ......
  • 做题记录202312
    模拟赛题题意:将长度为\(n\le10^{18}\)插入间隔,要求每个(所有空格小于等于\(k\le50\))的连续段段内必须有一个段空格为\(k\),求方案数矩阵快速幂可以预处理,复杂度变为\(O(n^2(n+T)logn)\)对于过于繁杂的边界和细节问题,可以先求出一个大致,统计答案的时候再进行修正,这里统......
  • 【专题】2023年即时零售行业发展报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34588原文出处:拓端数据部落公众号即时零售是一种通过线上即时下单、线下即时履约的零售业态,它依托本地零售供给,满足本地即时需求。这种业态是“零售+科技”的产物,实现了交易流程线上化、履约配送便利化,提升了本地供给能力,拓展了消费需求。近年来,即......
  • 2023.12.18
    点击查看代码#include<bits/stdc++.h>#definefifirst#definesesecondusingstd::cin;usingstd::min;usingstd::max;usingstd::cout;usingstd::vector;constexprintM=2e6+5;constexprintINF=0x3f3f3f3f,mod=998244353;......
  • 2023年12月18日总结
    更好的观看总结冬月初六,天气还是很寒冷。好在教室里面开了空调,还是很暖和。一眼今天的内容,技巧与思想?分治、启发式合并、分块算法、莫队算法、CDQ分治、整体二分?难以言表。洛谷首页的做题计划还鸽了好多题啊!做不完啊。先来一道dp的题目。P8820[CSP-S2022]数据传输之前......
  • 20231218
    今天时Java程序设计考试,题目还好,比较麻烦的点就是第二个表的键值很多,审核的流程很好,但是我没有做完。做题的时候遇到了些问题,比如关于部门(Department)的处理,本来是想作为一个实体,但是题目中的部门是固定的,最后为了省事又改成了枚举,关于用户的管理题目中也没有说清楚,是由哪个角色......
  • [2023.12.14] 大学 & XCPC小记
    说起来OI退役多年,已经很久没有维护过这个博客。上一周打完ICPC杭州站,也是大三赛季的最后一站,总觉得应该记一些什么……不止是记录我的XCPC生涯,也是给大学的前面快要5个学期做一个大体上的总结吧~ 一切都还要从高考结束开始说起。2021.6  高考&暑假篇高考结束,......
  • 20231218
         2022级《JAVA语言程序设计》  上机考试试题                 2022.12.18  考试要求 一、本试卷为2022级《JAVA语言程序设计》上机考试试卷;二.注意编程规范:(1)通过Eclipse添加类的方式建立类;(2)程序开头部分注......
  • 2023 年最佳游戏引擎推荐
    2023年最佳游戏引擎推荐Incredibuild​已认证账号​关注 你收藏过游戏引擎相关内容游戏引擎简介游戏引擎是一种软件程序或环境,可为开发人员提供创作电子游戏、创建图形和可视化所需的工具和应用程序编程接口(API),包括了从人工智能(AI)和......
  • DataGrip 2023.3 新功能速递!
    1数据可视化自DataGrip2023.3发布以来,已整合Lets-Plot库,实现数据可视化。该可视化功能可用于所有三种类型的网格:主选项卡:在打开表、视图或CSV文件时,在分割模式下显示图表。结果选项卡:在服务工具窗口中观察查询结果时,可以显示图表而不是网格。编辑器中的结果:可以显......