Linux 兴趣小组2016免试题 点这里
首先贴出第四关链接Linux 兴趣小组2016免试题 第四关
第四关:
进入网址我们看到的是4张扑克牌K,这是什么意思?
要我斗地主?好了,还是乖乖的先查看源码吧。
但是什么也没有发现啊。没办法,将四张照片都下载下来看看,可是左看右看还是一张图片啊,该不会在图片内容中隐藏着什么吧?那怎样查看图片内容呢? 找个十六进制编辑器吧!
这些其实都可以,大家自己选择由于我在Linux操作系统下熟悉了hexedit,就下载了一个hexedit来分析。没办法,一张一张来吧。阳光总在风雨后,机遇出现在第三张图片,看看发生了什么神奇的事情!
什么!!难道这是一个rar压缩文件,于是立马修改了图片的后缀,果然发现了…
再查看1.txt的内容,发现好像是一个与c语言有关的程序,但是看内容不是源码啊,修改个.exe试试?结果出现了:
天哪!贪吃蛇,好吧,像我这种手残党,十分钟之后……
得到 Important Message
VHUUEFUDIXQHU
然后以为得到了全世界,去提交,结果不对,这就尴尬了,那现在应该怎么办呢? 没办法,还是又回到最初的起点
,想想差了什么?突然觉得如果扑克牌是为了隐藏文件,那为什么一定要选K呢,而选择了K为什么又是方片K中才有文件呢,是不是还会有别的意思呢?
于是百度了一下扑克牌K
凯撒大帝?什么意思?那和提交有什么关系?前面贪吃蛇给了重要信息,好像是什么串,最终发现了
那到底移多少位呢?写个小程序跑下吧
#include<stdio.h>
char source[13] ={'V','H','U','U','E','F','U','D','I','X','Q','H','U'};
int line = 1;
void findAnswer(int begin)
{
char test[27];
int i,j,k;
for(i = begin,j = 1;j <= 26;++i,++j) {
test[j] = 'A'+i%26;
}
printf("%2d: ",line++);
for(k = 0;k < 13;++k) {
printf("%c",test[source[k]-'A'+1]);
}
printf("\n");
}
int main(int argc,char *argv[])
{
int i;
for(i = 1;i <= 26;++i) {
findAnswer(i);
}
}
一共26种结果如下
没办法就一个个粘贴,但是仔细看一遍发现只有第十个是有意义的,没错
FREEOPENSHARE
正是Xiyou Linux Group
的口号,赶紧愉快的去提交
哈哈!长出一口气,进入第五关