# 黑客技术/信息安全/网络安全从零学起 #### 作者:任晓辉 #### 引用自:[https://zhuanlan.zhihu.com/p/24698829](https://zhuanlan.zhihu.com/p/24698829) 若有侵权请联系站长,站长将会尽快删除。 ## 目录: 1. 缘起——为何撰写此文 2. 心法——术与道的博弈 3. 准备——要考虑的问题 4. 经验——学习路线详解 5. 结尾——参考书籍列表 6. 迭代——典型问题解答 ## 1. 缘起——为何撰写此文 从2003年开始接触黑客技术以来,前前后后解答关于如何学习黑客技术的问题近百次,也曾经多次被一些初学者的誓言所打动,义务当了十余次老师,一直教到曾经海誓山盟的初学者不好意思联系我(有的甚至直接将我拉黑-_-!)为止。说实话,一直到现在,我都认为绝大多数看我这篇文章的读者最后终究会放弃,原因很简单,自学终究是一种适合于极少数人的学习方法,而且非常非常慢,在这个过程中的变数过大,稍有不慎,就会与当初的理想失之交臂。 但是,毕竟有像我当年一样的年轻人,他们有毅力、有理想,他们真的可以坚持十年来学习这门技术,而如果有人稍加指导,就有可能将他的自学时间缩短一倍,甚至更多。因此,本着不漏掉一个人的初心,便有了这篇长文,这篇文章除了提炼了我自己长达十年的自学历程外,更综合了这三年我在15PB教出的数百名优秀的信息安全工程师的经验,由于我已经在[《黑客如何学起? - 任晓珲的回答 - 知乎》](https://www.zhihu.com/question/20607351/answer/16428402)回答过具体的执行问题,因此这里主要谈内在的东西,其实就我这么多年的经验来看,更多的人之所以没能学好,其实就是内在的东西准备的过于潦草了,希望本文能对想要自学的读者提供力所能及的帮助。 ## 2. 心法——术与道的博弈 经过我总结提炼数百位自己学生的学习路径,加上我自己学习十余年的经验,最终我的心得是——决定大多数人是否能够学会这个技术的关键点,是对一些基本问题的理解是否准确。 用人话说就是,用遵循世间规则的智慧(道)去引导内心的冲动与目标(术)的能力决定你这次学习的最终结局(甚至是更大的,这一生的结局)。 下面我就从三个典型的认知谬误分别讲解这个问题: #### 首先,是终点与成长的博弈。 我曾经问过很多学习黑客技术的初学者为什么要学习这个,我得到的最多答案就是“**我要变得很牛逼!**”,然而至于如何才算牛逼呢,他们的答案是“**如果我学会黑客技术,我就_____**”,而当你继续问要学习什么才能这么牛逼时,基本上就给问住了。 当然,我这篇文章的目的就是为了解决这个被问住的问题,但是笔者现在的经验毕竟不同于八年前我绘制《Windows下Hacker学习发展流程图 V0.2 Beta》的状态,我感觉自己有义务、也有能力给出各位初学者一个更好的,可以受用一生的答案,因此才有了这段名为“心法”的废话,但就我个人而言,我认为这才是我的心得的精华之所在。 我相信绝大多数阅读本篇文章的同学都在高中时听到过一句话,那就是“只要如何如何学习,就能考上好大学,就成功了!”这种一劳永逸的想法源自于我们人类千百万年的进化,但是随着近几千年的发展,这种想法逐渐成为了我们的桎梏。而可悲的是,作为新人类的我们,却还要忍受高中教育的这种错误价值观的强化,最终的结果是接受更多教育的我们反而被削弱了自己的价值。 经历过高考的各位同学都应该心有感触: * 当你在高中时,你被告知必须考上大学才能成功 * 当你在初入大学认为已经成功之时,你被告知必须修够学分拿到毕业证才能成功而 * 当你成功毕业认为已经成功之时,你被告知必须找个好工作才能成功而 * 当你千辛万苦终于找个好工作时,你被告知必须出色完成KPI快速升职加薪才能成功 * 当你使出吃奶的劲儿升职加薪之后,你被告知必须在北京买上几百万的房子才能成功 * …… 而如果你一直以这种思维生活/学习下去,那么你基本上就不会成功,你的每一次目标的达成都会让你多一分怨气,少一分斗志,最后大多数人就局限在这个死循环中被吞没了。而且更加要命的是,由于你过于关注每次达成“成功”的局部,而无法以更大的格局思考问题。 如果你突破不了基因带给你的桎梏,那么你将永远是芸芸众生,而我们都知道芸芸众生中是不可能有黑客这种精英出现的。 因此,在你正式准备学习黑客之前,建议你要先了解一个客观事实,那就是——`只有成长才是永恒的主题,过程中的成功仅仅是你成长路上的里程碑而已`。 也就是你要搞清楚一件事,所谓的成功只不过是供你意淫的一个小目标,而并非就是终点,如果你认识不到这一点,那么就会出现很严重的问题。 举例来说,如果小明认为“**如果我要学会黑客技术,我就可以盗美女的QQ号啦**”,那么如果小明是按照一个专业黑客的路线发展的话(无此想法的读者请右上角点击关闭,出门左转各大黑客网站),小明首先需要做的就是要精通C语言。 而学习C语言与盗QQ这种工具流比起来,简直不知道要高级多少倍,因此自然也要更困难些,这样就会导致小明做着一件实际价值很高,但在小明看来却不值一提的事(C语言在小明心里远不及盗QQ高级),这种落差带来的认知失调最终会将你学习黑客技术的激情冲的一干二净。 因此,学习黑客技术的第一条铁律就是`不要有终点思维,深刻理解成长才是永恒的主题`。 #### 其次,是幻想与价值的博弈。 懒惰是最容易容易让人们产生幻想的行为。因为懒惰,所以不能得到,但是内心又无比渴求,所以只能通过幻想来麻痹自己。这里的幻想可能是自己有意识的幻想,也有可能是无无意识的幻想,甚至自己都不知道正处于幻想中(例如参与传销的人员或大部分直销微商从业者)。 但是你大可不必为此而自责,最起码对于我来说,或者我通过观察周围的人而得出的结论,包括我在内的几乎所有人都在无时不刻的与懒惰做着斗争,例如“事情太多”、“这太难了”、“没有灵感”等等都是因懒惰而产生的幻觉。因此,任何一位你眼中的大牛无不是通过了无数次与懒惰的殊死博弈才取得的今天的成就。 因此,你要知道,只有你真正俯下身子去一点点的学习知识,才会使得你离黑客越来越近。但可怕的是,大多数初学者并不懂得这些,他们在内心深处始终都认为有那么一种灵丹妙药可以让他在更短的时间内掌握黑客技术,从而去花费数倍于所谓的“更短时间”的时间去寻求这本就不存在的方法。 毫不夸张的说,这篇文章本身,就是幻想的一部分,而其实这是我给各位准备的糖衣炮弹,用幻想的外衣包裹着砸碎幻想的内核,期望能以此来拯救包括你在内的芸芸众生。 因此,学习黑客技术的第二条铁律就是`不要抱有任何幻想、任何偷奸取巧,只要你决定这条路是自己去走,那么无论你如何寻找奇技淫巧,最终都不会让你少走半步`。 #### 最后,是浮躁与耐心的博弈。 自大、自满、眼高手低皆来源于浮躁,而最致命的是,如今这个社会的整体就是浮躁的。几分钟的短视频大行其道、2倍速的电视剧备受热捧以及博客的落寞与微博的火爆,在我们拂去导致这些现象的哪些所谓快节奏生活、碎片化时间的表象后,透出的是不愿深入、以小搏大的心态内核。我们以为几分钟的短视频就可以掌握一些知识,我们认为140字的微博就可以描述清所有事情,我们认为看文章就要看精华,在如今快节奏的当下花30分钟去逐字逐句的阅读一篇长文是愚蠢的行为(例如现在的你),而这种想法就是最典型的浮躁。 从蹒跚学步开始,我们通过无数次的摔倒懂得了路要一步一步的走,走急了就要被绊倒; 从咿呀学语开始,我们通过无数次的哭闹懂得了话要一字一字的说,说急了就要被误解; 从步入社会开始,我们通过无数次的失败懂得了事要一板一眼的做,做急了就要被出局。 我们成长的过程就是在进行一段不断摒弃浮躁,拾起耐心的旅途。 如果你理解了成长的意义,如果你已坚定信心笃学技术,那么,你还有可能被最后一块石头所绊倒,那就是**对自己的耐心**。 包括我在内的绝大多数人,在制定目标时都会高估自己的精力、高估自己的效率、高估自己的智商,甚至高估自己对此事的兴趣。 这一系列的高估会在学习后半段严重干扰我们的学习效果,那种现实与理想的差距会导致你对自己能力的认知失调,进而过低的估计自己各方面能力,最终导致失败。 因此,学习黑客技术的第三条铁律就是`时刻葆有对低效率的自己的耐心`。 ## 3. 准备——要考虑的问题 想要做任何事情之前,一定要想清楚三个问题,分别是你为什么要做,你愿意为此付出什么,你想要的结果是什么。而所谓的智慧,就是一个人通过这种方式不断的调整自己对于各种事情的预期,从而达到一种与外界的平衡。如果将这个思路映射到黑客学习这件事上,大体可以分为如下三个问题。 **首先,要考虑清楚你为何要学这个**。说白了就是你的动机是什么,如果你的动机是不可持续的,例如盗个QQ(甚至是挖个系统级0Day漏洞),那么我建议你将自己的动机修改为可持续的,例如你想保持一项什么记录(甚至是让其他人更加尊敬你),因为这类动机是在不断变换的,只有这类动机才能让你有一个更加长久的动力源泉,才能促使你坚持的更久,也就能取得更大的成就。 **其次,要考虑明白你可以付出什么**。你要清楚的是,任何事情都是有代价的,而且如果你此时的年龄越小,你那么你对“代价”的理解就越不深刻,这点一定要着重加以注意。 黑客技术是一件非常有魅力、非常有价值,同时也是非常酷的一件事,但是这么有魅力的事情,如果你想要完成它,要么需要极佳的运气,要么就是需要你付出非人的努力。 > 举例来说,最近我们经常看到媒体在报道时说国内某组织的某黑客在几秒内就攻破了IE浏览器,在几秒内就绕过了XX保护机制。但事实的真相是他们其实就是运行了一个自己准备好的代码而已,而媒体上说的这几秒钟的时间其实是代码的运行时间。据我说知,他们在参赛之前,整个团队为了这几秒钟的ShowTime,需要经历至少十余个甚至数十个不眠之夜,然后才能打造出可能仅有几百个字节的艺术品般的代码(也就是Exploit),最后才能拿去现场过五关斩六将。 > 如果在这个十三亿人口的国度里最牛逼的黑客都需要如此付出,那么作为目前默默无闻的你来说,想要学会这门技术应该需要多少个不眠之夜呢? **最后,要考虑你的学习方向是什么**。信息安全领域的方向太多了,如果最粗旷的分,大致可以分为网络安全、软件安全、基础安全这三类。其中网络安全包括网络渗透、通讯安全、电信安全等,软件安全包括授权控制、漏洞挖掘、加密解密等,基础安全分为理论安全、密码学等。 我收到的最多的、也是令我最郁闷的问题就是“任老师,你的那幅图我已经看了,但是我想知道我应该怎么学呢?或是从何处开始呢?”是的,你没看错,纵然我这幅图获得了超乎想象的关注,但是仍有很大一部分人似乎并没有因为这个世界上多出这幅珍贵的图而获得什么,他们仍然是迷茫的,当然,这也并不能全怪他们。 所有人的成长都是从知道自己不需要什么东西开始的,举例来说,几乎95%以上的大学生其实根本就不知道自己想要什么,只知道自己不想要什么,这其实就是不成熟的一种表现,用我们那个方言讲就是“青瓜蛋子”。 那么“青瓜蛋子”们最需要的是什么呢?就是前辈们的指导,告诉他们,他们真正的需求是什么,然后他们恍然大悟,似乎这就真的是他们此时所最需要的东西了。 而就大多数事情而言,根本没那么复杂,随意挑选一个你最感兴趣的方向就好了;如果挑不出来,那就随意挑一个你感觉自己最擅长的;如果还挑不出来,那就挑一个你感觉最顺眼的即可。 学习信息安全技术如同做其他事情一样,最终如果你要想有所成就,必然是登上这个领域数座高峰的强者,然而你一开始并不能做到这一点,因此最简单的方法就是随便挑选一座不是太低的山峰蹬一蹬试试看。因为只要你能登上其中的一座山峰,就能一览众山小,就掌握了快速登顶相邻山峰的方法。 学习信息安全技术同样如此,你应该想找一个不是太浅的方向(例如渗透就有些浅)深入研究下去,等你将这个领域彻底研究明白后,其他方向的技术自然就能触类旁通了。 ## 4. 经验——学习路线详解 我已经在[《黑客如何学起? - 任晓珲的回答 - 知乎》](https://www.zhihu.com/question/20607351/answer/16428402)解答了,这里把图复制过来一份,省得各位麻烦。 ![Hacker学习发展流程图](https://github.com/Ex-Origin/file/raw/master/images/v2-a5e4229c8bfe9ae282b4db8add8ed09b_hd1.jpg) > 2018-09-25 《黑客学习发展流程图》更新至v1.1版 ![Hacker学习发展流程图](https://github.com/Ex-Origin/file/raw/master/images/v2-4e20162269db5308dfcc3b9131df5b0e_hd2.jpg) ## 5. 结尾——参考书籍列表 ![参考书籍列表](https://github.com/Ex-Origin/file/raw/master/images/v2-f60ec48ff1f79ddd6b79b5a07ba35cd5_hd3.jpg) 所有书籍共计2632.50元,大概15000页。这些内容脱产自学的话至少需要3年。边工作边自学的话,如果工作内容不能与学习内容高度重合,那么至少需要5年以上时间。