【娱乐】耗叔游戏fun.coolshell.cn 攻略

每个页面根据提示得出answer,下一关的路径就是fun.coolshell.cn/[answer].html 跳转到下一关的页面

  • 0x0 brain fuck

         

++++++++[>+>++>+++>++++>+++++>++++++>+++++++>++++++++>+++++++++>++++++++++>+++++++++++>++++++++++++>+++++++++++++>++++++++++++++>+++++++++++++++>++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>>>-.+<<<<<<<<<<<<<<<>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<>>>>>>>>>>>>+++.---<<<<<<<<<<<<>>>>>>>>>>>>>>-.+<<<<<<<<<<<<<<>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<>>>>>>--.++<<<<<<>>>>>>>>>>>>>.<<<<<<<<<<<<<>>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<.

        根据给出的提示去google搜索了一下上面的是一个叫做brainFuck的编程语言,找了一个在线编译器编译了一下输出的就是答案,跳转到下一关。

        在线编译器:http://esoteric.sange.fi/brainfuck/impl/interp/i.html

        答案

  • 0x1 X*Y

        根据数列提示得出“?” 是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的积

        答案

  • 0x2 Keyboard

        一进来是一个键盘,下面一串看不懂的字符,发现键盘可点,点击跳转到 Dvorak Simplified Keyboard 的维基百科,上面的键盘是一个Dvorak 键盘,直接对应我们的qwer键盘转换下面的字符串(有在线转换),发现是一段C语言,由于我C语言不太好,所以又找了一个C语言在线编辑,就可以得出答案。

            键盘在线转换:http://wbic16.xedoloh.com/dvorak.html

        C语言在线编译器:http://codepad.org/e2U6rU7v

        答案

  • 0x3 QR Code

        出现的是一个二维码和一串乱码,我们扫描二维码,发现是一个对照表

[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”就是答案了    

    答案

  • 0x4 Palindrome

  • 这关卡了我好久,解出来有一些运气还搜到了一些提示,左侧的几组字符串可以看出是对称结构,也就是回文字符串,



然后我把中间的“轴”都跳出来作为答案,试了一下不正确,然后又试了一下标红的就是“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

又作为答案试了一下...还是不对...但是觉得肯定跟这个正则表达式有关...想了好久,无意中调出控制台发现一段注释了的乱码

【娱乐】耗叔游戏fun.coolshell.cn 攻略_第1张图片

于是用刚才总结出的正则表达式,在这段代码找除了符合的字母,代码如下:

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

    答案

  • 0x5 variables

    一张图片,一个提示”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 

    答案

你可能感兴趣的:(【娱乐】耗叔游戏fun.coolshell.cn 攻略)