4. PE加载器

步骤:

1. 链接选项设置基地址为目标PE的基地址,例如/BASE:0x01000000

2. 从目标PE文件中分析出SizeOfImage,并在自己程序的.code段预留足够的空间,用来把目标程序的代码映射过来

2.1 汇编代码可用org 01000000h预留空间,相当于byte 01000000 dup(0),org指令会将内存设为0

3. 判断目标是否为PE文件

4. 将目标PE映射到准备好的地址中

4.1 调用msvcrt.lib库中的crt_memcpy是动态的,实现代码在msvcrt.dll中

  1. 处理导入表,将IAT地址填好
  2. 转到目标PE的AddressOfEntryPoint,开始执行目标PE的代码
posted @ 2020-11-03 21:09  八转达人  阅读(185)  评论(0编辑  收藏  举报