也就是pe_image_match和pe_image_load_pe_data函数,一个是判断是否匹配PE文件格式,一个是加载PE文件头的信息,它是为了获取后面的信息为铺垫。由于虚拟地址是加载到内存运行的地址,与文件保存在磁盘里的地址不一样,这里是使用文件加载的,所以需要使用文件地址来访问。而在这里加载头部数据,需要根据前面的头部目录项里找到相对地址,再根据段表里找到段的开始地址,才能计算出来相对文件开始位置地址。也就是说这段在文件里的开始位置为512字节的位置,不是执行时加载的虚拟地址8192。