9.2.3
IL以元数据为操作对象,同时本身的执行又收到元数据的限定,元数据在IL中通过token引用和定位,token是元数据项的唯一标识
从PE结构看,签名(signature)就是在存储在#Blob中的一段二进制数据,作用是描述特定元数据的性质
9.4.1强名称
。Net提供了一种验证机制,用于标识版本和原作者
最初目的用于版本控制和代码完整性校验
9.4.2名称混淆
最简单原理就是改变PE文件中#String流的数据
流程混淆(打乱程序流程)
分为:
(方法或)类级别的混淆
IL代码限制的混淆
10.1.1
当PE文件通过windows加载被装入内存后,内存中的版本被称作模块,映射文件的起始地址被称作模块句柄(hModule),可以通过其访问其他数据结构,这个初始内存地址成为基地址
内存中的模块代表着进程从这个于执行文件中所需要的代码、数据、资源、输入表、输出表及其他有用的数据结构所使用的内存都放在一个连续的内存块中
10.1.2
装入地址等同于模块句柄
虚拟地址=基地址+相对虚拟地址
10.1.3
当PE文件储存在磁盘上时,某个数据的位置相对于文件头的偏移量,称为文件偏移地址(File offset)或物理地址(RAM offset)
windows程序的各种界面称为资源,包括加速键、位图、光标、对话柄、图标、菜单、串表、工具栏、版本信息等