Cause
晚上看到 JetBrains 最后一个 Quest 出来了,于是继续来解个谜吧!
前两个 JetBrainsQuest 的 WriteUp 在这里↓呢。
CTF | JetBrains Quest 1&2 WriteUp/攻略
这次的难度比上次要大一些,不过总体而言也不太难啦。
ATTENTION!
下面的内容 涉及剧透!
如果想自己做的话,就暂时不要往下看了!
Step 1
推特地址:
https://twitter.com/jetbrains/status/1238420744817782784
噫!这是最后一个 quest 了!来解密吧~
SGF2ZSB5b3Ugc2VlbiB0aGUgcG9zdCBvbiBvdXIgSW5zdGFncmFtIGFjY291bnQ/
base64 解密得到
Have you seen the post on our Instagram account?
去 Instagram 找找线索。
Step 2
前往 JetBrains 的Ins: https://www.instagram.com/jetbrains/
第一张图就是熟悉的 Quest 领取福利的页面背景了。
(留个备份链接
Welcome to the final Quest! You should start on the Kotlin Playground: https://jb.gg/kotlin_quest
P.S. If you don’t know about the #JetBrainsQuest, it’s not too late to find out.
得到一个网址:https://jb.gg/kotlin_quest
Step 3
访问上面的网址,发现跳转又跳转,最终来到了一个 Kotlin 在线编程页面。
就是他说的 the Kotlin Playground
吧。
地址在这里 (链接太长了就不显示出来好了
fun main() {
val s = "Zh#kdyh#ehhq#zrunlqj#552:#rq#wkh#ylghr#iru#wkh#iluvw#hslvrgh#ri#wkh#SksVwrup#HDS1#Li#zh#jdyh#|rx#d#foxh/#lw#zrxog#eh#hdv|#dv#sl1"
val n: Int = TODO()
for (c in s) {
print(c - n)
}
}
这个含义很明显呢。就是把字符串 s
每个字母往前移动 n 个字符好了。(i.e. SHIFTx,凯撒密码之类的)
我也不记得 n 是多少了emmm,反正个位数吧,试一试就出来了。
于是得到
We have been working 22/7 on the video for the first episode of the PhpStorm EAP. If we gave you a clue, it would be easy as pi.
关键词:video,PhpStorm EAP,pi。
盲猜就与 3.14/3.1415926 之类的有关。
Step 4
搜索 PhpStorm EAP,来到了他的网站。
噢这是个 PHP 的 IDE 啊。EAP 相当于预发布版本?
PhpStorm Early Access Program
At JetBrains, we believe that to make great tools for developers, we should listen to and involve developers. Our Early Access Program (EAP) lets our development community participate in the product discussions and influence development planning, from the very early stages.
在页面上没有找到 quest
,也没找到视频及其链接,看了一下最新的版本是 2020.1 EAP build 201.6251.26 Released: March 12, 2020
。
看了一下 Blog & Social,来到 PHPSTORM 的 blog,看到了最新版本发布的 Post。
好了,有视频链接了!What’s Coming in PhpStorm 2020.1
在 What’s Coming in PhpStorm 2020.1 – EAP Series | Season 2020.1 Episode 1 这个视频里,重点关注 PI 即 3’14’’ 附近的内容。
发现画面抖动了两下 emmm 有猫腻!
猜想线索藏在抖动的位置,然而看了几遍,甚至开到最慢的 0.25 倍速,都没看出来 emmm(好菜啊
于是找了个工具把这个视频下载下来,放 Premiere 里逐帧看。
裁剪了,放大再看这1秒多的片段。最后发现 homepage
这里发生了变化。
原来他的意思是 clue 在这两段抖动之间啊!
于是得到下一个链接:https://jb.gg/31415926
的确与 PI 有关呢(
有意思的是,这个视频2月10日就发布了,真是蓄谋已久啊 233333.
看评论区还有人一个月前疑惑呢。
Step 5
301跳转到 https://www.quiz-maker.com/Q2723CE
(发现这个 www.quiz-maker.com 是个挺不错的在线 quiz 网站呢
The Easiest #1 Rated Online Quiz Maker
Publish your quiz in a matter of minutes. Go ahead Try it now!
然后需要你在 1min 内回答关于 JB 的一些问题。
(真挺好,顺便宣传一下自己。
做不对再重来,然后发现每次还有新的题目(黑脸
然后我做了好多次,发现谷歌搜索的 精选摘要 真的好用。
最后终于全对了。
Almost there! The last challenge is in the Tips of the Day of a specific IntelliJ IDEA Community version from our latest build page in Confluence, but… there is a catch. You have to know which version to look for. To find the build number, you need sight beyond sight:
. Not Everything Today Does All You Could Ask. Lessons Learned From Other Relevant Solutions, Possibly Even Another Kind Emerge. Risking Sometimes Being Liberal Or Generous Proves Ordinary Simple Tests Infinitely More Annoying. Get Examining Hidden Initial Designated Early Symbols. They Have Everything Needed, Except Xerox, To Completely Level Up Everything.
看来与 Tips of the Day of a specific IntelliJ IDEA Community version 有关,藏在每日提示里可还行,而且还是一个神秘的版本。这个版本部署在 Confluence 上面。
下面这段话有点摸不着头脑。
不管了先去 IDEA 网站上看看,难道顺便骗一波下载量???
Step 6
访问 IDEA 官网,顺着 Release Notes,来到了这里。
第一个就是吧。还是几个小时前刚发布的呢!
就是这个:IDEA 2020.1 Quest Build Edition
下载下来而后安装。什么,1.4GB???
随便了随便了,装完卸掉好了。(不过听说用来写 Java 挺好用的
(估计这里还能引一波流呢
Step 7
装好了随意建一个项目,唤出 Tip of the Day.
翻了几页之后找到了。
JETBRAINS QUEST: LAST PUZZLE
You have discovered our JetBrains Quest! If you don’t know what this is, you should start from the beginning.
This is it. The last puzzle. You are just one step away from glory!
Now you just need the Key to unlock the Quest page.
The Key is the first and last 4 digits of the 50 * 10^6 position of the Fibonacci sequence (F(50 Million)).
As you may know by now, not all that glitters is gold, and to solve this puzzle you should not go straight for the obvious answer. May you make a glorious choice.Remember that you have until the 15th of March 12:00 CEST.
所以这里要找到 the first and last 4 digits of the 50 * 10^6 position of the Fibonacci sequence (F(50 Million))
即 Fibonacci 数列 50×10^6 位置的前4位和后4位。
Quest Page 就是之前的 https://www.jetbrains.com/promo/quest/
Beat the Quest
那就算吧,前四位好算,后四位有点难顶。
搜了一下Google发现出不来。
不过懒得手撸代码算了,直接找 wolframalpha 吧!
前四位是4602。后四位的话,mod 10000出结果。
得到后四位为3125。
于是 Code 就是 46023125
啦!
所以最终得到的是 JB 家全家桶八折券 emmmm
(还以为是六个月授权凑成一年的呢
不管了,反正本来就有教育授权不差这个(
好玩就行了 23333
如果你需要的话,Remember that you have until the 15th of March 12:00 CEST.
再看 Step 5 中的 Clue
本来本文到这里就结束了,然后想起来之前的 clue 有点想不通,再来看看。
. Not Everything Today Does All You Could Ask. Lessons Learned From Other Relevant Solutions, Possibly Even Another Kind Emerge. Risking Sometimes Being Liberal Or Generous Proves Ordinary Simple Tests Infinitely More Annoying. Get Examining Hidden Initial Designated Early Symbols. They Have Everything Needed, Except Xerox, To Completely Level Up Everything.
看了一些 V2EX 上的讨论,发现只看首字母可以拼出一句话。
.net day call for speakers blog post image hides the next clue
搜了一下,来到了这里。
JetBrains .NET Day Online 2020 – Call for Speakers
在这张图片这里找到了线索。(噗
you_are_looking_for_build_201-6303
不过问题不大2333. 反正也找到了呢。
Extensive Reading
再看了看大佬们的讨论,发现有大佬用 rust 写了个 jio本 算出了后四位。
fn main() {
let mut a2: u128 = 1;
let mut a1: u128 = 1;
for i in 3..=50000000 {
//for i in 3..=50 {
let new = a2 + a1;
a2 = a1;
if new > 10000 {
a1 = new % 10000;
} else {
a1 = new;
}
if i % 10000 == 0 {
print!("\r[{}]", i);
}
}
println!("\nok: {}", a1);
}
他的思路是:
后四位我自己写程序跑,超过四位数就减掉一万,等于只算最后四位。
还有大佬发现了 Fib 数列是有规律的↓。
http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibmaths.html#section1.1
etc.
题外话
今天是 PI 日,节日快乐呀!
最近对博客进行了一些优化,或者说是除草了,懒得开新文章写了。
主要让常用的 JavaScript、CSS、一些背景图片走 jsdelivr 的 cdn,优化一点加载速度。
然后修改了 hexo 的 feed 插件,把 RSS 中的 summary
优化为了文章的摘要(原来是截取全文最开始的一部分文字,还保留着一堆标签,丑死了)。期间还发现报错了,后来去 Github 参考了大佬们更新的源码改了一下模板。
这样 RSS 的效果就好多了。
欢迎大佬们关注,和我交换友链呀!
RSS 地址:https://miaotony.xyz/atom.xml
(感觉越写越水了
(溜了溜了