逆向工厂(一):从hello world开始

江枫思渺然 提交于 2019-11-30 17:24:53

前言

从本篇起,逆向工厂带大家从程序起源讲起,领略计算机程序逆向技术,了解程序的运行机制,逆向通用技术手段和软件保护技术,更加深入地去探索逆向的魅力。

一、程序如何诞生?

Clipboard Image.png

1951年4月开始在英国牛津郡哈维尔原子能研究基地正式投入使用的英国数字计算机“哈维尔·德卡特伦”,是当时世界上仅有的十几台电脑之一。图中两人手持的“纸带”即是早期的程序,纸带通过是否穿孔记录1或0,而这些正好对应电子器件的开关状态,这便是机器码,是一种早期计算机程序的存储形式。 

Clipboard Image.png

计算机程序是用来实现某特定目标功能,所以需要将人类思维转换为计算机可识别的语言,从人类语言到电子器件开关的闭合,这中间的媒介便是“编程语言”。

“编程语言”大致分为三类:

1、机器语言,又称机器码、原生码,电脑CPU可直接解读,因该语言与运行平台密切相关,故通用性很差,上面提到的利用卡带记录的便属于该类语言;

2、汇编语言,是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在不同的设备中,汇编语言对应着不同的机器语言指令集, 运行时按照设备对应的机器码指令进行转换,所以汇编语言可移植性也较差;

Clipboard Image.png

3、高级语言,与前两种语言相比,该类语言高度抽象封装,语法结构更接近人类语言,逻辑也与人类思维逻辑相似,因此具有较高的可读性和编程效率。但是高级语言与汇编语言相比,因编译生成的辅助代码较多,使运行速度相对“较慢”。 java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易语言等等 均属于高级语言。

学会编程语言各种基本语义语法后,就可以实战了,而实战场所由IDE提供。IDE(集成开发环境Integrated Development Environment)是用于提供程序开发环境的应用程序,目前IDE的种类繁多,不再敖述,只要自己用得顺手、开发效率高、你开心就好。

http://www.freebuf.com/special/114231.html

另外可以参考逆向工程系列 http://www.freebuf.com/news/others/86147.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!