前言
说实话,一直到现在,我都认为绝大多数看这篇文章的读者最后终究会放弃。原因很简单,自学终究是一种适合于极少数人的学习方法,而且非常慢。在这个过程中的变数过大,稍有不慎,就会与当初的理想失之交臂。
基于资深安全工程师的十年自学经验,探讨了如何从零开始成长为一名合格的安全工程师。文章核心观点指出,自学黑客技术的关键在于克服认知谬误,包括摒弃终点思维、拒绝幻想与投机、保持对低效率的耐心。同时,明确了学习前的三大考量:可持续的动机、可付出的代价以及清晰的技术方向(网络安全、软件安全、基础安全)。内容强调了计算机基础的重要性,特别是C语言与操作系统原理,并提供了环境搭建、合法合规操作及持续实践的具体建议,旨在帮助初学者建立科学的学习路径与职业心态。

说实话,一直到现在,我都认为绝大多数看这篇文章的读者最后终究会放弃。原因很简单,自学终究是一种适合于极少数人的学习方法,而且非常慢。在这个过程中的变数过大,稍有不慎,就会与当初的理想失之交臂。
但是,毕竟有像我当年一样的年轻人,他们有毅力、有理想,他们真的可以坚持十年来学习这门技术。而如果有人稍加指导,就有可能将他的自学时间缩短一倍,甚至更多。因此,本着不漏掉一个人的初心,便有了这篇长文。这篇文章除了提炼了我自己长达十年的自学历程,就我这么多年的经验来看,更多的人之所以没能学好,其实就是内在的东西准备的过于潦草了。希望本文能对想要自学的读者提供力所能及的帮助。
学习十余年的经验,最终我的心得是——决定大多数人是否能够学会这个技术的关键点,是对一些基本问题的理解是否准确。
用人话说就是,用遵循世间规则的智慧(道)去引导内心的冲动与目标(术)的能力决定你这次学习的最终结局(甚至是更大的,这一生的结局)。
下面我就从三个典型的认知谬误分别讲解这个问题。
我曾经问过很多学习黑客技术的初学者为什么要学习这个,我得到的最多答案就是'我要变得很牛逼'。然而至于如何才算牛逼呢,他们的答案是'如果我学会黑客技术,我就____',而当你继续问要学习什么才能这么牛逼时,基本上就给问住了。
当然,我这篇文章的目的就是为了解决这个被问住的问题,但是笔者现在的经验毕竟不同于八年前学习的状态,我感觉自己有义务、也有能力给出各位初学者一个更好的,可以受用一生的答案,因此才有了这段废话,但就我个人而言,我认为这才是我的心得的精华之所在。
我相信绝大多数阅读本篇文章的同学都在高中时听到过一句话,那就是'只要如何如何学习,就能考上好大学,就成功了!'这种一劳永逸的想法源自于我们人类千百万年的进化,但是随着近几千年的发展,这种想法逐渐成为了我们的桎梏。而可悲的是,作为新人类的我们,却还要忍受高中教育的这种错误价值观的强化,最终的结果是接受更多教育的我们反而被削弱了自己的价值。
经历过高考的各位同学都应该心有感触:
而如果你一直以这种思维生活/学习下去,那么你基本上就不会成功,你的每一次目标的达成都会让你多一分怨气,少一分斗志,最后大多数人就局限在这个死循环中被吞没了。而且更加要命的是,由于你过于关注每次达成'成功'的局部,而无法以更大的格局思考问题。
如果你突破不了基因带给你的桎梏,那么你将永远是芸芸众生,而我们都知道芸芸众生中是不可能有黑客这种精英出现的。
因此,在你正式准备学习黑客之前,建议你要先了解一个客观事实,那就是——只有成长才是永恒的主题,过程中的成功仅仅是你成长路上的里程碑而已。
也就是你要搞清楚一件事,所谓的成功只不过是供你意淫的一个小目标,而并非就是终点,如果你认识不到这一点,那么就会出现很严重的问题。
举例来说,如果小明认为'如果我要学会黑客技术,我就可以盗美女的 QQ 号啦',那么如果小明是按照一个专业黑客的路线发展的话(无此想法的读者请关闭页面),小明首先需要做的就是要精通 C语言。
而学习C语言与盗QQ这种工具流比起来,简直不知道要高级多少倍,因此自然也要更困难些,这样就会导致小明做着一件实际价值很高,但在小明看来却不值一提的事(C语言在小明心里远不及盗QQ高级),这种落差带来的认知失调最终会将你学习黑客技术的激情冲的一干二净。
因此,学习黑客技术的第一条铁律就是不要有终点思维,深刻理解成长才是永恒的主题。
懒惰是最容易容易让人们产生幻想的行为。因为懒惰,所以不能得到,但是内心又无比渴求,所以只能通过幻想来麻痹自己。这里的幻想可能是自己有意识的幻想,也有可能是无意识的幻想,甚至自己都不知道正处于幻想中。
但是你大可不必为此而自责,最起码对于我来说,或者我通过观察周围的人而得出的结论,包括我在内的几乎所有人都在无时不刻的与懒惰做着斗争,例如'事情太多'、'这太难了'、'没有灵感'等等都是因懒惰而产生的幻觉。因此,任何一位你眼中的大牛无不是通过了无数次与懒惰的殊死博弈才取得的今天的成就。
因此,你要知道,只有你真正俯下身子去一点点的学习知识,才会使得你离黑客越来越近。但可怕的是,大多数初学者并不懂得这些,他们在内心深处始终都认为有那么一种灵丹妙药可以让他在更短的时间内掌握黑客技术,从而去花费数倍于所谓的'更短时间'的时间去寻求这本就不存在的方法。
因此,学习黑客技术的第二条铁律就是不要抱有任何幻想、任何偷奸取巧,只要你决定这条路是自己去走,那么无论你如何寻找奇技淫巧,最终都不会让你少走半步。
自大、自满、眼高手低皆来源于浮躁,而最致命的是,如今这个社会的整体就是浮躁的。
如果你理解了成长的意义,如果你已坚定信心笃学技术,那么,你还有可能被最后一块石头所绊倒,那就是对自己的耐心。
包括我在内的绝大多数人,在制定目标时都会高估自己的精力、高估自己的效率、高估自己的智商,甚至高估自己对此事的兴趣。
这一系列的高估会在学习后半段严重干扰我们的学习效果,那种现实与理想的差距会导致你对自己能力的认知失调,进而过低的估计自己各方面能力,最终导致失败。
因此,学习黑客技术的第三条铁律就是时刻葆有对低效率的自己的耐心。
想要做任何事情之前,一定要想清楚三个问题,分别是你为什么要做,你愿意为此付出什么,你想要的结果是什么。而所谓的智慧,就是一个人通过这种方式不断的调整自己对于各种事情的预期,从而达到一种与外界的平衡。如果将这个思路映射到黑客学习这件事上,大体可以分为如下三个问题。
说白了就是你的动机是什么,如果你的动机是不可持续的,例如盗个扣(甚至是挖个系统级0Day漏洞),那么我建议你将自己的动机修改为可持续的,例如你想保持一项什么记录(甚至是让其他人更加尊敬你),因为这类动机是在不断变换的,只有这类动机才能让你有一个更加长久的动力源泉,才能促使你坚持的更久,也就能取得更大的成就。
你要清楚的是,任何事情都是有代价的,而且如果你此时的年龄越小,你那么你对'代价'的理解就越不深刻,这点一定要着重加以注意。
黑客技术是一件非常有魅力、非常有价值,同时也是非常酷的一件事,但是这么有魅力的事情,如果你想要完成它,要么需要极佳的运气,要么就是需要你付出非人的努力。
举例来说,最近我们经常看到媒体在报道时说国内某组织的某黑客在几秒内就攻破了IE浏览器,在几秒内就绕过了XX保护机制。但事实的真相是他们其实就是运行了一个自己准备好的代码而已,而媒体上说的这几秒钟的时间其实是代码的运行时间。据我说知,他们在参赛之前,整个团队为了这几秒钟的ShowTime,需要经历至少十余个甚至数十个不眠之夜,然后才能打造出可能仅有几百个字节的艺术品般的代码(也就是Exploit),最后才能拿去现场过五关斩六将。
如果在这个十三亿人口的国度里最牛逼的黑客都需要如此付出,那么作为目前默默无闻的你来说,想要学会这门技术应该需要多少个不眠之夜呢?
信息安全领域的方向太多了,如果最粗旷的分,大致可以分为网络安全、软件安全、基础安全这三类。
包括网络渗透、通讯安全、电信安全等。这部分侧重于协议分析、流量抓包、服务配置以及利用网络层面的漏洞进行防御或攻击。入门通常需要掌握TCP/IP协议栈,熟悉Wireshark等抓包工具,并了解常见的Web漏洞原理。
包括授权控制、漏洞挖掘、加密解密等。这部分侧重于二进制分析、逆向工程、内存破坏漏洞利用等。入门通常需要精通汇编语言和C语言,理解操作系统内核机制,能够使用GDB、IDA Pro等调试分析工具。
分为理论安全、密码学等。这部分侧重于数学基础、算法原理、安全模型构建。这是安全领域的基石,决定了你能否深入理解底层逻辑。
我收到的最多的、也是令我最郁闷的问题就是'你的那幅图我已经看了,但是我想知道我应该怎么学呢?或是从何处开始呢?'是的,你没看错,纵然我这幅图获得了超乎想象的关注,但是仍有很大一部分人似乎并没有因为这个世界上多出这幅珍贵的图而获得什么,他们仍然是迷茫的,当然,这也并不能全怪他们。
所有人的成长都是从知道自己不需要什么东西开始的,举例来说,几乎95%以上的大学生其实根本就不知道自己想要什么,只知道自己不想要什么,这其实就是不成熟的一种表现,用我们那个方言讲就是'青瓜蛋子'。
那么'青瓜蛋子'们最需要的是什么呢?就是前辈们的指导,告诉他们,他们真正的需求是什么,然后他们恍然大悟,似乎这就真的是他们此时所最需要的东西了。
而就大多数事情而言,根本没那么复杂,随意挑选一个你最感兴趣的方向就好了;如果挑不出来,那就随意挑一个你感觉自己最擅长的;如果还挑不出来,那就挑一个你感觉最顺眼的即可。
学习信息安全技术如同做其他事情一样,最终如果你要想有所成就,必然是登上这个领域数座高峰的强者,然而你一开始并不能做到这一点,因此最简单的方法就是随便挑选一座不是太低的山峰蹬一蹬试试看。因为只要你能登上其中的一座山峰,就能一览众山小,就掌握了快速登顶相邻山峰的方法。
学习信息安全技术同样如此,你应该想找一个不是太浅的方向(例如渗透就有些浅)深入研究下去,等你将这个领域彻底研究明白后,其他方向的技术自然就能触类旁通了。
为了帮助你更好地踏上这条道路,这里有一些具体的行动建议:
成为一名安全工程师是一场马拉松,而非百米冲刺。在这个过程中,你会遇到无数的挫折和瓶颈,但只要保持正确的认知,拥有足够的耐心和清晰的规划,你终将达到你想要的高度。愿每一位热爱安全的同行者,都能在这条道路上找到属于自己的价值。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online