分类
大千 中文文章

一只菜鸡关于《Project NANO》的解谜记录

+81 823-25-5716

网页主要内容:

<img class="hidden flag"
    title="data:text/plain;base64,562U5qGI5piv5Lik5Liq5a2X55qE5Lit5paH5ZCN6K+N55qE6Iux5paH57+76K+R77yM5YWo5bCP5YaZ77yM5Li66Ziy5q2i5Ye6546w57+76K+R5beu6ZSZ77yM5bu66K6u55u05o6l5L2/55So6LC35q2M57+76K+R44CC"
    src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNyAxOCI+PHJlY3QgZmlsbD0iIzE0NTNBRCIgd2lkdGg9IjI3IiBoZWlnaHQ9IjE4Ii8+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9IiNGRkYiIGQ9Ik01LDBWMTEgTTAsNUgxMCBNMTAsM0gyNyBNMTAsN0gyNyBNMCwxMUgyNyBNMCwxNUgyNyIvPjwvc3ZnPgo=">
<div class="text light" style="top: 2.5%; transform: translateY(-50%);">
    <p>Piggy: 这是什么情况?</p>
    <p>Jolex:(一脸问号)</p>
</div>
<div class="text light" style="top: 25%;">
    <p>Piggy: ???</p>
    <p>Jolex: ???</p>
</div>
<div class="text dark" style="top: 90%;">
    <p>Piggy: 诶诶诶等一下,刚刚好像有什么东西?</p>
    <p>Jolex: 真的吗?</p>
</div>
<div class="text dark" style="bottom: 16em;">
    <p>Jolex: 让我研究研究…</p>
    <p>Piggy: 思考</p>
</div>
<div class="text dark hidden" style="bottom: 1em; opacity: 0;">
    <p>befa5874.log</p>
</div>

日志」内容:

ZeroMe Logs | Apr 3, 2020.
Jolex 19:51:03
这是什么旗帜?
Piggy 19:51:31
思考
Piggy 19:52:55
……
Jolex 19:53:45
这还能有啥啊,除了旗子就是颜色呗(
Piggy 19:54:19
诶不对,这剧本我好像在前面的关卡里见过。
[时序碎片: 39 33]

图片:

答案是两个字的中文名词的英文翻译,全小写,为防止出现翻译差错,建议直接使用谷歌翻译。

国旗是希腊的,但是好像并不是那么简单。根据日志,又让看颜色。图片的颜色是 #1453AD。AD 公元后的意思,维基百科查询 1453 年找两个字的词……好像就只有「罗马」了。

罗马 = Rome

Rome

网页主要内容:

<div class="content">
    Time: 1950-04-11 23:01 PM<br />
    博多反抗军正在和 NANO 的军队作战。<br />
    在某个月黑风高的夜晚,NANO 的情报部门成功截取到了敌方的通信内容:
    <pre class="hidden">--..- .-.-. --... -..-- .--..
    .-.-. ....- .-..-
    --..- -..-. ...-- .---. .----
    .-.-. ....- .-..-
    --.-. --... -..-. .-..-</pre>
    现在,NANO 的指挥官想要知道<b><em>反抗军剩余的力量</em></b>。你能帮帮他吗?
</div>
<!-- All hints are already in the text. -->
<!-- Some words are kind of odd... at least in Chinese, aren't they? -->

「博多」应该就是那个「kind of odd in Chinese」的词(不过提示里面用了 some words…,不知道是不是友谊提示有多个词,还是说单纯的语法不好。

如果把「博多」当作「Portal」的谐音,联系「反抗军」这个词,很容易(?)能联想到 Ingress。(因为相当一部分用 Telegram 的中文用户)

把那一串看起来像摩尔斯电码的东西当作二进制能得出来一串数字,这些数字都小于 26。

25 10 24 19 12
10 1 9
25 18 3 14 15
10 1 9
26 24 18 9

转换成字母就成了 YJXSL JAI YRCNO JAI ZXRI,那个 JAI 很有可能是 AND,不过不知道是什么编码方式。

后面收到提示

那个(年份)就是说年头早,用不了特别先进的密码

上网搜索「5 bit encoding」找到了这个 Baudot Code。(所以「博多」指的就是这个 Baudot code。)

查表解码可得 BROWN RED BLACK RED GOLD

看见一堆颜色里面出现了不常见的「Gold」,又因为求解的「反抗军剩余的力量」翻译成英文可以是「Remaining power of the Resistance」(resistance 有电阻的含义),可以联想到电阻值和五色环编码。对照可得

1\,2000\ \Omega \,\pm5\%

可得答案 12000(系统接受 12000 和 2k)。

12k

网页主要内容:

<main class="content">
    Where am I?
    <pre class="hidden">iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAe
    P4ixAAAAaElEQVR4Ad3BAQEAIAyAME4VY5vCPoZ5
    D7Y5/z4CJEIiJEIiJEIiJEIiJEIiJEIiJEIiJEIi
    JEIiJEIiJEIiJEIiJEIiJEIiJEIiJEIiJEIiJEIi
    JEIiJEIiJEIiJEIiJEIiJEIiJGIB1bsCr1SqX+0A
    AAAASUVORK5CYII=
    </pre>
</main>
<!-- By tracing the track on the floor, we found: 1b054ab8.log -->

「日志」内容:

ZeroMe Logs | Apr 10, 2020.
Piggy 23:31:32
唔……这就是一张纯色的图啊,里面可能会有什么呢?
fruitymelon 23:32:40
我听说……1024x768 大小的图片,可以轻松藏下 786432 个地址?你知道是什么意思嘛……
Piggy 23:32:58
不懂……这文件本身看上去似乎蛮正常的……

那串字符:看到等号,先想到 Base64。解码后出现一个 PNG 图片。

那个图片。

「1024×768 大小的图片,可以轻松藏下 786432 个地址?」1024\times 768=78\,6432,也就是一个像素一个「地址」。一个 PNG 像素通常最多可以用 4 个字节组成,也就是 RGBA(红绿蓝透)。四个字节的地址里最常见的就是 IPv4 了(说实话我还真不知道还有什么其他的四字节地址)。

把图片下载下来,搬出了 Pillow 和 Numpy,确定了真的是纯色图片之后,拿着图片的 RGBA 值,转写成 IP 地址的格式:http://35.220.155.177/

Congratulations!
/hide_and_seek

Hide and seek

网页主要内容:

<script>
new TypeIt("#inner", { speed: 100, waitUntilVisible: true, lifeLike: true, cursor: false })
.type('Met').break().type('实验室药品快用完了,帮我买点呗~').break().break()
.type('Piggy').break().type('思考').break().break()
.type('Met').break().type('我这有nano的nzz...').break().break()
.type('Piggy').break().type('你要买啥(转头').break().break()
.type('Met').break().type('我这列了个单子,我找找...欸怎么不见了!').break().break()
.options({speed: 0, lifeLike: false})
.type('<hide>Piggy</hide>').break().type('<hide>到底是单子不见了呢,还是单子上的信息不见了?(思考</hide>').break().break()
.exec(……)
.go();
</script>

搞什么鬼动效啦(碎碎念)

Met
实验室药品快用完了,帮我买点呗~
Piggy
思考
Met
我这有nano的nzz...
Piggy
你要买啥(转头
Met
我这列了个单子,我找找...欸怎么不见了!
Piggy
到底是单子不见了呢,还是单子上的信息不见了?(思考

那一串混淆了的代码(上面用省略号代替,见此)解开了是这样的:

(function anonymous() {
    document.querySelector("#list").src = "https://cdn1.ihcr.top/clang-game/nzz.png";
})

(其实这个混淆也不用解,在渲染好的网页里面找一找就能找到这个图片。)

【花式解混淆小技巧】
如果看见混淆的 JavaScript 最后两个字是 () 的话,去掉这对括号然后丢进终端,很大可能你会看到返回了一个函数,函数里面就是解好的代码。

JavaScript 里面出现的那张图片,文件名是 nzz.png

Binwalk 无果。三种化合物分别是:

看着这三个东西长得像 OMR 三个字母,但很显然只是我自己开的脑洞,并不是什么答案。然后 nzz 又是什么鬼啦。

得到提示:

天鹏「以前需要能看出化学物品的能力」
天鹏「现在不需要了」

如果连化学只是都不需要的话,应该就是隐写了……(怎么早点没想到)(感谢群友喵喵提醒)

使用工具:StegSolve

发现一串内容(其中 abbr 的颜色不同)

abbrFF AAGGXA AAXXAG FFGGFF FGFDFX
FXFFAG FFGFDG GAAFFA FAFGGF FGXDGG

这串字符里面只有 ADFGX 五个字母,经过搜索,可以找到一个叫做 ADFGX 的加密方式。(这什么鬼名字啊)前面的abbr的提示是说把这几个化合物的简称当作 key:(这不还是需要认出化学物品的能力么orz)

  • Tetrahydrofuran = THF
  • Lithium diisopropylamide = LDA
  • 1-Methyl-2-pyrrolidinone = MNP

所以密钥是 THFLDAMNP。Key square 就用最基本的字母表,注意字母表里面没有 J(约定俗成的):

ABCDE FGHIK LMNOP QRSTU VWXYZ

经过解密,获得明文:

NEXT COLON SPACE SLASH SYNTHESIS

Next: /synthesis

Synthesis

主要内容:

<img src="https://cdn1.ihcr.top/clang-game/rhythm.jpg" alt="KiraYoshikage">
<!-- Answer = 2 words -->

一张图片。

La Boheme. Arr. by: Kira Yoshikage

与上一题一样,这张图片上面也出现了隐写。

EXIF 信息里面留有一句提示:

vigenere: composer’s name

(又是 Vigenère……)

La Bohème 是一个意大利歌剧的名字,Kira Yoshikage(吉良吉影)是《Jojo 的奇妙冒险》中的人物。

高音谱号(𝄞)下面的 8 代表的是降一个八度,也就是说原本是 G3 的地方变成了 G2。曲谱中最高音和最低音之间差了 20 度。上面的谱子写成音名是这个样子:

A2 B2 C3 D3 | E3 C3 F3 G3 | C3 A3 B3 C4 | D4 E4 F4 G4 |
G4 A4 B4 B2 | A4 C5 D5 A4 | D3 E5 F4 F5 | E5 D3 F4 A3 |
E4 D5 E3 E5 | G4 F5 E5 F3 | F3 C4 A2 E4 | G5 B3 D3 C5 |
B4 F3 D3 F4 | A4 E4 D3 G4 ||

第二张隐写的「L = 110Hz」,110 Hz 是 A2 的频率,而且刚好是曲谱的第一个音。

(这道题由于我没在线,感谢队友 Lawson 的辛勤努力解出来了。以下题解由 Lawson 提供,本菜鸡整理)

音符里面一个有 21 个音高,隐写内容里面有 21 个字母。可以当作一个映射(比如 A2 = L、B2 = M、C3 = F、D3 = N、F3 = O、G3 = P、A3 = U 等)。按照这个映射,可得:

LMFN OFPU FCVJ STGB
BHZM HRXH NIGK INGC
TXOI BKIP PJLT AVNR
ZPNG HTNB

根据 EXIF 提示里面的 Vigerène key,输入作曲家的名字「Giacomo Puccini」(是歌剧的,不是吉良吉影),可得:

F E FLAT B FLAT B FLAT B FLAT C D FLAT C C F G A FLAT HIGH C B FLAT Z FLAT E FLAT

结果是一串音符:

F E♭ B♭ B♭ B♭ C D♭ C C F G A♭ high-C B♭ Z♭ E♭

(Z♭ 是什么鬼)据出题团队介绍,应该是我哪里抄错了。

弹出来之后是一串旋律,有两种解法:

  1. 看到 High-C,搜索 La Bohème 里面带有 High-C 的曲目(这一步答案的曲目因为能飙到 High-C 而闻名)
  2. 维基百科里面有每一幕里面的曲子试听,可以听着对比。
  3. (后日谈)据说吉良吉影也和这个曲目有关系,不过也没发现具体有什么联系。有知道的希望能在下面留言告诉我。据出题者透露,吉良吉影是个「手控」,而曲目的名字翻译过来是《冰冷的小手》。这个线索是可以用来检验的。

可得曲目名称为《Che gelida manina》。

剩余没有用到的提示还有「Kira Yoshikage」和网页标题「最后一个问题」。后来得到出题者的提示:

「hint: 答案没法爆破」
1. 地址栏里面爆破不出这个答案,显然不可能
2. 答案代表一种无法被爆破的东西

「hint: 你想想没法爆破意味着什么?没有对应的字典」
因为它压根就不是英语字典里面的

经过各位群友的百般提示,「最后一个问题」指的是《Che gelida manina》歌词里面的最后一个问题,因为是意大利语,所以英语字典里面没有

Or che mi conoscete,
parlate voi, deh!
Parlate. Chi siete?
Vi piaccia dir!

Last verse of Che gelida manina, Wikipedia.

结合提示是两个单词,所以答案是 Chi siete。

Chi siete

打开之后要求输入 QQ 号(由于本菜鸡没有 QQ,就随便输了一个进去)。

接下来会有提示语:

你的入群问题:
【填入入群问题】

至于群号嘛……翻回去找找?
你是不是有什么还没有用上?

「入群问题」是随机的,目前有看到的是:

  • “找原曲”那道题中,视频中描述了哪一个游戏?(提示:首字母大写的纯英文)
    答:Unturned
  • 那家意大利风味餐馆的邮政编码是什么?(格式:XXX-XXXX)
    答:737-0046
  • 化合物问题里面用到的加密方式是什么?
    答:ADFGX
  • 本解谜中唯一涉及的中学物理变量,其数值是多少?(提示:请在数值后附上中文单位,中间无空格)
    答:12000欧姆
  • “找原曲”那道题中,FlyingSky给你的B站视频BV号是多少?
    答:bv16x41167rY
  • 通过ZEROMAIL向你发送邮件的是谁?
    答案:

「至于群号嘛……翻回去找找?你是不是有什么还没有用上?」确实还有没用上的东西——「时序碎片」。把之前各种日志里面的这个东西收集一下,按时间排个序……

ZeroMe Logs | Mar 26, 2020.
[时序碎片: 51 51]

ZeroMe Logs | Mar 27, 2020.
[时序碎片: 31 31]

ZeroMe Logs | Mar 31, 2020.
[时序碎片: 30 31]

ZeroMe Logs | Apr 1, 2020. 00:21
[时序碎片: 31 35]

ZeroMe Logs | Apr 1, 2020. 19:23
[时序碎片: 39 33]

ZeroMe Logs | Apr 2, 2020.
[没有碎片]

ZeroMe Logs | Apr 3, 2020.
[时序碎片: 39 33]

ZeroMe Logs | Apr 10, 2020.
[没有碎片]

写在一起的话就是 51 51 31 31 30 31 31 35 39 33 39 33。全是数字。十进制 ASCII?不像。30、31 都是控制字符。那就是十六进制?没错。

解出来之后就是 QQ1101159393。这就是群号了。这一打长串的解谜也就终于落下帷幕了。


说实话,我对这些「时序碎片」、「丢失的密钥」、「文章碎片」这些看起来故弄玄虚故事性的东西并不是很感冒。还是直截了当的提示来爽快一些。(大概这也就是我为什么搞不出这种玄妙的东西来的原因了吧。)

还有,不要以为谁都用 QQ 的好不好???

羡慕这些知识广泛的出题者们,而且脑洞真的超级大。跟着谜题写一个记录都能写成我目前最长的一篇博文(没有之一)。顺便感慨一下这些总是能三五成群搞一些项目的大佬们,而且还进行了试运行的样子。俺也想有一天召集一群人来做一些什么东西。(不过终归还是想想罢了)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*