能来到这里,你在同龄人你已经比较优秀了~第四关提交完信息后,就来到了第五关,这关就相对简单喽! 坚持听过最后一关吧!!!
页面是这样的:
知道大家的不容易,所以在这里加上了鼓励信息。我们可以看到,这个页面有一个小组的二维码,扫一下,没有什么异样 ! 呵呵,是不是太敏感了 ~~~ 看来这是正常的二维码,有个戳 , 那就戳戳! 然后提示你下载一个文件,如果不能下载的朋友要右键Save link as ...... 提示下载,那就下载呗 ! 好了 下载下来,这文件,连个后缀名都没有,我们已经有经验了,对啦 ! 用 f i l e 命令查看一下 :
可以看到是一个32位的可执行文件,我们给它加上可执行权限 (chmod +x a), 然后运行一下 :
这......些单词,还是认识的,我相信路过的朋友也应该认识吧 !
呵呵,首先恭喜你走到了这里,再加油 ! 下面的意思是,现在有一个文件叫a , 让我们去找key_data , 这个key_data在key_function里 , key_function的地址已经告诉了。key_data在系统栈里面,在这里还提示你应该用什么方法去做, 然后, 当你得到所谓的key_data时,每一个字节都是一个索引,这里给你一个索引表, 让它显示出来就好!加油天才们!
提示的已经很明确了,告诉我们应该怎么做。如果没有用过GDB或者反汇编的工具的朋友可以去在GOOGLE上简单查查用法,小编在这里使用的是Linux下自带的反汇编命令objdump , 暂时够小编使用了。Windows下有很有名的OD(OllyDbg)和(IDA Pro)一个是动态的,一个是静态的。在这里小编就不赘述了,很多的详情,大家GOOGLE或者wiki。好了, 咱们就反汇编一下(ps:小编的汇编语言也不强, 不过这关需要的汇编语言知识倒是不多) :
-D 表示disassble-all 全部反汇编 , -M intel 表示反汇编出来的汇编语言使用intel的语法 , 更多的objdump参数 , 大家有兴趣可以man objdump , 好了 ,刚才给了key_functoin的地址了 0x8048450, 我们vim s.asm , 找到这个地址 :
我们看到,就是key_function函数的入口, 下面有一大堆的指令, 看不懂不要紧的 , 你认识printf和exit就好 , 我们知道printf 是有参数的函数 , exit也是有一个参数的函数 , 参数是存储在栈里面的 , 参数先进栈,当后调用该函数。好了 我们看一下printf 前面有4个mov 指令,其实就是赋值的意思,我们看后3个mov , 把某些值复制到了某处,可以理解为某些值进栈了 , 看到下面的printf , 哦,原来是printf的参数进栈了。 我们再看最后面的exit 函数, 它是有一个参数的,那么上面的一个mov 就是让exit函数对应的参数进栈。好了 , 知道了这些 , 我们再看看中间这些赤裸裸的数, 都是mov , 都进栈了 , 十分引起我们的怀疑 , 会不会就是我们要的key_data呢 :
我们试一试啊 , 按着提示那样 做 , 一个字节一个字节地取出值, 对应到索引表里 :
我们把数据放在大小为5的数组里 , 然后将int 类型指针强转为char型指针 , 然后 , 我们分别对每一个字节进行解引用 , 再在索引表你对应索引出值 , 我们来看看运行结果吧 :
o(∩∩)o...哈哈 , 是这样啊! 是这样啊! 是这样啊!!! 原来是这样啊 ! 是不是很简单? 正着读,好像不能读通 , 仔细观察一下 , 我先大家对love这个单词应该特别敏感吧, 不管写反还是怎么写 , 你一定能分辨出来吧 !呵呵 ~ 那就正着 读吧 , 大声地正着读吧 ! 对 , 你没有读错 ! 是 :
这字符串要怎么办呢? 我们想到了页面有一个二维码 , 那么 ,试着提交到小组微信平台吧 , 看看微信平台啥反映 :
辛劳的成果, 终于没有白费!~! 请原谅小编在这里每次试试之后就成功。其实小编也尝试过很多次 , 在这里给大家讲 , 直接就是自己的结果了。具体的探索过程 是艰辛的 。需要大家自己去体味 。 免试题 , 不用那么太在意它 , 它不是给一般人准备的,是给技术怪咖准备的 。 慢慢来,一步一步 , 脚下走扎实 ! 才能建造上层建筑 。 技术的道路 , 或许比你想象中的稍微苦一些 , 但是不要怕 , You will never walk alone 。 就像陈莉君老师说的, 一根线 , 你就和世界连接起来,现在你都不许要一根线,just手机 就可以。 有一天 , 你写了篇博客 , 有一天 , 你给别人讲解了一个程序, 讲解了一个知识点 , 有一天 , 你发现了一个bug , 告诉大家 ......你就在分享, 你就在发光 , 不管这个光是强是弱 , 你已经加入到分享的行列。 世界上热爱分享的人儿 , 和你永远是在一起的 , 不以任何意志转移的!
不要怕失败 , 困难 。 引用herly大神的一句话:我就像盲人摸象那样 , 慢慢地一步步推倒 , 再重建 。
不懂才有去学习的价值 , 如果什么都懂了 , 那么 , 地球已经容纳不了你了 。 去探索吧 ~
最后 , 小编送大家几句话 , 也是自己最近的感悟吧 !
你一定要努力保护好自己的梦想~! 千万别一朝一夕,被几句言辞否认。
理性地看待每一件事 , 每一个人 , 甚至每一条建议。
当别人用他们的思想禁锢你,或强迫你的时候 , 试着学会挣脱,试着说BU !!!
每个人都有自己的想法,尊重别人之后 , 你才能被尊重!
加油!
再次感谢辛苦出题的大神们 。
------2014年5月1日 02:40萧然 语