【回首过往】我的学习之路

【回首过往】我的学习之路

Gat1ta 288 2022-03-20

前几天在群里吹水的时候聊起了我之前学习逆向的时候的一些事情,不由得感叹时间过得好快。看过很多大佬的博客都会每一天有个一年总结和新一年的展望,但是由于之前没有博客,所以就只能写这么一篇文章来总结一下过去,然后展望一下未来吧。

缘起

说起学WEB安全,往远了说就是从小有一个黑客梦,往近了说只能说是被逼无奈的选择吧。
从小我就是一个问题少年,在学校里翻开书就困,对于学习更是毫无兴趣,但是对于计算机我还是充满兴趣的。在我年轻的那个年代,小学的时候微机课的电脑都是黑白的,只有老师的电脑是有颜色的,那时候的系统我不知道是DOS系统还是啥,一周可能只有一节信息课对于电脑了解几乎没有,直到上六年级的时候第一次去网吧才算是真正接触过计算机。
最开始接触计算机只能是打游戏,那时候电脑还算是个新鲜玩意,能玩明白电脑的人几乎没有,去网吧只能是打游戏,学校里老师办公都不用电脑。
一直到高中的时候,游戏玩的多了也觉得没意思了,开始研究游戏外挂,感觉游戏外挂很神奇。但是因为英语不好,就去百度中文编程,结果了解到了易语言。但是网吧电脑里根本没有这东西,都需要自己下载。去过网吧的都知道,网吧都是有还原精灵的,每次一关机之前的东西就没有了,还得重新下,就在这种环境下,我一边百度一边照着敲代码,自己研究出了一个钓鱼木马~伪装成外挂的样子让人打开输入账号密码点击登录,然后就会把账号信息发送到我的邮箱里,这也算是第一次接触编程的成果,但是也仅限于此了,受制于条件有限,第一次学习编程半路夭折了。
后来就是到北京上学开始学习网络工程,然后就是无聊的课程学习然后毕业然后找工作,索性还能找到个工作,然后就是上班下班打游戏,这种状况一直持续到18年。

启航

18年初,2、3月份的一天晚上,女朋友已经玩完手机准备睡觉了,我突然在手机上看到了一个C++课程的广告,然后尘封已久的黑客梦突然被勾动了起来,然后第二天早上就开始百度搜索各种各样黑客教程,学习路线之类的,经过一系列的百度之后,接下来我的学习路线就开始了。
最开始学习的就是C语言,因为网上很多人都推荐C语言,然后就开始在网上找C语言教程。我刚开始看的是小甲鱼的一个C语言视频教程,在手机上把教程一集一集下好,在公交上、地铁上、吃饭的时候看教程,然后在公司或者在家里身边有电脑的时候敲代码实践。
C语言大概一个月就学完了,学完C语言后感觉什么都做不了,相信很多人最开始学习C语言的时候都会有这种感觉。然后我就百度搜C语言写外挂之类的东西,然后就发现了一个叫郁金香的人有个C语言课程中有开发一个俄罗斯方块游戏,我进去看了看大概的思路后感觉我也可以,然后自己开发了一个控制台的贪吃蛇,然后又写了一个俄罗斯方块。
写完那两个游戏之后就开始在网上找一些学习的群,其中就包括郁金香的群。
熟悉郁金香的人都知道,这是一个教写外挂的人,他的群里也都是一些外挂作者,或者是准备成为外挂作者的人。
想要写外挂当然要学逆向啊,我在群里问学习路线就推荐学习汇编之类的,然后我又去看了一半小甲鱼的汇编语言。为什么说是一半的?因为我感觉看视频太慢了,明明一句话可以说清楚的知识点要翻来覆去浪费好多时间,然后我就开始买书看,这也是我接下来学习的主旋律。
《汇编语言-王爽》
半个月看完了这本书,对汇编语言有一些基础了解。
《Win汇编语言程序设计-罗云彬》
这本书初步接触了Win32程序,大概看了一个月左右,重点学习了一些动态链接库和钩子以及PE文件之类的知识。用汇编写了一个可以像PE文件中插入代码的一个东西。
《Windows程序设计》
这本书算是正式进入Win32程序开发,大概看了两个月,了解了Win32程序的消息机制,各种消息之类的。这也是学习编程路上第一次怀疑自己,被Win32消息机制折磨的晕头转向,从一开始的C语言开始那种简单demo代码到Win32消息循环,那时候就是搞不明白为什么要这么写代码。
《Windows核心编程》
这本书是Windows编程必看的一本书了把,这本书也是差不多两个月时间,主要学习Windows底层机制,比如内存管理、线程调度、线程池、异步IO、DLL、异常处理之类的。
这本书虽然叫核心编程,但是书里讲的内容都是一些应用层的东西,没有设计内核编程的知识。
《C++ primer》
这就是一个C++语言教材,在多重继承虚函数那里也被折磨的死去活来,这个应该看了两个多月的时间。
《滴水三期》
上面这些是应用层看的书,其他的就是滴水三期海哥的视频了,这个视频算是应用层和内核层的一个过度,这个视频主要学习了PE格式,然后就是内核层的一些东西了。
比如APC机制、保护模式、进程与线程(内核层)、句柄表、内存管理、驱动开发、软件调试、事件等待、系统调用、消息机制这些东西。
《天书夜读-从汇编语言到Windows内核编程》
《竹林蹊径-深入浅出Windows驱动开发》
《寒江独钓-Windows内核安全编程》
从这几本书开始进入内核开发,其实这几本书都差不多,内核学习和应用层有很大区别,应用层的知识有问题百度一搜解决办法一大堆,内核层的解决办法明显少了很多。
这几本书具体看了多久忘了,天书夜读应该是半个多月,其他的也没用多久,内核学习主要是通过海哥视频学习的。
大概从19年4-5月开始,开始实战绕过TP游戏保护,这时候认识了0xCC同学,这是我学习以来遇见的第一个志同道合的可以互相交流的朋友,然后后面又认识了几个一起研究TP保护的朋友,但是只有CC同学最聊得来,一方面技术相近,一方面性格相投吧。
差不多四个人,拉了个群,也算是自己的一个小圈子,大家有共同的目标一起研究,那段时间成长的很快。
这一段时间也是被虐的死去活来,一直到5-6月份吧,差不多花了一个多月的时间过掉了TP,然后我们就开始自己搞自己的游戏。
当时对FPS游戏比较感兴趣,为了研究透视还专门去学了线性代数用于做矩阵转换。实践的过程遇到过很多各种各样的问题,但是都不成体系,这里就不说了。
差不多十月份的时候CC说收到了腾讯的offer,本来是个外挂作者摇身一变成了反外挂的了~ 然后就因为立场不同慢慢的联系少了,后来CC直接退群了。

变故

CC退群后剩下的人依然每个人研究自己的,有问题在群里交流一下,然后一直持续到21年中旬,想找一个逆向的工作,发现我研究的游戏方向除了腾讯网易这种大厂就没公司用了,要么就是一些病毒样本分析的或者竞品分析的工作,找不到工作备受打击,躺平了半年,到21年11月的时候终于打定主意学WEB安全。

新的方向

虽然学逆向学了两年,但是对于WEB安全也算是零基础,就从最简单的HTML学起吧,学习的习惯还是延续之前的习惯,简单基础的东西看书学习。
《图解HTTP》《HTML5与CSS3基础教程》《Javascript基础教程》
这几本书加在一起估计看了差不多一个多月两个月左右。
这几本书主要是学习web的基础,基本就是简单过一遍,学完之后javascript再也没写过代码,基本快忘光了。
《白帽子讲WEB安全》 《WEB安全攻防》
学习常规web漏洞原理,忘了看了多久了。
《Python编程-从入门到实践》《Django企业开发实战》
这几本书学习python开发,和Django基础,跟着书写了一个博客,也是自己的第一个博客。
学习Django是当时在百度上看到一个知乎帖子说要选择一个后端语言学习,说python简单就通过python学习一个后端框架,现在感觉这好像是走了弯路。

《SQL学习指南》
学习基础sql语句。

《PHP与MYSQL程序设计》《代码审计:企业级WEB代码安全架构》
主要为了学习PHP代码审计,看完这两本书后找了几个CMS审计了一下,提交了几个CNVD漏洞,但是都是没有证书~

《JAVA编程思想》《JAVA代码审计》《JSP&Servlet学习笔记》
主要为了学习JAVA代码审计,JAVA编程思想看了估计有两个月实践,然后看的JAVA代码审计,因为缺少J2EE的知识看的云里雾里的,所有又买了一本JSP&Servlet看了看。

《内网安全攻防-渗透测试实战指南》
内网安全其实是跟JAVA安全同步学习的,因为公司电脑配置太差搭不了内网靶场,所以那时候白天在公司学JAVA晚上回家学内网。

展望未来

到目前为止,WEB安全应该算是入门了吧。对于未来,目前的打算是先学好JAVA和PHP代码审计,同步提升黑盒挖洞能力吧。
中期目标多学习一些内网知识。
远期目标就是学习PWN研究二进制安全,这也算之前学习的逆向没有白学。