大概思路是这样的:要注入一个dll文件,也就是需要修改输入表的中的IMPORT Directory Table结构,需要增加一个对应的结构体和该结构对应的IMAGE_IMPORT_DESCRIPTO和对输入表的size进行修改。所以我们只需要在原先的结构体数组后面增加对应的就够就行了,但是有时候往往在这些数据之后存在其他的数据,我们进行添加会对其进行覆盖,这是我们不想看到的。因此我们可选择考虑将整个IDT进行移动(因为节对齐的原因,会有大片的空白,可以进行修改,但需要保证所在节具有可写的属性,若不存足够得地方进行覆盖,那么就需要再新建一个节了),如果进行移动,那么同时还得修改输入表的RVA地址
1.进行dll文件编写
我们编写一个弹出messagebox的dll文件
// messdll.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "windows.h"
__declspec(dllexport) void PrintNum()
{
for(int i=