注入的DLL在哪里驻留在内存中?
我对DLL的理解是它们在物理内存中加载一次,这样多个文件就可以使用它们的功能,从而通过将可重用代码加载一次而不是在每个进程中来节省资源。 DLL的函数位于进程的地址空间之外,可以通过堆和堆栈段之间的内存映射段找到。对于每个进程,内存映射段位于不同的虚拟地址,但是内存映射的段指向的库/函数必须位于每个进程的相同地址,否则它们不能在进程之间共享(假设我对此有所了解)都是正确的。)
因此,当说DLL被加载到进程的地址空间时,它是否被加载到该进程的内存中,或者系统中的其他位置,并且进程会添加到内存映射中以找到它?那么,是什么允许注入的库从一个进程迁移到另一个进程?