当前位置: 首页 > news >正文

BUUCTF [SCTF2019]电单车详解两种方法(python实现绝对原创)

使用audacity打开,发现是一段PT2242 信号

PT2242信号 有长有短,短的为0,长的为1化出来

这应该是截获电动车钥匙发射出的锁车信号

0   01110100101010100110 0010 0
前四位为同步码0 。。。中间这20位为01110100101010100110为地址码
0010为功能码,最后一位0是停止码
答案就是flag{01110100101010100110}

        补充知识:PT2242 信号是一种编码信号,常用于遥控器等无线通信设备中。其信号格式具有特定的结构,具体信息如下:

  1. 同步码:前面 4 位是同步码,用于标识信号的开始,帮助接收设备识别并同步到信号的传输。
  2. 地址码:中间的 20 位是地址码,用于指定信号的接收对象或目标地址。不同的遥控器或设备可以通过设置不同的地址码来进行区分,以确保信号的准确传输和接收。
  3. 功能码:后面的 4 位是功能码,用于表示具体的操作指令或功能。例如,可能包括开关、调节音量、切换频道等不同的功能。
  4. 停止码:最后一位是停止码,作为信号的结束标志。
  5. 在对 PT2242 信号进行分析和处理时,需要根据这种特定的格式来解读信号中所包含的信息。比如在一些密码学或信号分析的题目中,会给出一段类似 PT2242 信号的编码,要求根据其格式特点来提取出地址码、功能码等关键信息。

---------------------------------------------------------------------------------------------------------------------------------以下是使用python脚本实现对从 wav 文件中提取PT2242 信号

import librosa
import librosa.display
import numpy as np
import matplotlib.pyplot as pltdef extract_signal_from_wav(file_path):y, sr = librosa.load(file_path)plt.figure(figsize=(14, 5))librosa.display.waveshow(y, sr=sr)plt.title('Waveform')plt.xlabel('Time (seconds)')plt.ylabel('Amplitude')# 假设 PT2242 信号具有特定的频率范围或幅度特征# 这里进行一些简单的幅度阈值判断作为示例threshold = 0.5 * np.max(y)signal_indices = np.where(np.abs(y) > threshold)[0]extracted_signal = y[signal_indices[0]:signal_indices[-1]]plt.figure(figsize=(14, 5))librosa.display.waveshow(extracted_signal, sr=sr)plt.title('Extracted Signal')plt.xlabel('Time (seconds)')plt.ylabel('Amplitude')plt.show()return extracted_signalwav_file_path = "attachment_2.wav"
extracted_signal = extract_signal_from_wav(wav_file_path)

运行结果

和audacity提取得结果一样

http://www.lryc.cn/news/445416.html

相关文章:

  • Apache James配置连接达梦数据库
  • Java实现栈
  • 数据结构—栈
  • 服务设计原则介绍
  • 【Qualcomm】高通SNPE框架的使用 | 原始模型转换为量化的DLC文件 | 在Android的DSP端运行模型
  • 爬虫的流程
  • Git之如何删除Untracked文件(六十八)
  • k8s集群自动化管理
  • yum库 docker的小白安装教程(附部分问题及其解决方案)
  • python如何实现日期加减
  • springboot实战学习笔记(4)(Spring Validation参数校验框架、全局异常处理器)
  • 网络七层协议
  • 从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之一:生产环境与目标服务器详情
  • 【软件测试】详解测试中常用的几种测试方法
  • 开始学习深度学习-前言
  • Liveweb视频汇聚平台支持GB28181转RTMP、HLS、RTSP、FLV格式播放方案
  • 详解c++:new和delete
  • 【深度学习】(5)--搭建卷积神经网络
  • 边学英语边学 Java|Synchronization in java
  • k8s StorageClass 存储类
  • 3D Slicer医学图像全自动AI分割组合拳-MONAIAuto3DSeg扩展
  • 分布式光伏的发电监控
  • 微信小程序----日期时间选择器(自定义时间精确到分秒)
  • 3D生成技术再创新高:VAST发布Tripo 2.0,提升AI 3D生成新高度
  • ONNX Runtime学习之InferenceSession模块
  • 【TS】TypeScript内置条件类型-ReturnType
  • 【c语言数据结构】超详细!模拟实现双向链表(初始化、销毁、头删、尾删、头插、尾插、指定位置插入与删除、查找数据、判断链表是否为空)
  • 第十四届蓝桥杯嵌入式国赛
  • (k8s)kubernetes集群基于Containerd部署
  • python内置模块pathlib.Path类操作目录和文件