1. 网站下载附件。
打开压缩包,给到一个无后缀文件,010Editor打开:
里边给出两段字符串,有大括号,说明不是base64,仔细观察,没发现什么特别。
2. 尝试散发思维失败。
看到这段字符串完全没有任何头绪,于是开始猜:
(1)搜索“CTF”。
发现确实有“ctf”字眼,但是看前看后完全没有关联。
(2)拼接字符串。
发现除图上几部分是用左右大括号括起来之外,其余都只有半边括号,于是尝试把图中字符串拼接起来 ctfshow{......}提交,失败。
3. 回归题目本身。
思来想去,琢磨了半天“数数”的含义......无果。随手搜了一下字符“c”“t”,发现“c”有35个,“t”有34个!继续搜了一下“f”“s”“h”“o”“w”,发现字符个数依次为33、32、30、29、28:
于是明白了:所谓“数数”,就是查找所给字符串中不重复字符的个数并按降序排列。写代码,排序,输出:
得到flag。
补充:掌握了一个字符计数的新方法:
1. 010Editor,选择工具——直方图:
2. 选择“带/无符号字节”,点击确定:
3. 点击“计数”,按降序排列:
4. 右键字符列,点击“复制列”:
粘贴到浏览器链接搜索框(粘贴到其他文本编辑器会自带换行,浏览器搜索框完美解决这个问题),按下键盘“home”键来到首个字符上,把单引号删掉就可以得到flag了:
注:单位互联网电脑没下编译器,使用的在线编译:在线运行C语言本功能可以让你免搭建C语言运性环境,实现C语言代码的在线运行、在线调试并能实时反馈C语言的运行调试结果,采用了GCC7.4.0版本的C语言编译环境。https://www.bejson.com/runcode/c740/