从苏宁电器到卡巴斯基第23篇:难忘的三年硕士时光 I
初次接触逆向工程
不知不觉就来到了2013年的9月份,学校开学了,我开始正式体验研究生的生活了。按道理来说,硕士研究生是需要围绕在导师身边,每天朝九晚五地去实验室做项目的。不过我们老师没有项目,也不要求我去实验室,这也就使得我可以有更多的时间来学习自己喜欢的东西。不过尽管没有项目,老师还是给了我翻译的任务,整个研一阶段,他找了两本英文书籍,是与计算机图形图像相关的,让我们翻译。虽说翻译的工作到最后也都不了了之了,但是多多少少对我的英语水平,有了一定的提升作用,于是也就在研一的两个学期,一口气把四六级过了。记得当时我还发了一个状态来调侃自己,孩子都这么大了,还在拼命考四六级,我也算是前无古人后无来者了。
其实到毕业的时候,我们班算上我在内一共有三个结婚的,当然我是在读研究生之前(2011年)就已经结婚了,2012年有的小孩。而我们班还有一个,大概是研二的时候结的婚,研三有的小孩。还有一对,男生女生都是我们班的,也是在毕业之前结的婚。当然我们班在毕业前结婚的还有,传说还有两三人吧,但是这三对是我比较确定的。可见,现在研究生,结婚生子也不是什么稀奇的事情了。
另外,尽管我最初下决心要好好学习游戏引擎的相关知识,但也仅仅是三分钟的热度,最后也不了了之了。学了一点之后,觉得自己不是这块料,对这方面实在是不感兴趣,也就放弃了。
其实在这个时候,我对于自己的未来是非常迷茫的,不知道自己究竟应该研究什么方向,至少数媒是没戏了,毕竟不喜欢,觉得自己未来毕业也许会找一份C++开发的工作。也就是在我最为迷茫的时候,我在网上无意间接触到了“小甲鱼”的逆向分析的课程,突然感觉眼前一亮,原来计算机领域还有这样的一片天地啊。我跟着视频中的内容做了几遍,然后又学了小甲鱼的PE结构解析的课程。其实当时我只是觉得PE结构学起来比较有意思,但是看了两遍之后,也没记住多少。于是我研一的第一学期也就这样过去了。
寒假的时候,为了打好基础,我把小甲鱼的16位汇编以及Win32汇编也学完了。其实这对我的帮助是很大的,毕竟汇编是逆向分析的基础。不过这里面最重要的还是16位汇编,学完这个,那么在逆向的过程中,基本不会有看不懂的代码了。而Win32汇编课程更多的是讲解系统底层以及开发的知识,因此对我的帮助并不显著,但也是需要掌握的。
现在回想起来,那个时候打基础的阶段真的是非常重要,尽管当时我所学到的知识并不多,但至少是开了一个好头。以我现在的眼光来看,小甲鱼的课程依旧是很棒的,我也相信除了我以外,很多安全圈内的人士或者不是安全界人士(甚至是今天的大牛),都是看着小甲鱼的视频成长起来的。他的课程直到今天也还是免费的,只是如果大家有意向,可以购买鱼C论坛的会员,或者购买小甲鱼的U盘,里面有他的课程。在此我也希望大家能够尊重知识,为了学习知识,你今天的付出绝对是值得的,不要吝啬你的钱袋子。只有支持这些辛苦的讲师,他们才会有动力不断地更新更加优秀的课程。你今天付出的金钱,未来一定会成百上千倍地挣回来。对于讲师而言,他们真的不容易,有些真的就是要靠大家来过生活的。
牛刀小试
转眼就来到了研一的第二学期。但是我的学习在这个时候却遇到了瓶颈,那就是我感兴趣的小甲鱼的课程全都已经学完了,因此我的技术水平也就在原地踏步。当时为了报答小甲鱼的辛勤劳动,我还买了会员,毕竟不能让他白讲,都挺不容易的。
那个时候我几乎每天都会玩FIFA07(劳逸结合嘛),自我感觉水平还不错,但是即便是最高难度的电脑(世界级)也不是我的对手,我知道其实这里面还有一个隐藏难度——传奇模式,但是为了解锁这个难度,实在是一件很麻烦的事情,需要完成许多变态的成就。于是在一个周六的上午,我突然心血来潮,不如研究一下怎么把传奇难度调出来吧,然后在午饭前,我就完成了这个case。这也促成了我在CSDN的第一篇博文——《逆向工程第001篇:解锁FIFA07传奇模式》。那个时候写技术博客完全是一时兴起,并没想过未来CSDN会给我带来极大的帮助(以后会详细讲到)。而作为事后诸葛亮,我觉得像我们这种计算机出身的,坚持写技术文章确实是好处多多的,特别是在推广自己方面,应聘时是会在无形中为自己加分的。
然后我觉得应该一鼓作气,于是分析了仙剑一的存档文件,前后大概花了一天的时间吧。最大的成就是实现了“无限次”(其实也就是99次)使用“酒神咒”的问题,当时真的是满满的自豪感啊。
酒神咒
于是这也就促成了我的第二篇文章——《逆向工程第002篇:打造自己的仙剑奇侠》。其实这两篇文章的写作,仅仅间隔了一周多的时间,当时还以为自己很厉害,于是打算把自己玩过的游戏都研究研究。然后就打算分析一下PSP的《战神》游戏存档,结果就阴沟里翻船了,直到现在也没研究明白(其实不是延续到现在,而是当时没研究明白,直接就放弃了)。其实我所研究的这些,并没有用上我之前在小甲鱼的课程中所学习过的知识,而都是在进行二进制数据的分析,说白了,就是比对数据变更前后的存档文件在二进制层面的不同。直到我的第三篇博文——《逆向工程第003篇:跨越CM4验证机制的鸿沟(上)》才使用了爆破的手段实现破解。但是爆破手段毕竟是低级的,并没有多大的技术含量。逆向分析出验证算法并编写出注册码生成器才是最终目的。无奈当时我水平不够,也是拖了好久才完成(此是后话)。
我的CSDN博客里面,逆向工程系列的每一篇文章,用我今天的眼光来看,都会对我当时的成就而感到无比骄傲。那是我走上安全道路的一个极好的开端,如果可以,我还会把逆向工程系列不断地写下去,打造一个精品栏目,即便没人赏识,但只要我自己认可,那也就可以了。我现在也在考虑,要不要把这个系列的文章也录制成视频,从而将相关技术更加广泛地传播出去。
差点变成游戏攻略视频制作人
之前也说了,研一的时候,我除了学习之外,还很喜欢玩游戏,主要是足球类的比较多。另外,PSP也是我的最爱。而我最喜欢的莫过于《战神:奥林匹斯之链》了。
《战神:奥林匹斯之链》游戏封面
当时由于我玩的是最高难度,很多地方过不去,于是我就上网找攻略视频来看。那个时候看的最多的就是黑桐谷歌的视频攻略,对我帮助很大,利用他的方法还真的在最高难度下通关了。要知道我以前打最低难度都费劲。
也正是由于不忙,我后来也看了黑桐谷歌的其他视频,尽管那些游戏我压根就不玩,但是看攻略也还是挺有意思的。这个时候我就突发奇想,要不我也试试做一套视频攻略吧。而我最熟悉的莫过于战神,那就做一套这个游戏的最高难度通关视频。
说干就干,我配置好了最简单的软硬件环境。但是这样就有个问题,录制的时候非常的卡,极其影响我的发挥。很多时候不是我的水平不行,而是实在是太卡了,很多招数根本就发不出来,只能眼睁睁地看着奎爷被小怪围殴。即便如此,我也不会去买视频采集卡这样的专业设备,而是一点一点的硬打。每两个存储点之间,我就录一集视频传到网上,并且还配有我的攻略解说,显得也还算是专业。
我的视频攻略
直到最后一关,刚进皇宫的时候,由于实在是太卡,实在是很难打,我就想歇几天。没想到一歇就歇到了现在也还没录完,加上我的PSP还坏了,这就更录不了了。本来我还打算要把《战神:斯巴达之魂》以及《但丁地狱》也录完,可惜也没啥机会了。不过以后如果有空,我还是想把当初的想法都实现的,配置专业的设备,把这几个优秀的作品都录完。
现在想想,假设我当时一鼓作气把这几款作品都录完了,那我现在有没有可能成为专业的游戏攻略视频制作人呢?这一切还真是不得而知。大家如果有兴趣的话,现在在网上还能够搜到我当时录制的视频,可以去看一看,还是挺有意思的。
就这样,我的研一生活也就在平稳之中度过了。事后觉得,这真是平和的一年。
我与猎豹移动的初次接触
尽管刚入学的时候我对自己未来的发展方向迷茫过,但是对于毕业后我去哪里工作这件事,是没有任何疑问的,就是回家,留在珠海。之前说过,最开始读研的时候是想学习游戏引擎做游戏的,那个时候我最想去的其实是珠海金山的西山居游戏。后来学了逆向,那么其实我还是想去珠海的金山,只不过变成了猎豹移动(原金山网络)。而猎豹移动也是我这种学习逆向的人留在珠海的唯一选择了。而我家就在金山旁边,记得九十年代初我们全家刚迁到珠海的时候,金山还是栋旧楼,后来盖了崭新的大厦,还是挺壮观的,所以我或多或少地见识到了金山一步步的变迁。而且我也觉得,既然金山离家这么近,那么即便是总加班或者工资不高那也无所谓了,当时就是一心向往着能够去金山的。
我们北工大专业硕士的培养模式是,研一用来上课,利用一年的时间把所有的课程结束掉。然后的研二研三要么跟着导师做项目,要么自己出去找实习(毕业答辩以前需要实习满一年)。我属于后者,找实习只能靠自己了。研一结束后的那个暑假,我记得很清楚,回到珠海家的当天晚上,我就给猎豹移动发了求职简历,那时我的简历非常简单,内容如下:
姓名:姜晔 性别:男
学校:北京工业大学
专业:软件工程
学历:硕士研究生
个人技术博客:http://blog.csdn.net/ioio_jy
所获证书:
1、外语类:大学英语四级(534分)、大学英语六级、英语托业考试(710分)、实用日本语鉴定考试(F级)
2、计算机类 :计算机技术与软件专业技术资格考试(程序员、软件设计师)、全国计算机等级考试(二级C语言、四级网络工程师)专业技能:
1、能熟练阅读x86汇编语言代码。
2、能够熟练使用OllyDBG以及IDA进行动态与静态分析。
3、有底层与逆向分析功底,分析并修改过几款知名游戏的存档文件。
4、有C/C++基础,编写过逆向分析与安全类的小工具。
5、能无障碍阅读诸如英文MSDN等技术文档。自我评价:工作认真、积极、负责,有耐心,喜欢底层研究与逆向分析的工作。自学能力强,善于钻研,愿与他人沟通交流并分享。
结果第二天上午就接到了他们人事的电话,约在下午进行电话面试。
其实我在之前学习小甲鱼的课程的时候,是记录了很多笔记的,按道理在电话面试之前应当好好看看这些笔记,但是当时不知怎的,信心爆棚,觉得自己一定没问题,就没看。事后想想,这确实是一个败笔(尽管就算看了也不见得有用,但至少能够回答出很多问题,这就说明小甲鱼的课程确实很实用)。
对于下午的面试,我还是挺紧张的,紧张得中午都没睡好觉。其实,就算中午睡好了,结果也还是那样。接到面试电话,首先是简单地说一下自己的情况,然后就是各种各样的技术问题,我是一问三不知。当时我的内心是相当崩溃的。万万没想到他会问这么多这么有深度的问题,比如内核、漏洞、软件调试等等。当然,即便是普通的问题,很多也没回答出来。几十分钟的煎熬过后,我胆怯地问了一句:你觉得我能够胜任反病毒工程师这个职位吗?面试官回答道,其实我觉得你的基础还是比较薄弱的。我又说,你看这样行不行,不论这次面试的结果如何,你都通知我一下,可不可以?他首先迟疑了一下(后来才知道他们对于面试不过的人,是不会通知的,可能是这件事造成的迟疑。或者说是因为我表现得太糟糕了,不好当面拒绝,才迟疑的。估计他没有遇到过像我基础这么差,还有脸面应聘金山的人吧),不过最后也答应我了。
尽管面试回答得并不好,但是我当时竟然依旧有信心进入到下一轮的面试,甚至还在畅想着每天应该几点起来上班。但是不管怎样,等待中的我,内心还是非常忐忑的。那种心情很难形容,总之每天过得并不舒坦。大概过了四天,我在吃午饭,无意中看了一眼手机,发现昨天收到了一条短信(竟然晚了一天才注意到这件事)。是一个陌生号码发来的,他说他是金山面试我的,说很遗憾,我没能通过面试。看完了这条短信,我怎么形容当时的心情呢,应该说是跌入了无底深渊吧,内心比那次没有导师要我还要拔凉。毕竟唯一的出路被堵死了,我根本就不知道自己以后要怎么做了。
这里我给出我和金山面试官通过短信的完整交流内容,希望大家能够从中有所收获:
面试官:你好,我是金山网络面试你的,很抱歉通知你面试没通过!继续努力!谢谢~
我:多谢您的通知,可以的话我想再请教两个问题,第一个是毒霸招聘两类人,一个是病毒分析,一个是毒霸编写,后者要求较高,而您当时面试的时候问了我很多关于后者所涉及的问题,是不是说其实这两个职位要求是一样的呢?第二个是,请问据您所知珠海是否还有其它安全类的公司?期待您的解答。
面试官:病毒分析跟毒霸客户端开发要求不一样,病毒分析偏重汇编底层,逆向,病毒原理,同时要求一定的开发能力,和对系统底层的了解。而客户端开发主要要求开发能力,偏重与开发方面!
珠海据我所知,再没有了!
我:谢谢,我会努力
面试官:另外,毕竟新人,我们问的并不是要求全会的,而是如果这些里面某一方面比较好,比较出色,其它东西不懂也没影响。
我:多谢您的意见,我会继续努力提升水平,过几个月还会再投金山简历,希望能够成为同事
面试官:嗯,加油!
估计我也是奇葩了,面试没过,还缠着面试官聊了这么多,不过其实从这里也能够看到金山招聘的一些隐性要求,大家如果也想面试类似职位的话,可以参考一下。尽管面试没通过,但是我与这位面试官的故事,未来还会有所涉及。
《从苏宁电器到卡巴斯基》终稿完整版,请访问
https://user.qzone.qq.com/3149487460/blog/1494822165
从苏宁电器到卡巴斯基第23篇:难忘的三年硕士时光 I的更多相关文章
- 从苏宁电器到卡巴斯基第31篇:难忘的三年硕士时光 IX
在校的最后一个月 毕业答辩的评审老师宣布我没能通过,让我瞬间不知道该怎么好了.已经到了中午,老师们也都是准备吃盒饭去了,我和其他已经通过了的同学随便收拾了一下教室,然后无助的我赶紧去找旁听的教学秘书, ...
- 从苏宁电器到卡巴斯基第28篇:难忘的三年硕士时光 VI
想要毕业,还需满足一个要求 像我们这种三年制的工科硕士,想要毕业的话,除了需要按照要求完成毕业论文以外,还需要在相关期刊上发表一篇与毕业论文相关的小论文,或者申请软件著作权,或者申请专利.我不知道别的 ...
- 从苏宁电器到卡巴斯基第27篇:难忘的三年硕士时光 V
一发不可收拾 安全领域的公司都喜欢在看雪或者是吾爱破解这样的网站上发布招聘贴,因为这样的话很容易就能够招到适合的人才,也算是精准营销了.而像我这种想进入安全圈的,也会在这里发布自己的求职简历,以期望能 ...
- 从苏宁电器到卡巴斯基第25篇:难忘的三年硕士时光 III
阴差阳错,走上了讲师的道路 时间已经来到了2015年的1月,我的找工作之路也是屡败屡战,屡战屡败.金山.百度以及腾讯不约而同地不要我,使得我对于自己的未来充满了迷茫.尽管才研二而已,可是对于我这种没有 ...
- 从苏宁电器到卡巴斯基第24篇:难忘的三年硕士时光 II
没办法,还是先打好基础吧 其实在我知道自己面试失败后,第一个想法就是将面试官问我的问题都总结出来,然后通过查权威的资料,找出所有问题的答案,背下所有的答案,大概过一到两个月吧,再面试金山.当时我是这么 ...
- 从苏宁电器到卡巴斯基第26篇:难忘的三年硕士时光 IV
录课,录课,还是录课 开题结束以后,已经是三月的下旬,当时我在考虑要不要回家,毕竟学校这里也没什么事了,我待在学校还得付出一定的花销.后来我考虑到在家的话,只有晚上才能够录课,而在学校的话,整个白天都 ...
- 从苏宁电器到卡巴斯基第30篇:难忘的三年硕士时光 VIII
自给自足 临近毕业答辩,别的导师的学生基本上都完成了各自的论文,也都开始交由第三方进行审核.而我们导师由于情况特殊,还没有机会看我们的论文,所以我们也打算和老师约一个时间,来给我们的论文提点意见,修改 ...
- 从苏宁电器到卡巴斯基第29篇:难忘的三年硕士时光 VII
我们可能无家可归 那天晚上和导师道别后,我们几个还聚在一起开了一个小会.当时大家觉得最坏的情况就是学院不肯让步,不能满足我们导师提出的条件.那么这样的话,我们几个只能够重新找导师了.而我们数媒专业里面 ...
- 从苏宁电器到卡巴斯基第16篇:我在苏宁电器当营业员 VIII
其实不想走,其实很想留 我在之前的故事中说过,在大四的时候,我其实是想考研的,但是看了一段时间的书以后,发现自己实在不是那块料,主要是数学实在是学不明白,那么也就只能作罢了.而后来面试中石化的时候,尽 ...
随机推荐
- 500GJava/Hadoop/Spark/机器学习...视频教程免费分享 百度云持续更新
参加工作这么长时间了,工作中遇到了不少技能都是看视频教程学习的,相比较看书而言看视频确实比较容易理解.分享一下自己看过的和收集的视频教程. 资源包括: 大数据方面的Hadoop(云帆,小象学院,八斗学 ...
- 《C++ Primer》笔记 第9章 顺序容器
顺序容器类型 类型 解释 vector 可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢 deque 双端队列.支持快速随机访问.在头尾位置插入.删除速度很快 list 双向链表 ...
- 常用linux命令,开发必备-速收藏
在前面我们介绍了通过VirtualBox安装Linux的方法,参考: 一网打尽,一文讲通虚拟机VirtualBox及Linux使用 本文我们将介绍在使用linux的过程中常用的一些Linux命令,掌握 ...
- POJ-1062(原始dijiksra算法+思维)
昂贵的婚礼 POJ-1062 这道题目一开始看的时候难以理解,但是仔细想,还是可以和最短路联系的,我觉得类似于硬币交换等问题. 以下需要注意几个点,第一就是因为题目规定如何和超出了等级限制的人交易,则 ...
- Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解
封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...
- flask wtforms 的效验
flask版 .py from flask import Flask, render_template, request, session, current_app, g, redirect from ...
- nginx使用-1(源码安装nginx)
Nginx概述 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramb ...
- python学习之基础内容
python基础内容① 什么是python? -一种计算机语言,计算机语言分为 -高级语言:python.java.Ruby.C#.C++...... -基础语言:C语言.汇编 -计算机可以直接执行基 ...
- Flask面试问题
1,什么是Flask,有什么优点?概念解释Flask是一个Web框架,就是提供一个工具,库和技术来允许你构建一个Web应用程序.这个Web应用程序可以是一些Web页面,博客,wiki,基于Web的日里 ...
- go语言几个最快最好运用最广的web框架比较
比较一下常用的golang web框架 令人敬畏的Web框架 如果你为自己设计一个小应用程序,你可能不需要一个Web框架,但如果你正在进行生产,那么你肯定需要一个,一个好的应用程序. 虽然您认为自己拥 ...