SUSCTF2022 Misc-AUDIO&RA2
前言:这次参加了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的更多相关文章
- 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速
作者:唐老师,华清远见嵌入式学院讲师. Android的启动速度一直以来是他的诟病,虽然现在Android设备的硬件速度越来越快,但是随着新 版本的出现,其启动速度一直都比较慢,当然,作为程序员,我们 ...
- Android 启动过程简析
首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...
- android init.rc 语法分析
此文来自于对http://source.android.com/porting/index.html中bring up段的简译.其中有一处与源码的 system/core/init/readme.tx ...
- 高新兴 ME3630-W 4G 模块 Android 平台适配
2019-04-26 关键字:高新兴 ME3630-W 适配.rk3128 移植 4G 模块 本篇文章系笔者在移植 高新兴物联 ME3630-W 4G 模块到运行着 Android4.4 操作系统的 ...
- 移植UC15 3G模块
https://blog.csdn.net/jack_a8/article/details/43114083 https://wenku.baidu.com/view/7ea5c9cd52d380eb ...
- Android RILD运行机制详解
前言 在上一篇文章里(http://blog.csdn.net/jason_wzn/article/details/53232022),简要介绍了Android RIL的架构.这一篇文章,就来看一看R ...
- Android系统init进程启动及init.rc全解析
转:https://blog.csdn.net/zhonglunshun/article/details/78615980 服务启动机制system/core/init/init.c文件main函数中 ...
- Tiny4412 Android 启动流程
Android系统的启动主要包括三个阶段: ①BootLoader启动 ②Linux Kernel启动 ③Android系统启动 前面我们大致分析了前面两个步骤,即u-boot和内核的启动流程(内核启 ...
- Android——4.2 - 3G移植之路之 reference-ril .pppd 拨号上网 (三)
Android的RIL机制中的 reference-ril.c 即为厂商提供的驱动接口.这个驱动源代码各个厂商都是有提供的,网上也有下载.我如今用的就是huawei wcdma的.最后编译成libre ...
- android开机启动流程说明
android开机启动流程说明 第一步:启动linux 1.Bootloader 2.Kernel 第二步android系统启动:入口为init.rc(system\core\rootdir) 1./ ...
随机推荐
- IDEA2017 maven Spark HelloWorld项目(本地断点调试)
作为windows下的spark开发环境 1.应用安装 首先安装好idea2017 java8 scalaJDK spark hadoop(注意scala和spark的版本要匹配) 2.打开idea, ...
- Python小练习-购物商城(一部分代码,基于python2.7.5)
新手写作,用来练习与提高python编写.思考能力,有错误的地方请指正,谢谢! 第一次写博客,课题是一位大神的博客,本着练习的目的,就自己重写了一遍,有很多不足的地方,希望借博客记录下自己的成长: ...
- LNMP架构搭建
目录 一:LNMP架构简介 1.Nginx与uwsgi 二:django框架+python 1.创建用户 2.安装依赖包 3.安装uwsgi和django 4.测试python 5.创建django项 ...
- Nginx全面介绍 什么是Nginx?
目录 一:Nginx全面讲解 1.简介: 2.nginx的用武之地 3.关于代理(解析含义作用) 二:正向代理 三:反向代理 四:项目应用场景 五:正向代理与反向代理区别 1.正向代理 2.反向代理 ...
- 打家劫舍(java语言描述(动态规划))
题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给 ...
- JavaIo流入门篇之字节流基本使用。
一 基本知识了解( 字节流, 字符流, byte,bit是啥?) /* java中字节流和字符流之前有接触过,但是一直没有深入的学习和了解. 今天带着几个问题,简单的使用字节流的基本操作. 1 什么 ...
- 微信小程序--给数组的每个对象添加动画(数据驱动)
思路:用数据驱动事件,用数组的方式去对循环数组的每个对象进行操作 js代码: data:{ selectCategory: [{ name: '生产模式', content: [{ txt: '原厂' ...
- 【XR-4】文本编辑器
直接做是困难的,不妨依照部分分来思考. - Subtask 3 首先会进入一个误区:维护修改,通过循环串的性质在 \(\tt KMP\) 自动机上优化遍历. 但可以发现这样很难处理,我们不妨 直接维护 ...
- java run()方法无法throws 异常
感谢大佬:https://blog.csdn.net/z_ssyy/article/details/95345205 其实原因很简单,run()方法是我们调用start()方法后,jvm再去调用run ...
- Linux添加用户组和添加用户
1.用户组 添加组:groupadd 组名 [root@Server-n93yom ~]# groupadd dev [root@Server-n93yom ~]# cat /etc/group | ...