3
我想知道CreateRemoteThread函数的LPVOID lpParameter
参数。由于进程不共享内存,因此远程线程无法访问我们进程中的结构。那么,该函数是否会复制参数并通过它自己来管理它,或者我们是否需要用VirtualAllocEx分配内存,然后调用WriteProcessMemory来实际将结构复制到远程进程?CreateRemoteThread:内存管理
我想知道CreateRemoteThread函数的LPVOID lpParameter
参数。由于进程不共享内存,因此远程线程无法访问我们进程中的结构。那么,该函数是否会复制参数并通过它自己来管理它,或者我们是否需要用VirtualAllocEx分配内存,然后调用WriteProcessMemory来实际将结构复制到远程进程?CreateRemoteThread:内存管理
CreateRemoteThread
不会自动管理lpParameter
。你是对的,开发者应该确保lpParameter
是目标进程上下文中的有效指针。 VirtualAllocEx
和WriteProcessMemory
绝对是这样做的选择。
还要注意,该参数实际上并不一定是一个指针。如果您只需传递一个参数(并且它将适合),则可以将其转换为LPVOID并返回。一个示例可能是使用DuplicateHandle将已复制的句柄传递给目标进程。 –