西邮Linux兴趣小组13级纳新免试题浅析(完结)

        能来到这里,你在同龄人你已经比较优秀了~第四关提交完信息后,就来到了第五关,这关就相对简单喽! 坚持听过最后一关吧!!!

        页面是这样的:

       

        知道大家的不容易,所以在这里加上了鼓励信息。我们可以看到,这个页面有一个小组的二维码,扫一下,没有什么异样 ! 呵呵,是不是太敏感了 ~~~  看来这是正常的二维码,有个戳 , 那就戳戳! 然后提示你下载一个文件,如果不能下载的朋友要右键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萧然 语

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值