每个页面根据提示得出answer,下一关的路径就是fun.coolshell.cn/[answer].html 跳转到下一关的页面
++++++++[>+>++>+++>++++>+++++>++++++>+++++++>++++++++>+++++++++>++++++++++>+++++++++++>++++++++++++>+++++++++++++>++++++++++++++>+++++++++++++++>++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>>>-.+<<<<<<<<<<<<<<<>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<>>>>>>>>>>>>+++.---<<<<<<<<<<<<>>>>>>>>>>>>>>-.+<<<<<<<<<<<<<<>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<>>>>>>--.++<<<<<<>>>>>>>>>>>>>.<<<<<<<<<<<<<>>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<.
根据给出的提示去google搜索了一下上面的是一个叫做brainFuck的编程语言,找了一个在线编译器编译了一下输出的就是答案,跳转到下一关。
在线编译器:http://esoteric.sange.fi/brainfuck/impl/interp/i.html
答案
根据数列提示得出“?” 是1944,试了一下1944.html 发现X变成了红色,多了个提示
“Yes, one of the answers is
1944
”
又想起了还有一个提示
What is the meaning of life, the universe and everything?
生命、宇宙以及任何事情的终极答案
去又搜索了一下这条线索,都指向一个数字“42”,于是又试了一下42.html,这时Y变成了红色,说42也是其中一个答案,那显然答案就是1944*42的积
答案
一进来是一个键盘,下面一串看不懂的字符,发现键盘可点,点击跳转到 Dvorak Simplified Keyboard 的维基百科,上面的键盘是一个Dvorak 键盘,直接对应我们的qwer键盘转换下面的字符串(有在线转换),发现是一段C语言,由于我C语言不太好,所以又找了一个C语言在线编辑,就可以得出答案。
键盘在线转换:http://wbic16.xedoloh.com/dvorak.html
C语言在线编译器:http://codepad.org/e2U6rU7v
答案
出现的是一个二维码和一串乱码,我们扫描二维码,发现是一个对照表
[abcdefghijklmnopqrstuvwxyz] <=> [pvwdgazxubqfsnrhocitlkeymj]
根据对照表转换页面中的乱码就是答案,为了省事随手写了一个这个对照表的小程序直接输出结果(这才是我爱做的,终于通过自己编码解决了一次问题)
public static void main(String[] args) { String plain = "abcdefghijklmnopqrstuvwxyz"; String encoding = "pvwdgazxubqfsnrhocitlkeymj"; String inputString = "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."; char[] plainList = plain.toCharArray(); char[] encodingList = encoding.toCharArray(); char[] inputStringList = inputString.toCharArray(); for (int i = 0; i < inputStringList.length; i++) { char c = inputStringList[i]; for (int j = 0; j < planList.length; j++) { char e = encodingList[j]; if (c == e) { System.out.print(planList[j]); break; } if (j == encodingList.length - 1) { System.out.print(c); } } } }
输出后看到这句话说已经离答案很近了,这是一个rot13的“shell” ,于是google了一下rot13发现是一种替换时密码,那明显就是根据rot13规则替换shell,找了一个转换rot13的转码命令
tr A-Za-z N-ZA-Mn-za-m
转码“shell”就是答案了
答案
这关卡了我好久,解出来有一些运气还搜到了一些提示,左侧的几组字符串可以看出是对称结构,也就是回文字符串,
然后我把中间的“轴”都跳出来作为答案,试了一下不正确,然后又试了一下标红的就是“cat”,得到了更多的提示:
Sorry, "
cat
" is not the answer!
You need to find the pattern of "cat
"
于是看了一下cat的规律,发现他的回文是由大写字母 和 数字 中间夹得小写字母,不限定顺序于是写出了这个正则表达式试了一下:
([A-Z])([0-9])[a-z]\2\1|([0-9])([A-Z])[a-z]\4\3
又作为答案试了一下...还是不对...但是觉得肯定跟这个正则表达式有关...想了好久,无意中调出控制台发现一段注释了的乱码
于是用刚才总结出的正则表达式,在这段代码找除了符合的字母,代码如下:
String code = "the string of the html"; Pattern p = Pattern.compile("([A-Z])([0-9])[a-z]\\2\\1|([0-9])([A-Z])[a-z]\\4\\3"); Matcher m = p.matcher(code); while (m.find()) { System.out.print(m.group().charAt(2)); }
就输出了答案了。
正则表达式在线工具:http://tool.oschina.net/regex
答案
一张图片,一个提示”keep going ,you will find the result...“,发现图片可以点击,点击图片跳转到http://fun.coolshell.cn/n/2014 有一个数字,以为数字是答案,试了一下,不对,想想也是不可能这么简单,然后根据上一关的经验,调出控制台,看了一下代码,发现没有啥注释,于是又试了一下把得到的数字替换到刚才弹出的新页面中http://fun.coolshell.cn/n/32722 发现又出现了个数字,然后就这么一直实验,把每个数字记下来企图找出规律,最后还是失败了,但是提示又说keep going...正好手边有个爬虫,写了个爬虫试了一下(爬虫用的是webcollector)
public CoolShellCrawler(String crawlPath, boolean autoParse) throws Exception { super(crawlPath, autoParse); CrawlDatum datum = new CrawlDatum("http://fun.coolshell.cn/n/2014") .putMetaData("depth", "1"); addSeed(datum); } public void visit(Page page, CrawlDatums next) { Document doc = page.getDoc(); String nextUrl = doc.getElementsByTag("body").text(); System.out.println(nextUrl); CrawlDatum datum = new CrawlDatum(createUrl(nextUrl)) .putMetaData("depth", "1") .putMetaData("refer", page.getUrl()); next.add(datum); } public static void main(String[] args) throws Exception { CoolShellCrawler crawler = new CoolShellCrawler("crawl", true); crawler.setThreads(1); crawler.start(500); } public static String createUrl(String next) { return String.format("http://fun.coolshell.cn/n/%s", next); }
皓叔真敢玩...爬到第128次,出现了非数字的东西,一眼就看出是答案
爬虫地址:https://github.com/CrawlScript/WebCollector
答案