2012-06-11 4 views
3

CreateRemoteThread 함수의 LPVOID lpParameter 매개 변수에 대해 궁금합니다. 프로세스는 메모리를 공유하지 않기 때문에 원격 스레드는 프로세스의 구조체에 액세스 할 수 없습니다. 따라서 함수는 매개 변수를 복사하여 자체적으로 관리합니까 아니면 VirtualAllocEx과 함께 메모리를 할당해야하며 WriteProcessMemory을 호출하여 실제로 구조체를 원격 프로세스에 복사해야합니까?CreateRemoteThread : Memory Managment

답변

2

CreateRemoteThreadlpParameter의 자동 관리를 수행하지 않습니다. 당신이 정확하다면 개발자가 대상 프로세스의 컨텍스트에서 lpParameter이 유효한 포인터인지 확인해야합니다. VirtualAllocExWriteProcessMemory은 확실히 그렇게 할 수있는 옵션입니다.

+0

매개 변수가 실제로 포인터 일 필요는 없습니다. 단일 매개 변수를 전달하기 만하면 (그리고 적합 할 것입니다) LPVOID로 캐스팅하고 다시 되돌릴 수 있습니다. DuplicateHandle을 사용하여 복사 한 핸들을 대상 프로세스에 전달할 수 있습니다. –