360校招失败的慘痛经历
10月16日接到了360的面试通知,当时特别高兴,通过网申。測试,笔试。突破层层重围。最终来到了最后一关,我对360抱有太大的希望。我去了360面试前做了一件特别傻逼的事情,就是在360旁边的超市二楼的美食城买了200的饭卡,我满心以为这次去是肯定会成功的,以后我就在这里上班,就在这里吃饭,去了360后。等了一会。到下午三点半,我去敲到,再交一次简历。然后就是到12层去等待面试,当时面试的时候。人非常多,我跟周围的人交流了一下。大部分都是北京本地的重点大学研究生。而我仅仅是一个外地的垃圾本科的本科生,瞬间认为差距非常大,可是跟几个我同样岗位的人聊了聊,他们对攻防和杀毒这一块一窍不通,可能就是传说中的学霸吧,我不是看不起学霸。仅仅是我比較偏爱杀毒这块。我喜欢病毒木马的编写。我喜欢逆向破解软件,可惜的是我才学2年不到的时间。都是自学的,基础不怎么扎实。可是我都知道些主要的东西,自认为在我的学校算是最好的了吧,当时聊了一会还挺自信。至少那些后来面试官说的“野路子”我还是比他们熟悉的,我一直等到了6点多,開始面试。我刚去,360的面试官就说,坐火车来的?扯了几句。我事实上本来就不紧张,他又那么随和,我就不知不觉说话的时候也带着一点俏皮。不知道是不是由于这个,才让他对我没什么好感。然后開始看我的简历。问我知道溢出攻击吗?我说我知道,然后把大概原理说了一遍,然后就又问我。怎么处理这个问题。我就说换成安全字符。也就是Unicode码,哈,由于我确实不太会这个,他说Unicode码也仅仅是把范围增大了一点而已呀。没解决实质性问题呀,我就沉默了,然后就说我不知道了,他然后又问我堆溢出的问题。然后让我说解决方式,我说处理边界溢出,加一个推断。推断边界溢出的时候发送一个信号,然后调用hook,将malloc等函数拦截,不让他们运行下去了,他说那时候已经迟了,我也明显感觉到,确实是迟了。那时候拦截已经没用了。这时候他又看了看我的简历,说你学的怎么都是“野路子”啊,公司尽管须要野路子的人,但你的这个技术,比业界平均水平低多了。汗,我是实在不想说什么了,谁叫我学的晚,学的还不好呢,然后就问我一些window消息循环机制,就问我postmessage和sendmessage的差别。我听到这个题,心里轻松了。由于我知道,然后我就说postmessage是把消息投递出去后无论了,而sendmessage是将消息发送出去并且一直等待返回的消息,他说,嗯,那你知道为什么会是这样吗?我当时脑子懵了。感觉他要问我原理。我平时也都是用这两个函数。哪还知道他们是怎么实现的呀,果不其然,他接着说。你说说他们详细是怎么实现的。。
。
一万句草泥马从心里飘过,我直接说了我不会,他说好,下一个。问了关于我多线程的问题。问的是一个老生常谈的题目。创建四个线程,每一个循环一百万次吧,然后希望最后达到的答案是四百万,问我怎么处理,我又松了一口气,然后就说,这种方法好多。比方TLS,原子锁,相互排斥,信号量。事件等。
。。啪啪啪。说了好几个,这个还好。没继续往深的问了,然后又看到我简历上面会使用OD,就问我。你知道断点有哪几种吗?我開始没理解。就说。软件断点和硬件断点呀,他说硬件断点咱不说,就说软件断点分哪几种,我说名字不太清楚。是用int3填充的,其它的不知道了,实际上还有种我结束之后想明确了,曾经我师傅跟我说过,是一个cpu断点,好像还有个设置的限制,仅仅能设4个好像,这个答的也不好,然后就问我关于脱壳的,由于曾经我做破解的时候是团队里面人把壳脱了之后给我的,可是我看他们脱过,就按着印象说。应该是说错了,找OEP的方法说错了,丢人了当时。早知道我当时直接说不知道就好了。然后他沉默了一会说,你还是会学校再好好学学吧。然后我非常绝望,真的,我当时非常着急。就用非常难受的口吻说,我能够进公司做非常久的QA,来好好学习,他摇摇头说,我这个人非常好讲话,可是绝对不会放水的。就算你进了公司,凭你如今的技术。你最多做几个月就会压力太大自己主动辞职了,他说了这些话后,可能他认为非常无所谓,可是他的每一句话都在敲打着我的梦想,我的梦想也在一片一片的碎裂。脱落,然后又開始了,好像是想要给我一次机会一样,也可能是在损我了,他看我会windows hook和dll远程线程注射,他说你会的hook是哪一个,我说是windows hook,不是api hook。api hook我用得非常不熟练,他说,那你不会api hook,你注射dll有什么用?我说我写dll注射纯属学习的,他说什么效果。我就说我注射到qq里面后,会弹出来个窗体,QQ的进程里面多了一个线程,他冷笑了一下,然后又说,你说你做过一个任务管理器。那么你这个任务管理器相比微软的任务管理器有什么特点吗?我说功能大致同样,他说,那你写他还有什么意义?瞬间又被轻蔑了,这个任务管理器也是花费了一周时间写出来的,瞬间被他歧视的什么都不是,假设已经存在的东西。写他就是没意义,那还学习干嘛?你学的东西难道不一直都是存在的吗?有本事你自己创造一个学派呀。就这一点是让我相当不爽的。我不过个本科生,至于这么为难我吗,最后也总结了一下,我身上不足的地方太多了。我得自己一个一个的把这些坑所有填上,至少以后不能一个问题。才深一个层次就把我问倒了,我不怕失败,失败永远是最好的兴奋剂。面试失败后,我跟我一个好朋友聊了非常久,我朋友把我送到了公交站牌处,他一直在安慰我,他一直是我生活中一个仰视的对象,他影响了我非常多。也改变了我非常多,他跟我说他刚毕业的时候面试是多么艰难,可是他的技术。绝对是中国的前茅,听了他说的非常多话后,自己的心里难受的成分要少了非常多,可是依然难受,然后我坐着公交,过了两站路,我不想坐了。下车了,游荡在街上,漫无目的的走,倒是让我感觉更好一些。就这样没有目的的走着,我不知道我想去哪,我也不知道那时候我想干什么,就是这么一直走,一会我突然有目标了,我买了一包烟。我想到一个安静又黑暗的地方好好坐坐,可是,北京这个破地连个安静的地方都没有。然后我就随便找了个路灯。在以下坐下,就这样过了好久好久,可能是到凌晨了吧。我想了非常多事情,总结了我失败的原因。规划我接下来的学习方案。我一直非常相信我自己,我认为我肯定是一个不平庸的人,我不屈于生活。我想按自己的心意去活,做我最爱的编程,编程是我的梦。我想要成为像PJF,MJ,wowocock这些牛的人一样。尽管梦想遥不可及,可是他让我认为,坚持就是一种幸福,不管失败有多么痛。打击有多么大,我都不在乎,永远不停止我对程序求索的步伐,相信自己。坚持下去,不会一直是坎坷阴霾的,总会有阳光灿烂的一刻,我期待未来的自己,也期待未来的生活。
一个有梦想的年轻人