如果你立志成为顶级黑客,那么就要不断提升自己的编程内功和招式。以下的方法至少在电子计算机时代是适用的(量子计算机时代还未真正到来)。
我们首先看下编程语言产生的年代,从中我们会得到一些启示。
在此,我选出9个最具代表性的语言供大家参考。
他们产生的具体时间请自行搜索查询,并思考其编程语言产生的原因。
编程进化论:汇编——C——C++——Python——Lua——PHP——Java——JS——Go
经过我7年的实践思考与总结,在这里我就用一句话道破这个编程真经。
机器生汇编,汇编生B,B生C,C生万物!
对于做渗透测试的灰帽黑客来说,你的目标不单单是挖掘到漏洞,你的目标是获取系统的完全控制权。那么有两门
编程语言你必须要掌握,那就是汇编和C。因为Python是C写的,Lua是C写的,PHP也是C写的。C++是对C的拓展,从
本质上来看C和C++是同一个东西,Java是C++的简化版本,并且JVM虚拟机大多是用C和C++写的。现在比较火的
Node.js底层同样是C++写的。Go的早期编译器也是C写的。现在已经是C/C++的世界了。
说这么多语言,其实都是招式,不算是真正的内功。编程其实就相当于说话,你可以会多国语言,但是学多国语言
的目的在于交流,在于表达你的思想。放在编程上,也是同样的道理。
那怎样才能提高自己的编程内功呢?我在这里给出一些秘籍。
速成秘籍: 《深入理解计算机系统》 《TCP/IP详解卷1》 《算法导论》 《深度探索C++对象模型》 《编程之美》
速成之后,如果你想更加深入的学习编程,提高自己的内功,我这里给出一些书单和方向。
内功心法: 1.计算机科学概论 2.计算机数学基础 高等数学 线性代数 离散数学 概率论与数理统计 具体数学 3.C语言 C和指针 C专家编程 C陷阱与缺陷 C标准库 4.数据结构与算法 算法 算法导论 编程珠玑 计算机程序设计艺术卷123 5.电子技术基础 数字电路与模拟电路 6.汇编语言 汇编语言程序设计 黑客反汇编揭秘 7.计算机硬件原理 计算机组成-结构化方法 计算机体系结构 微机原理与接口技术 编程卓越之道 深入理解计算机系统 编码的奥秘 8.数据库系统原理 数据库系统概念 数据库系统导论 数据库系统实现 9.编译原理 编译原理及实践 现代编译原理-C语言实现 高级编译器设计与实现 10.操作系统原理 程序员的自我修养 自己动手写操作系统 现代操作系统 11.计算机网络 TCP/IP详解卷123 12.C++语言 C++ primer C++沉思录 13.STL C++标准程序库 范型编程与STL STL源码剖析 14.JAVA语言 java核心技术卷12 深入理解java虚拟机 java并发编程实战 15.软件工程与面向对象程序设计 C++编程思想 JAVA编程思想 软件工程:实践者的研究方法 敏捷软件开发 代码大全 重构-改善既有代码的设计 程序员修炼之道:从小工到专家 卓有成效的程序员 游戏之旅我的编程感悟 编程高手箴言 大话设计模式 16.windows编程基础 天书夜读:从汇编语言到windows内核 windows核心编程 17.unix编程基础 鸟哥的私房菜 unix环境高级编程 unix网络编程卷12 unix编程艺术 unixshell范例精解 18.linux内核与驱动程序 linux内核源码情景分析 深入理解linux内核 linux设备驱动程序 19.计算机图形学
当然,如果你立志成为一名顶级黑客,那么我这里还有几本书可以推荐给你。
逆向工程:
《逆向工程核心原理》、《Android软件安全与逆向分析》、《IDA Pro权威指南》 密码学:
《应用密码学》、《深入浅出密码学》、《Python密码学编程》 ACM编程:
《算法竞赛入门经典》、《挑战程序设计竞赛》、《Python算法教程》 Web安全:
《黑客攻防技术宝典:Web实战篇》、《白帽子讲Web安全》、《Web前端黑客技术揭秘》 二进制:
《黑客攻防技术宝典:系统实战篇》、《黑客之道:漏洞发掘的艺术》、《0day安全》 网络与取证:
《黑客大追踪》、《Wireshark数据包分析实战》、《Wireshark网络分析的艺术》