攻防世界m0_01

本文介绍了如何使用Wireshark分析PCAPNG文件,通过Python脚本处理键盘流量,解码特定的云影密码。作者详细展示了从数据抓取到密码还原的全过程,最终揭示了Flag{THISISFLAG}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

m0_01


题目描述:m0
题目环境:https://download.csdn.net/download/m0_59188912/86995259


  1. 打开12.pcapng文件,随机选择一条数据流量,发现是键盘流量。

在这里插入图片描述


  1. 使用wireshark命令行模式,提取出文件。
命令:tshark -r 12.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt

在这里插入图片描述

在这里插入图片描述


  1. 缺少冒号,使用python脚本添加冒号。
    脚本源码:
    f=open(‘usbdata.txt’,‘r’)
    fi=open(‘usbdatacolon.txt’,‘w’)
    while 1:
    a=f.readline().strip()
    if a:
    if len(a)==16: # 键盘流量len=16,鼠标流量len=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()
执行脚本。

命令:python colon.py

在这里插入图片描述

在这里插入图片描述


  1. 使用python脚本还原数据。
    脚本源码:
    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(‘usbdatacolon.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’:
continue
nums.append(int(line[6:8],16))

keys.close()

output = “”
for n in nums:
if n == 0 :
continue
if n in mappings:
output += mappings[n]
else:
output += ‘[unknown]’

print (‘output :\n’ + output)
运行脚本。

命令:python keyboard2.py

在这里插入图片描述


  1. 得到一串数字,显然这串数字不是flag,仔细观察发现只有01248,判断为云影密码,使用python脚本解码。
    脚本源码:
    #云影密码
    a=“884080810882108108821042084010421”
    s=a.split(‘0’)
    l=[]
    print(s)
    for i in s:
    sum=0
    for j in i:
    sum+=eval(j)
    l.append(chr(sum+64))
    print(l)
    运行脚本。
命令:python yy.py

在这里插入图片描述


  1. 得到flag。
    Flag{THISISFLAG}



本篇博客为本人解题write up,如有错误之处,还望各位指正。
文章为原创,如要转载请注明出处

<think>好的,我需要处理用户关于“m0_73891103 IT相关内容”的查询。首先,用户提供的引用中有三个来源,我需要仔细分析这些引用来找出与m0_73891103相关的信息。不过,看起来引用[1]是一个CSDN的博客链接,可能涉及快速排序;引用[2]提到了HAL_UART_Receive_IT函数,属于嵌入式开发中的串口接收中断配置;引用[3]讨论了ABOV M0系列开发,特别是中断系统和调试方法,还提到了定时器中断和串口通信。 用户提到的“m0_73891103”可能是一个用户ID或某种标识符,但直接引用中没有明确提到这个ID。考虑到引用内容中的M0系列开发(如M0S12),可能与微控制器相关,而“m0_73891103”可能是指某个具体的型号或项目。需要进一步确认是否有其他关联,但根据现有信息,可能用户是想了解与M0系列微控制器相关的内容,比如中断处理、串口通信或调试技巧。 接下来,我需要按照用户的要求生成相关问题,并确保回答结构清晰、可靠。根据引用内容,问题可以围绕中断系统、串口通信、调试方法以及具体的代码示例展开。同时,要确保使用正确的中文表达,并遵循LaTeX格式规范。</think>关于您提到的“m0_73891103”,经分析可能与嵌入式开发中的**M0系列微控制器**相关(如ARM Cortex-M0内核或ABOV M0S12系列)。以下是结合引用内容的详细说明: --- ### 1. M0系列中断系统与调试(引用[3]) 在ABOV M0S12系列中,中断处理需注意: - **中断服务程序(ISR)**需清除中断标志,例如定时器中断中调用`TIMER_ClearITPendingBit()`[^3]。 - 调试时可在ISR内通过串口发送信息,如`UART_SendString(UART0, "Timer0 Interrupt\n")`。 - 中断频率控制:通过计数器限制高频中断触发,例如每1000次中断切换LED状态[^3]。 --- ### 2. 串口通信实现(引用[2]) 使用`HAL_UART_Receive_IT()`函数配置串口中断接收: ```c HAL_UART_Receive_IT(&huart1, (uint8_t*)&goodBuffer[order], 1); // 接收1字节数据到缓冲区[^2] ``` 此代码适用于STM32 HAL库,实现异步接收数据并触发中断回调。 --- ### 3. 性能优化与调试工具(引用[3]) - **调试工具**:结合逻辑分析仪或IDE内置调试器,监控中断响应时间和代码执行路径。 - **中断优化**:避免在ISR内执行复杂运算,可通过标志位将任务转移到主循环处理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡巴枯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值