



在阅读这部分代码之前,如果读者尚不熟悉PE 文件格式,可参阅本书附录A。osloader.exe是标准的PE文件,在运行前,必须按照标准格式加载进内存。osloader.exe文件在编译链接时嵌套在startup.com末尾,所以解析时只需定位到startup.com的结尾,即osloader.exe文件的开始。首先需要解析osloader.exe文件头,然后按内存对齐值复制各个段,复制完成后返回osloader.exe映像代码入口。下面先从C语言代码了解设计的思想:
   
   接下来我们看一下对应的汇编代码:
   
   
   
   
   在上述汇编代码中可以看到,为了复制数据,我们调用了一个memove函数,那么memove函数是如何实现的呢?现在就来看一下。