我的安全之路——二进制与逆向篇

write in my dormitory at ‏‎11:23:35 Saturday, May 20th, 2017 by giantbranch(其实当初想横跨web跟二进制的)

————致即将毕业的自己。

上一篇是我的安全之路——Web安全篇,,因为参加比赛,搞论文,就没什么时间写了,今天刚好答完辩,终于有时间开始写我的安全之路下篇了。虽然是5月20日写的,感觉写得太差,主要是技术也不厉害,就没发出来。既然写了,就发出来吧,现在看看有什么完善的再现在发出来吧,确实这个内容比web安全的经历难写,一个是文章题目的原因,另一个是自己接触也不长,经历不足,技术差。

为什么去搞逆向和二进制了

在上一篇中我说过,我参加了一些比赛, 由于比赛的题目除了web,misc还有逆向和pwn等,其中逆向和pwn的分值的占比都是比较高的,尤其在高端的比赛中,逆向和pwn的占比也是很高,在国外更是如此。

艰难入门之路

一开始就只是自己的孤军奋战,那基本就只能借助与搜索引擎:如何学习逆向,学习逆向的网站有哪些等。

那么你看到的基本都是首先肯定要有C,C++的编程能力,基本的都要理解透彻。(后来你回发现,当你逆向程序,在汇编层面去理解C++的时候,你会理解得更为透彻。)

之后就是汇编语言, 先从x86汇编学比较好吧,好书就是王爽的《汇编语言》,当时学校的《汇编语言程序设计》的课我也没选(因为我的那个群的学分已经满了,难得浪费分去选了,自学还可以挑战自我嘛),就看这本书,其实当时学得也并不是很好,用汇编编程的量不足(可以说几乎没编过汇编的感觉,感觉就编了几个helloworld),选了的话可以强制性地逼你去编。

再之后就自己编程序,查看其汇编代码进行理解。来到这一步,就可以尝试去做一些crackme了,或者破解一些简单的软件,这样就差不多入门了。

入门之后还是迷茫啊

发现自己进步得非常慢,几乎没啥大的进步,应该是量还不够,而且由于各种原因,不能完全将时间只投入到逆向的学习与提高上面(这个点是个非常值得注意的点,这是使我有点后悔的一个点,做事一定要专注!【其实当时好像也迫不得已】)。实习的时候是搞渗透的,只能空闲的时间学习逆向,还有就是去参加比赛,但是我还是去当了一个web选手,线下比赛很容易就浪费了很多时间。

可以算入了逆向的门,之后一直想玩pwn,但确实难以入门啊,你要懂得汇编,调试,栈,堆等基本知识,你还要安装工具,你才能够理解和实践。重要的是当时的pwn的资料很少,我也没有大牛指导啊,搜索引擎搜到的资料也不多,可能当时没用谷歌吧,所以用好的搜索引擎也很重要,看英文资料也很重要,其实当时国外有个博客有个很好的系列文章,很多国内文章的原型来源于它(https://sploitfun.wordpress.com/)。

直到有一次,实习的时候刚好遇上公司的对外培训,我也去水了一下,跟安全研究员交流了一番,才拿到了一些资料,就更加激励我走上这一条路。

实习完就想转岗做安全研究员,当时面试的时候还没分析过什么漏洞,就学过蒸米的那个教程,面试官就叫我尝试去分析二进制漏洞,当时就搞了个ftp的缓冲区溢出漏洞IE漏洞(CVE-2012-1889)分析与利用,IE漏洞CVE-2014-0282漏洞分析(这个是分析完ftp后分析的,收获良多,报告没发出来,踩了挺多坑的),也算了入了windows的漏洞分析的门了。

之后就是参加一些web偏多的比赛,还有准备毕业设计,还有这段时间一直在颓废了,不禁想问自己:为什么能够颓废这么久呢?

未来之路

现在已经选择了安全研究员之路了,虽然苦逼了一点,但是既然选择就热爱吧。

为什么想去当安全研究员呢,因为自从来到这个信息安全专业,我就基本确定走信息安全的道路了,后来也了解到tk教主就是安全研究员做起的,虽然并不是每个人都能成为tk,但是有机会还是可以试一下嘛。

关于pwn的一些好的博客,资源等(其实有些我收集了还没怎么看呢)

【更多等待大家补充了】

http://angelboy.logdown.com/

https://wizardforcel.gitbooks.io/sploitfun-linux-x86-exp-tut/content/

https://github.com/scwuaptx/HITCON-Training

https://github.com/Kung-Pao-Chicken/ctf

https://github.com/shellphish/how2heap

https://pwnable.tw/

http://pwnable.kr/

https://etenal.me/archives/972#B1

https://heap-exploitation.dhavalkapil.com/

打赏专区