XCTF-Misc1 USB键盘流量分析
m0_01
附件是一个USB流量文件

分析
1.键盘流量
USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节,其中键盘击健信息集中在第三个字节中。

usb keyboard映射表:USB协议中HID设备描述符以及键盘按键值对应编码表

2.USB流量提取
USB协议的数据部分在 Leftover Capture Data 域中,可使用tshark提取流量
tshark -r xxx.pcapng -T fields -e usb.capdata > usbdata.txt

3.处理data文件,提取键盘信息
由于得到的USB文件中含有空行,常见的usbdata中以两字节加冒号的格式(如例子)。

例子
对文件进行处理:
#1.使用脚本删除空行
with open('usbdata.txt', 'r', encoding='utf-8') as f:lines = f.readlines()
lines = filter(lambda x: x.strip(), lines)
with open('usbdata.txt', 'w', encoding='utf-8') as f:f.writelines(lines)#2.将上面的文件用脚本分隔,加上冒号;
f=open('usbdata.txt','r')
fi=open('out.txt','w')
while 1:a=f.readline().strip() if a:if len(a)==16:#键盘流量的话len为16鼠标为8 out=''for i in range(0,len(a),2):if i+2 != len(a):out+=a[i]+a[i+1]+":" else:out+=a[i]+a[i+1] fi.write(out) fi.write('\n') else: break
fi.close()#3.最后用脚本提取
# print((line[6:8])) #输出6到8之间的值
#取出6到8之间的值
mappings = { 0x04:"A", 0x05:"B", 0x06:"C", 0x07:"D", 0x08:"E", 0x09:"F", 0x0A:"G", 0x0B:"H", 0x0C:"I", 0x0D:"J", 0x0E:"K", 0x0F:"L", 0x10:"M", 0x11:"N",0x12:"O", 0x13:"P", 0x14:"Q", 0x15:"R", 0x16:"S", 0x17:"T", 0x18:"U",0x19:"V", 0x1A:"W", 0x1B:"X", 0x1C:"Y", 0x1D:"Z", 0x1E:"1", 0x1F:"2", 0x20:"3", 0x21:"4", 0x22:"5", 0x23:"6", 0x24:"7", 0x25:"8", 0x26:"9", 0x27:"0", 0x28:"\n", 0x2a:"[DEL]", 0X2B:" ", 0x2C:" ", 0x2D:"-", 0x2E:"=", 0x2F:"[", 0x30:"]", 0x31:"\\", 0x32:"~", 0x33:";", 0x34:"'", 0x36:",", 0x37:"." }
nums = []
keys = open('out.txt')
for line in keys:if line[0]!='0' or line[1]!='0' or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0':continuenums.append(int(line[6:8],16))
keys.close()
output = ""
for n in nums:if n == 0 :continueif n in mappings:output += mappings[n]else:output += '[unknown]'
print ('output :\n' + output)

运行脚本,将对应的USB转换出来是一串数字

4.云影解码
这一串数字,我也不知道是啥,搜吧
云影密码(01248码)
- 这种加密方式仅使用01248这5种数字来进行,其中0用来唯一表示间隔,其他数字用加法和表示替换密文。再使用数字1-26表示字母A-Z。
如:18 = 1+8 = 9 = I,1248 = 1+2+4+8 = 15 = O- 特点:密文中仅存在01248,加密对象仅有字母。
- 加密方式:
题目:12401011801180212011401804
- 注意(3个及以上数字时):虽然是相加,但是可以在数字内不按顺序相加,如124可写成(12)4和1(24)结果分别是7和16,只要保证不大于26即可
- 第一步分割:即124 、1、118、118、212、114、18、4
- 第二步基本翻译:例如124可以表示7,也可以表示16(但不可能是34,因为不会超过26),所以可以放弃来翻译其他没有异议的,可得:124、a、s、s、w、o、18、d
- 第三步推测得出明文:可以推测后面的18表示r,前面的为p最合适。
所以最后明文:password(密码)
解密脚本:
##with open(r'F:/桌面/tmp/2.txt','r') as f:
## data = f.read()
## print(data)data = "884080810882108108821042084010421"
list = data.split('0')
print(list)datalist=[]
def dlist(list):d = 0for i in list:for j in i:d += int(j)datalist.append(d)d=0return datalist
datalist = dlist(list)def str(datalist):s=''for i in datalist:s += chr(i+64)return s
print(str(datalist))

最终得到flag
参考链接:
https://blog.csdn.net/ON_Zero/article/details/130528679
https://www.cnblogs.com/yuanchu/p/13492904.html
CTF密码学总结 https://blog.csdn.net/xiao__1bai/article/details/121089114
相关文章:
XCTF-Misc1 USB键盘流量分析
m0_01 附件是一个USB流量文件 分析 1.键盘流量 USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节,其中键盘击健信息集中在第三个字节中。 usb keyboard映射表:USB协议中HID设备描述符以及键盘按键值对应编码表 2.USB…...
毛概笔记。
一、 毛泽东思想是马中化的第一果,是关于搞革命,搞改造,搞建设的理论。 二、新民主主义革命 新民主主义革命的三大法宝:1.统一战线 2. 武装斗争 3.党的建设 政治纲领 经济纲领 文化纲领 乱世造英雄 三、社会主义改造理论ÿ…...
postman使用方法指南,最全面的教程
Postman使用教程 一、Postman介绍 Postman是一个英语单词,名词,作名词时意为“邮递员;邮差”。 Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,…...
工业物联网上篇——什么是IIOT?
工业物联网背后的理念是使用工业设施中“哑巴设备”多年来产生的数据。装配线上的智能机器不仅可以更快地捕获和分析数据,且在交流重要信息方面也更快,这有助于更快、更准确地做出业务决策。 信息技术(IT)和运营技术(O…...
【JavaEE】Java多线程状态-- 多线程篇(10)
Java 多线程状态 1. 线程一共有几个状态?2. 每种状态表示的含义 & 状态之间的切换条件 1. 线程一共有几个状态? 在 Java 中, 线程的状态主要有新建, 就绪, 运行, 阻塞, 等待和超时等待; 2. 每种状态表示的含义 & 状态之间的切换条件 首先处于新建状态, 当线程调用…...
坐标转换 | EXCEL中批量将经纬度坐标(EPSG:4326)转换为墨卡托坐标(EPSG:3857)
1 需求 坐标系概念: 经纬度坐标(EPSG:4326):WGS84坐标系(World Geodetic System 1984)是一种用于地球表面点的经纬度坐标系。它是美国国防部于1984年建立的,用于将全球地图上的点定位࿰…...
STM32学习笔记二十:WS2812制作像素游戏屏-飞行射击游戏(10)探索游戏平衡
游戏平衡很重要,然而,却往往得不到开发者的重视。或者,没有花时间仔细去做调整。 做过游戏开发的,都听说过一个词叫“数值爆炸”,实际上就是平衡没做好。 怎么样才能算是平衡呢? 玩家投入游戏的有两个&a…...
Windows 搭建ninja 编译c++的环境
1. 系统安装python, 测试版本为(3.7.0) 2. 从官方网站获取get-pip.py https://bootstrap.pypa.io/get-pip.py 3. 安装pip python get-pip.py 4. 安装ninja pip install ninja 5. 准备CMakeLists.txt cmake_minimum_required(VERSION 3.22) proje…...
环形链表【链表】【哈希】
Problem: 141. 环形链表 文章目录 思路 & 解题方法复杂度Code 思路 & 解题方法 哈希 复杂度 时间复杂度: 添加时间复杂度, 示例: O ( n ) O(n) O(n) 空间复杂度: 添加空间复杂度, 示例: O ( n ) O(n) O(n) Code # Definition for singly-lin…...
Hive实战:网址去重
文章目录 一、实战概述二、提出任务三、完成任务(一)准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 (二)实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、基于HDFS数据文件创建Hive外部表4、利用Hive SQL实…...
206.【2023年华为OD机试真题(C卷)】最大N个数与最小N个数的和(JavaPythonC++JS实现)
🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-最大N个数与最小N个数的和二.解题思路三.题解代…...
【刷题日记】青少年CTF-Misc(一)
靶场链接 青少年CTF Markdown 题目难度:★ 题目描述:s0ng师傅发现M0x1n师傅特别喜欢用这个写文档,你知道M0x1n这次把FLAG放到哪里了吗?flag格式为:qsnctf{xxx}。 下载附件,打开即可看到flag flag qsnc…...
《未知星途:自我掌握命运》
最近在追一部叫《吞噬星空》的国产动漫,由此引发了我对于人类命运的思考。 在宇宙的无边黑暗中,我们仰望星空,对于外星生命的想象如同星云般浩渺。外星生命,或许是以我们无法想象的形态存在着,可能是以光辉的气体、晶莹…...
一个简单的KNN实现方法
对于许多离散问题,经过神经网络解决再通过softmax之后每一个值在[0,1]之间的连续变量,想要将其离散化,即离散化到每个元素都是 binary-variable,即 0-1 ,这时可以用KNN方法,其实就是找到与这个向量的方差最…...
Vue实现加减法验证码
引入Vue.js 在HTML文件的<head>标签中引入Vue.js的CDN链接: <script src"https://cdn.jsdelivr.net/npm/vue2.6.11/dist/vue.min.js"></script>创建Vue实例 接下来,我们要创建一个Vue实例,并将其挂载到HTML文…...
PDF最强处理工具-StirlingPDF
Stirling-PDF 一个功能强大的本地托管的基于 Web 的 PDF 操作工具,这个软件最初是使用 ChatGPT 制作的,持续的版本迭代更新,支持对 PDF 文件执行各种操作,例如拆分合并、转换、重组、添加图像、旋转、压缩等。完全开源免费&#x…...
SpringCloud系列篇:入门讲解Spring Cloud是什么
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.Spring Cloud是什么 二.Spring …...
GEE:随机数
作者:CSDN _养乐多_ 本文将介绍在 Google Earth Engine(GEE)上生成随机数的 API,可以指定随机数的生成范围、类型(整型、浮点型)、分布方式(均匀分布、正态分布)。 文章目录 一、随…...
H266/VVC率失真优化与速率控制概述
率失真优化技术 率失真优化: 视频编码的主要目的是在保证一定视频质量的条件下尽量降低视频的编码比特率,或者在一定编码比特率限制条件下尽量地减小编码失真。在固定的编码框架下,为了应对不同的视频内容,往往有多种候选的编码方…...
thinkphp6入门(14)-- 多关联模型查询
背景: 有3个数据表,一个User表,一个Cloth表,一个Shoe表。 Cloth表和Shoe表分别和User表通过user_id关联。 thinkphp 6中如何通过模型查询所有用户,其中包括每个用户的cloth和shoe。 多关联模型查询: 1.…...
风机技术演进与主动冷却系统优化实践
1. 风机技术演进与主动空气冷却系统优化作为一名在热管理领域工作多年的工程师,我见证了风机技术从简单的散热部件发展为精密的热管理系统的全过程。现代电子设备功率密度不断提升,从智能手机到数据中心服务器,散热设计已成为产品成败的关键因…...
长期使用taotoken token plan套餐的成本节约感受
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用 Taotoken Token Plan 套餐的成本节约感受 对于需要稳定调用大模型 API 的个人开发者或团队而言,成本控制是一…...
微信消息智能路由系统:3步搭建你的跨群信息高速公路
微信消息智能路由系统:3步搭建你的跨群信息高速公路 【免费下载链接】wechat-forwarding 在微信群之间转发消息 项目地址: https://gitcode.com/gh_mirrors/we/wechat-forwarding 在数字化协作时代,微信群已成为团队沟通的核心渠道。然而…...
GitHub 代码提交常见问题及解决指南
摘要本文聚焦 GitHub 代码提交流程,围绕本地文件上传、远程仓库关联、分支推送等核心操作,梳理常见报错(如可疑所有权、分支不匹配、协议不支持等),解析错误成因并提供分步解决方法,覆盖 Git 命令执行、仓库…...
深度重构黑苹果系统架构:OpenCore实战解析与性能优化
深度重构黑苹果系统架构:OpenCore实战解析与性能优化 【免费下载链接】Hackintosh 国光的黑苹果安装教程:手把手教你配置 OpenCore 项目地址: https://gitcode.com/gh_mirrors/hac/Hackintosh 在传统PC硬件与macOS系统兼容性的技术探索中…...
为什么你的学术论文格式转换总是失败?docx2tex 3步解决方案
为什么你的学术论文格式转换总是失败?docx2tex 3步解决方案 【免费下载链接】docx2tex Converts Microsoft Word docx to LaTeX 项目地址: https://gitcode.com/gh_mirrors/do/docx2tex 还在为Word到LaTeX的格式转换头痛吗?每次提交学术论文、技术…...
如何在Chrome浏览器中一键生成与扫描二维码:Chrome QRCode插件终极指南
如何在Chrome浏览器中一键生成与扫描二维码:Chrome QRCode插件终极指南 【免费下载链接】chrome-qrcode :zap: A Chrome plugin to Genrate QRCode of URL / Text, or Decode the QRcode in website. 一个Chrome浏览器插件,用于生成当前URL或者选中内容的…...
2026年十大RPA自动化工具盘点:从国际巨头到国产新秀
一、RPA技术的前世今生说起RPA(机器人流程自动化),很多人以为这是近几年才冒出来的新概念。其实不然,自动化的基因早在百年前就埋下了种子。1913年,福特汽车搞出了世界上第一条流水线,那是工业自动化的起点…...
Audacity音频编辑教程:免费开源音频处理软件的完整使用指南
Audacity音频编辑教程:免费开源音频处理软件的完整使用指南 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity Audacity是一款功能强大的免费开源音频编辑软件,支持录音、剪辑、混音和音频效果…...
Linux小白避坑指南:Resilio Sync安装后权限配置与Web界面访问失败的常见问题解决
Linux权限迷宫:Resilio Sync安装后的深度避坑实战 当8888端口沉默时:一次真实的故障排查记录 上周五晚上11点,我正准备将团队的设计素材库同步到本地开发环境。按照官方文档,我在Ubuntu 22.04上顺利安装了Resilio Sync,…...
