HANDLE CreateRemoteThread(
HANDLE hProcess,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId
);
CreateThread함수와 작동하는 방법은 같다. 하지만
특정 프로세스의 주소 영역내에 있는 스레드를 생성시킬수 있는 함수이다.
첫번째 인자로 hProcess를 전달하는 것을 보면 알수있다.
하지만 해당 메모리 주소가 READ/WRITE가 가능한 영역이어야 한다.
hProcess : 대상 핸들
lpThreadAttributes : 핸들 상속 여부
dwStackSize : 할당할 스택 크기, 0을 주면 기본할당(1MB) (너무 작은 사이즈 요구시 그냥 1MB로 해버림)
lpStartAddress : 생성시킬 스레드의 시작 주소
lpParameter : 스레드에 넘겨질 인자
dwCreationFlags : 스레드의 생성 및 실행을 조절하기 위해 사용되는 전달인자
0 -> 생성과 동시에 실행상태
CREATE_SUSPENDED -> 생성과 동시에 Blocked상태 ( ResumThread가 호출되면 실행을 시작 )
lpThreadId : 스레드 ID를 전달받기 위한 변수의 주소값 전달. 굳이 필요 없다면 NULL
HANDLE hProcess,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId
);
CreateThread함수와 작동하는 방법은 같다. 하지만
특정 프로세스의 주소 영역내에 있는 스레드를 생성시킬수 있는 함수이다.
첫번째 인자로 hProcess를 전달하는 것을 보면 알수있다.
하지만 해당 메모리 주소가 READ/WRITE가 가능한 영역이어야 한다.
hProcess : 대상 핸들
lpThreadAttributes : 핸들 상속 여부
dwStackSize : 할당할 스택 크기, 0을 주면 기본할당(1MB) (너무 작은 사이즈 요구시 그냥 1MB로 해버림)
lpStartAddress : 생성시킬 스레드의 시작 주소
lpParameter : 스레드에 넘겨질 인자
dwCreationFlags : 스레드의 생성 및 실행을 조절하기 위해 사용되는 전달인자
0 -> 생성과 동시에 실행상태
CREATE_SUSPENDED -> 생성과 동시에 Blocked상태 ( ResumThread가 호출되면 실행을 시작 )
lpThreadId : 스레드 ID를 전달받기 위한 변수의 주소값 전달. 굳이 필요 없다면 NULL
'My Study > Function' 카테고리의 다른 글
WaitForDebugEvent (0) | 2010.04.12 |
---|---|
DebugActiveProcess (0) | 2010.04.12 |
VirtualAllocEx (0) | 2010.04.12 |
timeSetEvent (0) | 2010.03.10 |
FindNextFile (2) | 2010.02.25 |