1:..NET平台的认识
它是架构在操作系统上的平台,是一种虚拟机,相当于JAVA中的JVM.它具有以下三种特性.
A:统一了编程语言.
与.NET相容的语言最终编辑为微软中间语言MSIL(简称IL).方便了软件的逆向.这样就可以只要一种反编译器.
B:扩展了PE文件的格式.
可执行文件中不再保存机器码,而是IL指令和元数据,部分PE结构被扩展用于保存.NET的相关信息.
C:改变了程序的运行方式
Windows不再直接负责程序的运行,而是由.NET框架直接负责管理.JIT引擎负责把IL即时编辑为本地汇编代码执行.
2->MSIL:微软中间语言MicroSoft Intermediate Language. IL是.net平台唯一能识别的语言,编辑时,各种高级语言都会编辑成IL并保存在PE文件中.(说明.IL其实相当于高级语言,它支持面向对象,运行完全由
.NET监控,因些IL属于托管代码).
3->元数据:描述.NET运行时所必须的一切信息的数据.包括版本,类型成员等,可执行的.NET程序必须包含有正确的元数据定义.元数据是由编辑器根据源代码生成的,在程序的运行中又反过来约束代码的执行.
4àJIT(Just-In-Time).即时编辑,也叫做按需编辑,JIT编辑器的任务,把MSIL编译为专用于OS和目标机器结构的本机代码.
5->CLR(Common Language Runtime)公共语言运行时.是.NET框架的核心内容之一,它包括:面向对象编程模型,安全模型,类型系统(CTS),所有的.NET基类,程序执行及代码管理.CLR是托管程序运行的环境就像Windons是普通PE程序的运行环境一样.
6---à程序集:在编辑应用程序时扫创建的MSIL代码存储在一个程序集中,程序集包括可执行的应用程序文件(这些文件可以直接在Windons下运行,不要其他的程序,其扩展名是.exe).和其他应用程序使用的库(其扩展名为.DLL). 除了MSIL外,程序集还包括了元数据和可选的资源.
小结一下.NET中运行程序的过程
A. 把代码编辑成IL,并存储在程序集中,
B. 在执行代码时(如果这是一个PE,就自动运行,或者在其他代码使用它时才运行.),首先必须使用JIT编译器将代码编译成本机代码.
C. 在托管的CLR运行环境中运行本机代码,以及其他应用程序或过程
2009-12-22