3
我想知道CreateRemoteThread函數的LPVOID lpParameter
參數。由於進程不共享內存,因此遠程線程無法訪問我們進程中的結構。那麼,該函數是否會複製參數並通過它自己來管理它,或者我們是否需要用VirtualAllocEx分配內存,然後調用WriteProcessMemory來實際將結構複製到遠程進程?CreateRemoteThread:內存管理
我想知道CreateRemoteThread函數的LPVOID lpParameter
參數。由於進程不共享內存,因此遠程線程無法訪問我們進程中的結構。那麼,該函數是否會複製參數並通過它自己來管理它,或者我們是否需要用VirtualAllocEx分配內存,然後調用WriteProcessMemory來實際將結構複製到遠程進程?CreateRemoteThread:內存管理
CreateRemoteThread
不會自動管理lpParameter
。你是對的,開發者應該確保lpParameter
是目標進程上下文中的有效指針。 VirtualAllocEx
和WriteProcessMemory
絕對是這樣做的選擇。
還要注意,該參數實際上並不一定是一個指針。如果您只需傳遞一個參數(並且它將適合),則可以將其轉換爲LPVOID並返回。一個示例可能是使用DuplicateHandle將已複製的句柄傳遞給目標進程。 –