【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-这音乐好难听

举报
剑豪 发表于 2023/06/15 22:56:56 2023/06/15
【摘要】 音频隐写是指将隐藏的信息嵌入到音频信号中,使得这些信息对人耳听不出来,但可以通过特定的解码方式提取出来。

@TOC


前言

音频隐写是指将隐藏的信息嵌入到音频信号中,使得这些信息对人耳听不出来,但可以通过特定的解码方式提取出来。以下是音频隐写的几种具体种类:

  1. LSB隐写法:最常见的音频隐写技术之一,将要隐藏的信息以二进制形式嵌入到音频信号中最低有效位(LSB)中。

  2. 时间域隐写法:通常利用音频信号中微弱的、难以被察觉的时间间隔来嵌入信息。

  3. 频率域隐写法:通过改变音频信号的频率,将要隐藏的信息嵌入到音频信号中。

  4. 相位隐写法:将待隐藏信息对应的比特值作为相位差值,修改音频信号对应位置的相位值来嵌入信息。

  5. 编码隐写法:将待隐藏信息编码成比特流,再将比特流嵌入到音频信号中去。

无论使用何种技术,音频隐写都可以被用于隐藏秘密信息以进行间谍通信、数字水印、版权保护等目的。

Audacity是一款免费、开源的音频编辑软件,支持多种操作系统,包括Windows、macOS和Linux等。它可以帮助用户录制、编辑和混合不同的音频文件,支持包括WAV、AIFF、MP3、OGG等多种音频格式。

用户可以利用Audacity来进行基本的音频编辑操作,如剪切、复制、粘贴、混响、降噪、音量调整等。此外,Audacity还支持各种音频特效和处理,如去除噪音、改变声调、增加回声、加入混响、压缩音量等。Audacity还支持使用插件扩展功能,用户可以自行添加各种音频特效和处理插件,以满足个人需求。

总的来说,Audacity是一款强大且易于使用的音频编辑软件,适用于想要进行音频编辑或录制的广大用户。

一、这音乐好难听

1.打开题目

在这里插入图片描述

2.解题

在这里插入图片描述

打开音乐文件,也不知道是个什么东西,奇奇怪怪的,先用Audacity分析一波,查看了下波形,如果低的波峰为0,高的波峰为1的话,那就是妥妥的二进制了啊。以下是提取脚本

import wave as we
import numpy as np
 
wavfile =  we.open(u'music.wav',"rb")
params = wavfile.getparams()
framesra,frameswav= params[2],params[3]
datawav = wavfile.readframes(frameswav)
wavfile.close()
datause = np.fromstring(datawav,dtype = np.short)
 
result_bin=''
result_hex=''
max=0
for i in range(len(datause)-1):
    if datause[i]> max:
        max=datause[i]
    try:
        if(datause[i]<0 and datause[i+1]>=0):
            if (max-24000 >0):
                result_bin+='1'
                max=datause[i+1]
            else:
                result_bin+='0'
                max=datause[i+1]
    except:
        break
 
print result_bin    
for i in range(0,len(result_bin),4):
    result_hex+=hex(int(result_bin[i:i+4],2))[2:]
 
print result_hex
 
file_rar = open("test.rar","wb")
file_rar.write(result_hex.decode('hex'))  
file_rar.close()    
​

得到一个压缩文件,打开之后只有一个noflag的文档,真坑啊,不是最终的答案,把压缩文件放到010里面分析一波 在这里插入图片描述 这里有个stm的文件,但是压缩包好像没有,那是不是文件损坏了,尝试修复文件

文件块的第3个字节为块类型,也叫头类型。 
头类型是0x72表示是标记块 
头类型是0x73表示是压缩文件头块 
头类型是0x74表示是文件头块 
头类型是0x75表示是注释头
​

在这里插入图片描述 解压将STM的文件放到010里面分析一波 在这里插入图片描述 发现是个png的文件,但是解压出来的文件也不是啊,所以尝试加了个后缀

 png修复高度

import os
import binascii
import struct
crcbp = open("STM.png","rb").read()
for i in range(1024):
    for j in range(1024):
        data = crcbp[12:16] + struct.pack('>i',i) + struct.pack('>i',j) + crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if crc32 == 0x08ec7edb:
            print i,j
​

发现高和宽都是280,但是现在的图片高只有140,那么我们修改一下 在这里插入图片描述 这里因为高和宽是一样的,所以将后面的这个数据改为和前面的一样就行了。 最后得到完整的二维码,扫码得到flag  在这里插入图片描述 得到flag:flag{4dcfda814ec9fd4761c1139fee3f65eb}

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。