HGAME-Week3-Writeup
Re
1.FAKE
拖到ida
.png)
关键函数里有36个方程,36个变量,那就不可能普通的解出来,
查找字符串得到提示 Try angr or z3,我用的是 z3库,脚本太长了就不放了(用z3库解的时候一直跑不出结果,就去问了 r3n0学长,学长说可能需要点时间,但之后我重新弄了一下add的部分很快就跑出来了,应该是我自己中间操作上的问题….)
.png)
假flag,查一下SMC
1 | SMC(self-Modifying Code),就是在真正执行某一段代码时,程序会对自身的该段代码进行自修改,只有在修改后的代码才是可汇编,可执行的。在程序未对该段代码进行修改之前,在静态分析状态下,均是不可读的字节码,IDA之类的反汇编器无法识别程序的正常逻辑。是一种反调试代码技术。 |
在ida里找一下smc自解密的部分
.png)
这段代码执行后才得到真正的代码,写 idc 脚本来解密 ida 反编译后错误的代码
1 |
|
得到运行过程中真正的代码
.png)
这部分继续用z3库写脚本去解
1 | from z3 import * |
Crypto
1.LikiPrime
还是 RSA,不过素数 N 更大了,但是放到网站里分解还是能分解出 q和 p,之后就是用上周的脚本跑出flag
2.HappyNewYear!!
e = 3,发送内容相同,自然就想到低指数广播攻击,但是广播攻击只需要 e组数据,那么猜测给的数据里解出来的明文不是全部相同。
低指数广播攻击需要用到中国剩余定理(孙子定理),脚本如下
1 | from libnum import n2s |
c1,c3,c5 解密得到一个片段,c2,c4,c6解密得到剩下的flag片段(本来写的是随机在给出的7组数据里挑三组解密,但是没跑出结果,后来手动试了一下试出来了)
.jpg)

Misc
1.A R K
打开下载的流量包,首先看到dns里的域名
.jpg)
刚开始以为跟网址有关,但后来题目里说 “本题目所有解题操作均只用流量,与网址无关” ,那就接着看其他包,查资料知道 TLS 加密尝试找到流量包里的证书
.png)
导出原始数据保存为 ssl.log ,再重新导入解密
.jpg)
找到解密后的 HTTP 流,导出后得到一堆json文件,导出来后卡了一段时间,之后看到题目的补充信息
补充说明:明日方舟是一款塔防游戏,可以将可部署单位放置在场地中。并且具有自律功能,可以记录部署的操作。 翻译:没用 没用 出题人用可部署单位画了个东西 背景是白色的
记录部署操作?!那就打开 getBattleReplay 文件,看到像是 base64 编码的字符串,解码看到 zip 文件头标识另存为 zip,解压打开发现配对的 row 和 col ,应该是部署的坐标,再根据题目里的 画了个东西 猜测这些坐标是二维码黑色部分,处理一下再运行脚本
.jpg)
扫码得flag
.png)
2.A R C
压缩包加密了,那就先看图片找密码

刚开始误以为 BV 是某种 CTF 中的加密方式,在网上搜索了一圈没有收获,于是去问 Akira 学长 BV 除了 b站BV号还有什么意思,学长的答复是
.png)
怎么实现的?查 av号怎样转 bv号后发现 https://www.zhihu.com/question/381784377/answer/1099438784 这个回答里的实现方法,根据 hint1:8558 应该理解成85和58,BV号_是所以图片里的是__ 先对图里的密文进行 base85 解密

根据长度判断应该是 av号转 bv号算法里的table,那就换一下上面链接里代码的table,密文是压缩包名里的数字,跑一下得到压缩包密码
.png)
打开后得到一段 arc 视频和密文,用题目里给的软件播放视频得到
.png)
发现图中第一行文字和文本里文字相似,猜测是同种加密方式,之后又没有思路了,hint2里提到 词频分析是个好东西,别忘了视频里的问题 ,查了下视频里的问题但没什么发现。后来又放出hint 用了某种ROT的范围,但是位移不一样 ,根据两个字符的应该是 is 之类的尝试将每个字符后移10位,得到了一段英文,然后又卡住了。于是又去问 Akira学长,学长说并不是后移10位提示我再想想视频里问题的答案,突然想起之前有查到 42 这个数字,尝试后移42位得到正确的文字
.png)
视频里文字第一行也是后移 42位得到 MSU 密码,解密得到的文字里提到视频里第二行的加密方法 Liki学长提到过,根据 week1 crypto的第一题,第二行文字加密方法应该是维吉尼亚,密钥是 Akira
在 virtualDub2里安装MSUstego插件,用之前得到的密码对视频进行解密,得到网址、光和对立的名字,访问网站输入用户名和密码
.png)
根据hint5: / 不是可输入的意思,是网站路径,想起之前视频解出的第二行还没用上,那就在网站路径后输入解出的明文,得到flag(pm)
这周misc虽然难但很有趣,梗挺多的
总结:
这周因为跟父母回老家拜年少了很多做题的时间,之后电脑还出了故障重装了系统,下周要专注于re了,不能再靠着 misc 和 crypto 上分了
接下来是没做出来的部分
re
Gun这道题用查壳工具查得是梆梆免费版加固,想要脱壳,用了很多网上查到的方法但都失败了,问了 Trotsky学长,推荐使用frida-dexdump脱壳,但是因为这道题需要root过的真机(模拟器不行)来进行脱壳,所以最后只能放弃
hello_re3我没太搞明白,拖进ida发现应该都是调试信息,mezone学长说要用dbgview看调试信息再定位到程序里,可惜这题是最后一天才做的,最后没时间了,打算看官方writeup再学习一下
Crypto
EncryptedChats这题尝试了各种方法去解,还是解不出 a 和 b ,需要的时间都很长,但是 g 挺大(不是2、5这种很小的) a 跟 b 应该是能解出来的…
HGAME-Week3-Writeup