GZTime’s Puzzle Adventure 通关总结

链接: PGv1, 作者GZTime

前言

去年暑假玩的来着,当时有个 OIer 朋友在我们的小群里求助这个解密,然后我们四五个人就晚上十点多开始研究这些题,除了一个是 Phoer(友链里的哲学家就是他) ,都是 OIer 朋友,一群非常好的朋友。

还记得当初是我第一个发现图片暗藏玄机,后面有个根据图像写函数的题那位 Phoer 写的飞快,还有一道根据截图找在哪个动漫的多少秒,啊这,那几个我一个也不认识,他们几个二次元几乎一眼就看出来了。不过很遗憾,我们几个并不都是从开始一直一起走到通关的,有几个朋友在各方面原因的作用下到一半就没有继续了。有一关叫迷宫,那关或需要毅力,或需要代码能力,还记得当时我果断研究该怎么写程序走迷宫,该怎么发包,最后踉踉跄跄从第一天下午五点鼓捣到了第二天下午五点,终于把这关过了,但是靠毅力走的同志两个小时走出去了,只能说非常强,多少有些惭愧。

后面的关卡越来越难,基本必须要集思广益才能通过了。这里插叙一下,当时我走迷宫的时候,来了一队CTFer,似乎是三四个小时就把所有题秒了,后来者据上,成为通关的第一梯队;当时作为第二梯队的我还在健身房里,眼睁睁的看着他们把题过了,而我却碰不到电脑。作为第二梯队的一员,因为去健身被迫边栽树边乘凉。到家的时候第二梯队的其他人貌似已经将第二关推进了将近三分之二,我通过QQ群消息观察法成功与他们同步进度,追上大部队,并且一同将剩余三分之一攻克,看到通关页时,太快乐了,那两三天真的相当充实,也无比令人怀念。

今天突然想起来这个解密,打开当初的连接,啊,还在,又打开讨论群,啊,之前关了又重新开了。看着之前写下的代码,我觉得不如重新通关一遍,并且写篇攻略总结与纪念一下,在其中学到了很多。同时,我分享给了我的一众好友,祝他们好运。

那我们开始吧!

—— 2021.6.16 晚自习于课桌上

通关总结

第零关

据说是传统把戏了,不过我也不清楚怎么据说的,我甚至忘了我怎么过这关的了。

Start

作者的故事从一封信开始,所以我们直接点击 “a letter” 。

第一关 Letter

正式开始了。

Letter

确实是一封信,左上角是邮编,右上角是邮票。在邮编的位置可以输入数字,然后正文部分看起来像乱码的文本会根据不同的输入发生不同的变化。不难想到,这段文本或许是根据输入的邮编进行解密。所以这封信要寄到哪里呢?通过不懈的观察网页源文件——其实我当时第一下就点到了邮票的图片,发现了端倪——我们发现邮票如果在黑色背景下会显现出河流与经纬线:北纬三十八度。以这个图片为线索,在地图上寻找,就可以发现经纬线的交点是吴忠市,查到邮政编码填到该填的位置,就可以看到信的内容和通关提醒了。

Stamp

731100

在毫无头绪的情况下不如仔细研究页面的所有内容,或许会有所收获。

第二关 Memory

是首很好听的歌呀。

Memory

观察到每行的字符后面都有零到两个等号,直接试base64。上网找一个base64解码网站,果然是,然后就可以知道原文是什么了。通过背单词的前置技能,我们可以发现在原文中有的单词是缺少字母的,结合关卡名,将缺少的这些字母拼起来即是答案。

btw,书名号扩起来的地方是歌名的摩尔斯电码和挖空的摩尔斯电码。

immortal

这关显著考验挑战者对编码类型的熟悉程度。

第三关 Anime

我只能说,我还真没看过…

Anime

对于见多识广的朋友来说,这关完全可以凭借记忆通过,而对于我这类对此领域不了解的朋友,这就是一道很有计算机精神的题了。众所周知,学好计算机的必要技能就是熟练高效使用搜索引擎,尤其是对于这样一个不熟悉的领域,所以我们不妨来的直接点,直接去找以图搜图的网站,确定下动漫名称,更具体的还可以确定集数,然后开始看。之后就可以确定通关所需要的集数分钟和秒数了。只需要填出来两个,过关。

通过截图与用截图查到的网页共同获取信息,比如通过血小板的介绍确定这是血小板第一次出场的那集,又或是通过第四张图找到这季完结的文章,再通过画面风格在第一季最后一集确定位置。(记得多找几个片源核验时间)

第三个是: 1 9 56 第四个是 12 20 2

这关是非常有趣的一关,如果你不幸没有看过这些番,那这很考验你的信息检索与获取能力。

第四关 Math

这关考验数学直觉。

Math

第一个一看就是正弦图像,直接过;

第二个一看就是开口向下,过原点,前两个系数异号的抛物线,先随便蒙一个,根据左上角的当前残差微调,过掉;

第三个一看就是个幂函数,并且当 x<1x < 1 时,图像没有 y=x2y = x^2 抖,所以先试一个 x4x^4 ,发现图像比给定图像更平缓,则试 x3x^3 的绝对值,成功过掉;

第四个图像非常神奇,根据图像风格像极了 tan(x) ,注意到图像左右对称,则必然存在 xx 要么取绝对值要么偶数次幂,观察得到图像越来越密,则试 tan(x2)tan(x^2) ,成功通过;

第五个图像更加神奇,因为图像左右对称,只分析右边的图像,像极了开方,但是还差点啥,随便乘几个系数发现 xx 前的系数应该在三和四之前,猛的发现关卡条件还给了两个常数,果断尝试 PI ,成功。

过关。

  1. sin(x)
  2. -x^2 + 3x
  3. abs(x^3)
  4. tan(x^2)
  5. sqrt(x * PI)

数学直觉的本质不是蒙吗,往靠谱的方向蒙一蒙。

第六关 Fans

六百万粉丝,数码男孩的硬核浪漫礼物。

Fans

确实,线索都在图片里,而下面的几行正是一个图片。随着箭头的指引,通过对图片的仔细观察,我们不难发现在图片的右下角有一串数字,直接扔到存在或者不存在的搜索引擎上,可以惊奇的发现这就是b站up主老师好我叫何同学的uid,通过直觉,这必然是我们要找的了;再在图片右上角,有一个六百万,结合本关名称,自然拨云见日,直接打开何同学的合照网站。

可以猜到下面的四串字符都是何同学粉丝的名字,而名字旁边的黑白块自然是二进制,并且方括号表示数组,那二进制自然是数组下标了(此处重点,数组下标从零计数)。于是我们在网站里找到这四个人的名字,箭头则表示右面那个人。(这里有点需要注意的地方,两个二进制之间的 & 无实意,仅表示连接。)数组下标即表示右面那个名字的第几个字符,八个字符拼在一起,过关。

lumodays

考验了挑战者对二进制的基本认识,对数组的认识,与信息提取能力。

第七关 ???

用Safari打开这一关记得再打开一个新标签页。

???

点击下载之后,我们发现这个压缩包有密码,寻找线索开始。

按照惯例,先看源文件:我们惊奇的发现背景图片里面似乎有拉长的字母,通过ps或其他工具处理可以得到这串字符,但是作为密码输入到zip却不对,我们为了知道这串字符在字体中到底是哪几个字符,对字符进行处理,并且找一个字体搜索网站丢进去,就可以得到字体与字母数字的对应关系,我们惊奇的发现倒数第二个是大写L,打开成功。

打开之后得到了一个非常像某种压缩文件格式(类似于jar包)的文件目录,于是通过在搜索引擎搜索,发现这就是 .xlsx 文件;于是我们把解压后的文件夹压缩,并且改扩展名,用 Excel 打开(在网页标签处有提示),可以发现这是一个左上两个方向都有数字的表格。于是我们猜测:假设表格只有黑白两色,每个数字表示有多少个黑色方格相邻,即可以解出多个答案,最像答案的那个解自然就是答案,如果觉得不像建议更换一下某些方块的颜色求别的解。(建议分别用不同的颜色表示一定不能填、一定要填、可能要填、可能要填推导的不能填)

3Lhy0-EA

考验扫雷能力?

第八关 Code

最开始我也一脸懵来着,但是冷静观察给定文本之后还是能解决本关的任意文本的。

Code

注意到作者提到了 Codec 这个软件,所以我们或许能从其中获得帮助。 (苹果用户只好从网页寻求帮助了,当然,自己编写解码程序也未尝不可)

首先这关每次打开出现的乱码都是不同的,我这里仅对一种进行总结,其他的没有本质区别。

我拿到的是一段以等号结尾的由大小写字母组成的文本,看到等号,按照惯例,先试试base64。

解码之后可以得到由小写字母a - e 与数字组成的文本,并且每两个字符与其他字符用空格分开,这必然是16进制了。

但是解码完我们发现这些数字难以让我们联想到什么,ASCII的话则数字太大了,所以我盲猜16进制的文本是被翻转过的。

将16进制文本翻转解码后得到的10进制数字大小显然是在128以内的,转化为ascii码可以得到一段等号开头的英语大小写文本,故技重施,直接翻转然后base64。

然后就成功得到: Your Key is: [*********] ,将key提交,通关。

每个人的应该不一样,我就不写了。

和之前的编码关一样,冷静观察文本,对照脑中的编码特征寻找线索。

第九关 Dingtalk

网课…

Dingtalk

//TODO