FunCoolShell
来源:互联网 发布:手机淘宝客服怎么设置 编辑:程序博客网 时间:2024/06/07 08:01
前天在微博里看到耗叔发了一个通关游戏,可惜没有闯进Top100,中间卡了几题也是经提点才找到思路。题目连接:http://fun.coolshell.cn/
下面把各题思路一晒,供参考。
0 Fuck your brain
++++++++[>+>++>+++>++++>+++++>++++++>+++++++>++++++++>+++++++++>++++++++++>+++++++++++>++++++++++++>+++++++++++++>++++++++++++++>+++++++++++++++>++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>>>-.+<<<<<<<<<<<<<<<>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<>>>>>>>>>>>>+++.---<<<<<<<<<<<<>>>>>>>>>>>>>>-.+<<<<<<<<<<<<<<>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<>>>>>>--.++<<<<<<>>>>>>>>>>>>>.<<<<<<<<<<<<<>>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<.代码如上,G一下代码和文字,找到为BrainFuck语言,从网上找到一个解释器,VC工程编译一下,完美得到结果:
welcome.htmlps:这里输入welcome.html之后返回首页,郁闷了很长时间,后来发现好像是cookie的问题,这里需要进入两次才通过。
1 -Multiply
这题第一个答案显然:1944,输入后发现不是最终结果,还需要另外一个Y,G第二句话首页就有:42
1944*42=81648
2-Keyboard
图中这键盘源码里有信息为:vorak Simplified Keyboard ,维基里有解释。
下面一行代码:
macb() ? lpcbyu(&gbcq/_\021%ocq\012\0_=w(gbcq)/_dak._=}_ugb_[0q60)s+显然,是个相互转换的关系。这里可手动转也可以搜转换器,之后得到结果如下:
main() { printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}这个unix代码我确实看不懂(看了unix学习脚步不能停),继续G,能找到其中一些函数信息:
最后结果为:
unix
3-QR code
二维码,不会是病毒吧,开防护扫之,是个26个英文的字符转换
[abcdefghijklmnopqrstuvwxyz] <=> [pvwdgazxubqfsnrhocitlkeymj]下面还有一行句子:
Wxgcg txgcg ui p ixgff, txgcg ui p epm. I gyhgwt mrl lig txg ixgff wrsspnd tr irfkg txui hcrvfgs, nre, hfgpig tcm liunz txg crt13 ra "ixgff" tr gntgc ngyt fgkgf.敲个C++ 转换之,咦,看不懂。反向转换之,得到如下:
chere there is a shell, there is a way. s expect you use the shell command to solve this problem, now, please try using the rot13 of “shell” to enter next level.输入shell,不得结果,细看是rot13 of "shell" ,网上找加密器,得:
furyy
4-cat
妖娆的小猫一只,看网页源码,下面有一群信息...应该答案在这里面,然后看页面上的说明,经同学尝试输入了个cat,得到又一行提示:类似cat模式。还有一句隐蔽提示,大小写敏感,观察页面左部的源码发现满足要求的code 应该是满足正则表达式:[X-Y][0-9][a-z[0-9][X-Z],[0-9][X-Z][a-z][X-Z][0-9]的回文串。其中[a-z]为所求
继续C++实现之,(我得承认看过别人的python代码后,深感C++的不便,可惜python还不甚熟练)
然后将源码中的信息输入,最后得到:
variables
5-variables
这!一!题!困!了!一!天!啊!后来求助才知道的。
我一直没明白这个keep going 是原来是不断寻找下一个页面的意思啊,都是泪。
点进图片,转到 http://fun.coolshell.cn/n/2014 页面就一句话32722,我头一晚各种G 32722这都搜到美国邮政编码呢还是...源码将32722 替换2014就可以发现规律。
前几天刚好用python写虫子了解一点,python 递归访问,最后得到:
Cool! the next level is “tree”
6-tree
二叉树题目,根据中序、后序遍历还原二叉树,这个代码一实现即可。下面一段加密文:
U2FsdGVkX1+gxunKbemS2193vhGGQ1Y8pc5gPegMAcg=
页面提示解密需要找到二叉树最长路径。用C++写完代码得到最长路径:
zWp8LGn01wxJ7按照文中的提示在 Ubuntu 下 键入命令(我得承认这个openssl 的参数我看了很久:
openssl enc -aes-128-cbc -a -d -pass pass:zWp8LGn01wxJ7 -in -code.txt得到:
nqueens
7-N Queens
类似八皇后的九皇后问题,碰巧前几天刚写了个八皇后的代码,改一下参数就可以用在这了。
九皇后有352个结果,加上一题的答案:
zWp8LGn01wxJ7
sha1计算之,这里用了python写,可恶的windows下用的是python33,而之前在Ubuntu下都是用python2.7学习的...这个代码虽短但也费了不少时间(因为一G就了解不少2.7、3.3之间的爱恨情仇,简直没朋友),最后找到答案为:
953172864
8-Excel Column
很明显26进制数字,为了练习python(python代码真的很短诶),决定用python写,得到coolshell和shell的10进制值,相除得到85165,输入,提示要转成字符,继续pythyon之得到:
DUYO
9-Fraternal Organisation
这个图真的太有内涵,读书少,看不懂。继续在网页源码里找信息,找到两个图的名字和第一个图的标题。总之还是要G它,最后在wiki里找到了解释:http://en.wikipedia.org/wiki/Pigpen_cipher 可以知道是一种加密方式,手动解密页面中的图片。
非常程序员:
helloworld
整个过程并不轻松,不过比网络攻防的题目要简单(因为网络攻防比赛从没单挑过第3题呀),对视野和编程能力都是一个锻炼。