前言:这次参加了susctf感受颇深,题目难度不是很大很大,但是很考验基础的技术熟练度,比如re这次就因为不会套脚本去解密,导致卡死在了第一道题,一道没做出来。所以只做了做misc和web。

RA2

根据README中的步骤启动游戏:Step1:运行make.cmd Step2:运行launch-game.cmd并启动游戏。

看到游戏是红警,首先想到的是下载修改器,但是这个游戏的进程文件是OpenRA.exe因此修改器肯定是识别不出来的,如果要是改程序的名字,那么启动器就启动不了。所以首先想到的是用ce去修改。

初始金额1900,打开CE进行修改。建造一圈围墙用来保护基地(围墙是无敌的......)。

这里出现了金额数据的地址,但有两个,经过测试,发现分别组成金额的上限和下限(不是很理解为什么会有上下限)。

以最快的速度造出UFO,这样就可以全图跑了,去找flag。

得到flag:SUSCTF{RED_ALERT_WINER!!!}

AUDIO

根据hint所示,我们需要从attachment中找到隐藏的秘密,于是download下来有两个文件。

formfriends.wav和origin.mp3两个文件。

我分别听了一下这两个文件,发现origin中的声音和fromfriends相比质感很强更偏于原音频(未修改),并且这两个文件的大小差得离谱,我更相信肯定在fromfriends上做手脚,于是把重心放在了该文件上。

从该音频中,我听了至少30遍,从32s处会出现间隔明确较为清晰的电报音,于是根据耳朵的猜测一遍一遍的尝试,但是最终都没有成功得出flag,因此扔进Audition看看。

接着,打开Audition对音频文件进行观察,切换至频谱图。(在该图位置之前,我进行了降噪的处理,但是效果不理想,于是想到了之前做伴奏的经验,用中置声道提取消去不同频率的杂音)注意观察,"内容"集中在2khz~0hz之间。

于是对其在0hz~2khz范围内进行提取。

继续观察,0hz~至少20hz(保守估计)是无用信息,有点类似底噪?于是应该再进行一次提取,剔除0hz~20hz范围内的声音。

在提取出的频率范围内有很多横线,一时间让我不知所措,但是这个歌曲坚持听完,会在32s高潮结束后,vocal进来的一瞬间开始可以听到明显的滴滴声,于是根据这个线索,对照频谱图中的横线,去找是那些横线和发出的电报声的频率相吻合。于是锁定了在两处非常明显的吻合点,并且在同一水平线上对应着1khz的位置,那么不妨直接提取1khz(+-5hz)。

该图在1khz上下部分进行了处理(具体操作有两种1:选中上下部分使用delect进行静默;2:选中上下部分进行降幅处理即:-XdB),这下就很清楚了,但是有个问题,因为只有在32s以后才可以听到明确的电报音和停顿,所以在我们看到了很多很多的有轻有重的点横,很难分辨。

(诸如此类的干扰)

于是我从32s之后那些较为明确的moss码上下手,我想,会不会moss码的频率是相同的?于是找了较为清楚的位置(该位置的频谱图显示和我之前推测的一致,因此就在此处进行对比分析)于是我用大长方形框出的是于我推测的moss码吻合的点位,小长方块框出的位置很特殊,因为他很的频谱很重,因此我很迷惑,但是根据间距联系停顿,我觉得小方块的位置应该是干扰点,于是将我能听出来的位置间隔都进行了处理。

至此,我感觉我的方向应该是对的,继续根据这个逻辑进行处理。

处理至此,对于前面一大串没有处理的地方,有一次产生了疑惑。

放大频谱继续分析,前面一大串和后面明显是不等距的,并且前面绿框的频谱无论怎么组合,既不符合逻辑,也不符合刚才得出的等距的规律,并且这些属于前奏,在前奏中并未听出该处有什么异常,到感觉很乱,于是我仅仅对后面的moss码进行了转换。

 最后得出flag:SUSCTF{MASTEROFAUDIO}

SUSCTF2022 Misc-AUDIO&RA2的更多相关文章

  1. 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速

    作者:唐老师,华清远见嵌入式学院讲师. Android的启动速度一直以来是他的诟病,虽然现在Android设备的硬件速度越来越快,但是随着新 版本的出现,其启动速度一直都比较慢,当然,作为程序员,我们 ...

  2. Android 启动过程简析

    首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...

  3. android init.rc 语法分析

    此文来自于对http://source.android.com/porting/index.html中bring up段的简译.其中有一处与源码的 system/core/init/readme.tx ...

  4. 高新兴 ME3630-W 4G 模块 Android 平台适配

    2019-04-26 关键字:高新兴 ME3630-W 适配.rk3128 移植 4G 模块 本篇文章系笔者在移植 高新兴物联 ME3630-W 4G 模块到运行着 Android4.4 操作系统的 ...

  5. 移植UC15 3G模块

    https://blog.csdn.net/jack_a8/article/details/43114083 https://wenku.baidu.com/view/7ea5c9cd52d380eb ...

  6. Android RILD运行机制详解

    前言 在上一篇文章里(http://blog.csdn.net/jason_wzn/article/details/53232022),简要介绍了Android RIL的架构.这一篇文章,就来看一看R ...

  7. Android系统init进程启动及init.rc全解析

    转:https://blog.csdn.net/zhonglunshun/article/details/78615980 服务启动机制system/core/init/init.c文件main函数中 ...

  8. Tiny4412 Android 启动流程

    Android系统的启动主要包括三个阶段: ①BootLoader启动 ②Linux Kernel启动 ③Android系统启动 前面我们大致分析了前面两个步骤,即u-boot和内核的启动流程(内核启 ...

  9. Android——4.2 - 3G移植之路之 reference-ril .pppd 拨号上网 (三)

    Android的RIL机制中的 reference-ril.c 即为厂商提供的驱动接口.这个驱动源代码各个厂商都是有提供的,网上也有下载.我如今用的就是huawei wcdma的.最后编译成libre ...

  10. android开机启动流程说明

    android开机启动流程说明 第一步:启动linux 1.Bootloader 2.Kernel 第二步android系统启动:入口为init.rc(system\core\rootdir) 1./ ...

随机推荐

  1. uniapp微信小程序保存base64格式图片的方法

    uniapp保存base64格式图片的方法首先第一要先获取用户的权限 saveAlbum(){//获取权限保存相册 uni.getSetting({//获取用户的当前设置 success:(res)= ...

  2. 34.AVL树

    1.创建Node结点 class Node { int value; Node left; Node right; public Node(int value) { this.value = valu ...

  3. listen()和accept()

    1.listen()队列剖析 作用:监听端口,TCP连接中的服务器端角色 调用格式:int listen(int sockfd, int backlog); 第一个参数:创建的sockfd, 好好理解 ...

  4. Python数据结构之“栈”与“队列”

    栈(Stacks): ·定义:是一种只能通过访问其一端来实现的数据存储于检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征 ·主要操作: 1. Stack():建立 ...

  5. ApacheCN Vue 译文集 20211115 更新

    使用 GraphQL 构建 VueJS 应用 零.前言 一.数据绑定.事件和计算属性 二.组件.混合器和功能组件 三.设置我们的聊天应用--AWS Amplify 环境和 GraphQL 四.创建自定 ...

  6. switch多选择结构

    switch多选择结构 多选择结构还有一个实现方式就是switch case语句. switch case 语句判断一个变量与一个系列值中某个值是否相等,每个值称为一个分支. 语法: switch(e ...

  7. JAVA变量的数据类型

    1. 整型 byte   代表一个字节的大小   8bit  2(8)   -128~127        256 short  代表两个字节的大小  16bit  2(16)  -2(15)~2(1 ...

  8. 调试程序Bug-陈棚

    1.使用NSAssert 主要可以作为自定义bug的返回信息,对调试极为方便知道bug出现在哪 NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式 ...

  9. 简单的MAC的终端命令

    今天小研究了一下MAC的终端命令,主要为了方便调试程序用,XCODE用不来啊... 在这里记下..防止丢失 pwd 当前工作目录 cd(不加参数) 进root cd(folder) 进入文件夹 cd ...

  10. Solution -「SHOI2016」「洛谷 P4336」黑暗前的幻想乡

    \(\mathcal{Description}\)   link.   有一个 \(n\) 个结点的无向图,给定 \(n-1\) 组边集,求从每组边集选出恰一条边最终构成树的方案树.对 \(10^9+ ...