首页 > 编程知识 正文

收纳物语全部关卡提示,健身环大冒险全部关卡

时间:2023-05-05 12:53:59 阅读:254523 作者:4208

本文是pythonchallenge的33道谜题的全部提示。

这是一个非常有趣的网站,强烈推荐有些编程基础的同学尝试。中间参考了各路wzdzp的解答,但是没找到一个完整的中文版本的提示,费了一些波折。

故特此纪录每一关的提示,留作纪念。

我是用python来解这些谜题的,具体代码请看我的github

L0:

纯热身,图片下面的英文提示,计算图中的数字的十进制x,url最后换成x.html

L1:

从图片上看,是凯撒密码,解密方法为所有字母右移两个字母。

用此方法解密图片下面的乱码,得到提示。对url使用同样的方法。

L2:

检查网页的源代码,注释里有一个很长的字符串,找出这堆字符中所有的英文字母,得到下一关的地址。

L3:

和前一关类似,根据提示,从注释的字符串里,找出左右两边各有且仅有3个大写字母的小写字母。

L4:

是一个php页面,根据源码里面的注释,nothing的值从12345开始,迭代打开下一个页面几百次之后,得到下一关的地址。(中间会有一次提示,把当前值减半再继续迭代)

L5:

提示“peak hell”念起来像什么。。(这个得对python的库很熟)

把banner.p文件包含的乱码用pickle模块读取,得到下一关的地址。

L6:

注释提示“zip”,下载channel.zip文件,解压得到一堆数字名的文件和一个readme。readme里两个提示,一是要从90052文件开始,做类似L4的事情。另一个说答案在zip里(和没说一样)。。原来每一个数字文件在zip的comment里是有内容的,这些注释连起来得到个单词。打开这个页面,又提示:it's in the air. look at the letters。。原来前面的单词的每一个字母是由不同的小字符组成的。。连起来进入下一关。

L7:

图片中间有一条灰度色块很奇怪,信息就藏在这些色块的灰度值里。按照7个像素的间隔,取中间条线的灰度值,转成ascii码,得到提示。“聪明的小伙啊,下一关是[105, 110, 116, 101, 103, 114, 105, 116, 121]”,再转一遍ascii码,搞定。

L8:

点图中蜜蜂要求输入用户名密码。

网页源码里的提示非常直接:用户名和密码都是bzip2格式压缩过的。

L9:

标题提示把点连起来。

注释里面有first和second两个数组。每个数组代表画的一部分。把数组里的数字两两分组,每组代表一个点的横竖坐标。连起来发现是头牛,而且是公牛。

L10:

点牛的图片跳出一个数组来:1, 11, 21, 1211, 111221,,,(找不到规律可以去这个棒棒的网站查)

按照标题的提示,算出这个数组的第30个值的长度。

L11:

标题提示“奇偶”,看图片貌似有很多黑黑白白的点。仔细观察(google提示)像素点的值,发现偶数行0,2,4...的点接近黑色,奇数行1,3,5...的点接近黑色。分离出这些点做出一张新图,黑色的图片上有浅浅的红色字母。

L12:

图片是在分牌,看源码注意到图片名字后加了个1。试验改成2,3,4。图片2提示要把jpg换成gfx。下载下来后不知道gfx是个什么鬼。看二进制源码,有一些“PIP”,“NFN”,“G8G”之类的片段,推测出“PNG”。观察这些字符的间隔都是5,所以把gfx文件拆分成5个图片文件。(分牌的提示)每张图片有几个字母,连起来进入下一关。(mac上预览第四张图片显示全黑,用chrome打开正常显示)

这里有个点容易漏掉,evil4.jpg存在但根本不是一张图片,按文本打开得到下一关要用到的提示(Bert是魔鬼)

L13:

文字提示要打电话给魔鬼,点图片中间的5会跳到一个php页面,一个XML文件提示错误的code。这里有个神奇的协议叫XML-RPC,listMethods查这个页面的接口,有一个叫“phone”的方法,打给“Bert”就进入下一关。

L14:

标题提示绕圈走,注释有100100 = (100+99+99+98) + (... ,下面有一张诡异的图片,下载发现大小为100001。猜测应该要把这张图重组成100*100的。结合提示,应该是像蚊香那样一xsdby的转起来。得到新图片发现是只猫,进入网页发现猫的名字是下一关。

L15:

标题提示猜一个人,图片显示是1**6年的1月26日。右下角显示二月份有29天,结合1月1日是星期四,找到所有可能的年份。注释里面提示不是最近的那一年,而是离现在第二近的那一个答案。注释里面第二个提示,明天买鲜花,暗示是1月27日,google一下那个日期,得到答案。

L16:

标题提示“让我来把这些排直了”。图片中有很多个小粉条,仔细观察后发现,每一行有且仅有一个粉条。把每一行的像素点水平滚动,使得小粉条都移动到最左边,得到的新图片,显示答案。

L17:

感觉是33关里谜题最复杂的一关

图片提示要看cookie。左下角的图片是第四关的图片。

回到第四关的页面,cookie提示“you+should+have+followed+busynothing...

”。(注意这里的‘+’号,也是一个小提示)

按照L4的做法,再跑一遍busynothing,把每一页的cookie连起来。看着是bz2压缩过的字符串。而且还是URL-quoted过的。unquote 并且把中间的“+”换成空格符之后,bz2解压,得到新的提示:给他老爸发消息 “the flowers are on their way”。

回到L15的接口,设置cookie,phoneggdlm老爸,终于得到下一关的提示。(最后一个单词)

L18:

标题提示“说出两张图的差别”,怕你不懂,注释还加了句“比你想象的更明显”。(亮度brightness不同)

真正的L18,下载“deltas.gz”,gzip解压之后,发现是个很大的文本。文本每一行分成左右两部分,前面的几行左右两边都是一样的,但后面但行会出现不一致。而且第一行开头的几个数字,转成ascii码就是字母png。说明左右两部分都代表图片。

回想前面的提示“说出两张图的差别”。

把整个文本分成三部分,左右共有的部分,左边独有的部分,右边独有的部分。三部分各自构成一张png图片。分别是下一关的url,用户名和密码。

L19:

网页的注释里面包含了一个base64压缩的wav文件,解压之后发现说的是sorry。但前后有些噪音。

观察帧数据发现有很多重复出现的字节。采样频率减为一半之后得到一个新的wav文件,里面说了idiot。进入这个页面会提示"Now you should apologize..."(暗示回邮件),点next到下一关。

回邮件“sorry”给 leopold.moz@pythonchallenge.com,会得到回复。。里面有一个md5码,这在L26会用到

L20:

这关也很难

提示“but inspecting it carefully is allowed.” 还是不懂。

关键在于http response的header里面,有一个字段

('content-range', 'bytes 0-30202/2123456789'),看起来很奇怪。

请求的时候设置'content-range'为30203会得到新的range和信息。

反复设置'content-range'为新的range+1,得到一系列信息。

然后倒过来,设置range为2123456789,也能得到一系列信息。

最终能得到一个zip文件的字符串,解压密码在前面的一堆信息里。(把给你的名字反转过来)

解压zip包后,readme说,这就是L21了。

L21:

readme 提示,做完后看看挺对路:

小时候经常玩这个游戏

没想法的时候,就往回看看

另一个package是一个zlib压缩文件,解开之后还是zlib压缩文件,反复解压之后变成一个bzip压缩文件,继续撸起袖子干(建议还是code搞定),最终得到一堆乱码。。。

仔细观察,乱码倒过来还是个zlib文件。好了继续撸,最终解压完得到一句话“look at your logs”。

好吧,回头把前面的每一次解压过程用一个字母标记,每次倒序的地方就换行,得到一个文本文件。一看就知道下一关来了。

L22:

提示“white.gif”要更亮一点。。

明明看上去是全黑的。而且这么简单的图有40多k。

仔细观察,发现这个gif有133帧,每帧有一个点的颜色不是纯黑。这个点都离中心点(100,100)不远。(点距离中心的偏移量,就是这一步的步长)

结合图片,游戏摇杆的提示。这和很早之前的海龟画图方法很像。从中心点开始画图,下一个点和之前的点用直线连接,一步步画出一个字母的图形。如果这个点是(100,100),就代表一个字母写完了,开始下一个字母。

画完图,记得加亮那个灰色的点,进入下一关。

L23:

提示'va gur snpr bs jung?',用L1的方法解密,得到提示“in the face of what?”,这是python zen里的一句。

L24:

走迷宫,注意一点,白色是墙,黑色是路。

走完发现路径很绕,仔细观察发现路径上每一个点的r值都不一样,连起来转ascii码,发现是zip格式。解压后,图片上有下一关的url。

另一个mybroken.zip后面有用。

L25:

标题提示:想象他们听起来怎样

注释提示:你能看见waves吗?

发现有lake1.wav到lake25.wav这25个文件。下载听了之后发现都是噪音。检查这些图片的帧率是9600,一共10800帧。很诡异。

仔细观察原来这些都是披着wav皮的PNG文件。

每一个wav文件可以转成一个6060的rgb格式的png。(60603=10800)

然后把这25个png按照55的拼图拼起来,进入下一关

L26:

提示:像个男人一样道歉/你收到邮件了

找到L19的回信,“Can you believe what one mistake can lead to?”

L24里面的mybroken.zip有一个字符错了。

按照邮件里面的md5码,修复这个zip包,解压后得到图片,显示“speed”,结合提示“Hurry up, I'm missing the boat”, 进入下一关。

L27:

有链接到28关,但是需要密码

标题:在tables之间

注释:这不是重复L14(废话)

下载gif文件,PIL显示图片模式是“P”,即8位彩色模式,但图片看上去是灰色的。(检查图片的palette发现RGB值都是一样的。)有点奇怪。

将图片转成“L”模式,即灰度模式,然后比较两张图片的数据,发现“P”图除了第一个点之外,和“L”图的数据大部分都是一样的。

提取这两张图数据不同之处,发现“P”图独有的部分,是bz2加密的字符串,解压后得到很多重复的单词。

额外的提示,将两张图相同/不同的点,转成“1”模式,即黑白图。得到的图片提示:“not key word, busy?”

从这些单词中去除python的关键字,最后剩两个单词,即用户名和密码。

L28:

提示:大声念Ring-Ring-Ring

好吧,是Green。

标题提示:many pairs ring-ring

(图片是挺绿的)看来是要比较图片中的G值了。把G值两两配对相减,差取绝对值,发现大部分都是42.(为什么是42)过滤掉所有42后转成ascii码,得到新提示'whodunnit().split()[0] ?'

就是python作者的名字的首个单词了。

L29:

图片名字提示:这是谁

如果你总是从浏览器里直接看源码,很可能会错过这关的提示。

网页源码最后藏了很多长长短短的空格。。

把空格的个数连起来转bytes,得到答案

L30:

下载csv文件,仔细观察发现csv文件的数字,每个都在0到1之间,且一共有139*53个数字。用这些数字生成一张灰色图片,每个数字乘256作为这个点的灰度值。

图片显示了一个公式,把这些数字按照公式提示的规则,生成一个新的数字串,转成ascii码,得到答案。

L31:

网上查找这张图片,它的位置是kohsamui, thailand。也就是需要的用户名,密码。

真正的31关来了,图片名字是mandelbrot,google发现是分形的图。仔细研究下如何构造mandelbrot集,用图片上提供的坐标系,自己生成一张图片。肉眼看和网页上的图一样,比较每一个像素点发现,两张略有差异。

把所有不同的点的差值记录下来,长度是23*73。用这些值生成一张黑白图。(大于0的点为黑色,小于0的点为白色)

网上查找这张图片,又涨姿势了。

L32:

快结束了,好开心。

这关是个有趣的游戏,横竖的数组,代表了这行/列的格子的情况。

先做warmup.txt,解完之后做up.txt。

up解完能够看到一个熟悉的logo。

进入url之后,得到新的提示:"Free" as in "Free speech", not as in "free...

google这段话进入下一关

这是这系列里面最难的一个算法了,得费些心思

L33:

提示:

If you are blinded by the light,

remove its power, with its might.

Then from the ashes, fair and square,

another truth at you will glare.

做到这里,看见图片名字后面有数字,自然而然就会改改试试了。

下载png图片,根据上面那段有些诗意的提示,把png里面高于特定亮度值的点去掉,剩余点个数如是个平方数,就能生成一张新图片出来。

尝试所有亮度阈值之后,得到一系列有字母的图片。

把那些被包在方形框里的字母连起来

恭喜通关

通关这些练习你一定学到了很多python的知识,更会发现一个小破网页原来还能有那么多藏东西的地方。。

k8s使用nfs持久化数据

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。