Windows加载dll的特性
1、Windows系统中,每个exe软件运行的时候,会加载系统模块kernel32.dll
2、所有加载进exe软件的系统模块kernel32.dll,内存地址都是一样
3、kernel32.dll中的LoadLibrary()函数用于加别载的dll
4、dll内的函数相对dll模块的地址不变(偏移不变)
注入dll工具的原理
1、获取目标进程的句柄
2、通过句柄,在目标进程的内存里开辟空间
3、把dll的路径写入到目标进程开辟的内存空间
4、创建一个远程线程,让目标进程调用LoadLibrary
5、释放目标进程开辟的内存空间
参考资料
https://www.cnblogs.com/codex/p/10849200.html
源码: https://github.com/KongKong20/WeChatPCHook