当前位置: 首页 > 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.mrgr.cn/news/35484.html

相关文章:

  • Codeforces Global Round 19 D题 Yet Another Minimization Problem(推式子,01背包变形)
  • 模拟哈希表
  • LVGL第一篇-了解lvgl显示原理以及使用C++移植
  • Zookeeper
  • BERT训练环节(代码实现)
  • Seata分布式事务实践
  • Allegro视频去除走线的小方块
  • [linux][证书]证书导出公钥
  • 关于Python升级以后脚本不能运行的问题
  • LCR 028
  • 字符串哈希
  • 2-102基于matlab的蒙特卡洛仿真
  • 考研数据结构——C语言实现小顶堆
  • SpringBoot基础知识
  • string 的介绍及使用
  • C++语言桌面应用开发GTK3 Gtkmm3 Glade
  • 在Java中如何利用ClassLoader动态加密、解密Class文件
  • 面经宝典【1】-拼多多
  • 插入、更新与删除MySQL记录
  • Python 入门教程(7)面向对象 | 7.5、继承