第一章 反汇编简介

编程语言有四代
1.第一代,由0,1组成的机器语言,也被称为字节码,机器语言程序又被称为二进制文件。
2.第二代,汇编语言。
3.第三代,例如C,Java的语言。
4.第四代,四代语言的特征是完成一个任务你仅要告诉计算机你要做什么,不需要告诉计算机如何一步一步的做,如SQL。


反汇编是一件十分困难的事情
1.编译过程会造成损失。因为机器语言中没有变量,函数名。只有对数据进行分析才能确定数据的类型。
2.编译一个文件,并立即进行反编译也可能得到与输入时截然不同的程序。
3.反编译器特别依赖语言和库,例如用C代码的反编译器处理其他语言会出现奇怪的事情。
4.一点点的错误都会导致反编译的代码出现问题。


分析软件的方法有两种:
1.静态分析,通过浏览程序代码来理解程序的行为。
2.动态分析,在严格控制的环境中执行程序,并使用系统监测工具记录程序的行为。


使用反汇编器时,没有必要深入了解反汇编算法,不过了解它会有很多好处,IDA的优点之一是有大量的机会来指导和推翻IDA的默认决定来反映出最后准确的反汇编。

相关推荐