DLL系列---关于Dll注入概论
在Windows系统中每个进程都拥有自己的私有进程空间,当用指针来引用内存时只能是自己4Gb的进程空间中的一个地址,这样的好处就是当一个进程存在缺陷时不会影响其他进程同时极大的加强了系统的安全性。但是这样就很难形成进程之间的相互通信(如想要从一个进程窗口派生出子类窗口、辅助调试、给进程安装挂钩)。这里就提供了一种进程相互通信的方式,将一个dll注入到另一个进程地址空间中,这样通过这个dll就能实现很多操作了。
1.使用注册表注入dll
在注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
在AppInit_DLLs键值设置为我们想要被加载的dll绝对路径并将键值LoadAppInit_DLLs置为1(即启用初始化dll加载)。这样当程序需要调用User32.dll时都会取得该注册表值则就会加载我们的dll(因为每个进程均会加载User32.dll则我们写入注册表中的dll将被加载到每个进程空间)。