2014-04-29 2 views
-1

에서 프로세스를 만들 수있는 방법은 CreateFile()입니까?경로에서가 아니라 핸들에서 CreateProcess

CreateProcess() 기능은 파일의 경로에서 프로세스를 생성 할 수 있고, 나는 File Handle

편집에서 프로세스를 생성 할 수있는 방법을 찾을 수 없습니다 : 나는 File Handle에서 직접 프로세스를 만들어야합니다 . 경로에서 프로세스를 만들 수 없습니다.

+1

파일 핸들에서 파일 이름을 가져올 수 있습니다. 핸들을 사용하여 프로세스를 만들어야하는 이유가 있습니까? – shf301

+0

예. 파일 핸들에서 직접 프로세스를 생성해야합니다. 덕분에 경로를 만들 수 없습니다. – user1438233

답변

4

아니요, 파일 핸들에서 직접 프로세스를 만들 수 없습니다. 그러나 GetFinalPathNameByHandle을 사용하여 핸들에서 파일 경로를 가져온 다음 경로에서 CreateProcess를 사용할 수 있습니다.

참고 GetFilePathNameByHandle의 API 비스타 & 최대에서만 사용할 수 있도록 당신이 창의력을 ..해야합니다 이전 운영 체제를 지원하려는 경우 : 자세한 내용은 this article를 참조하십시오.

+0

감사합니다. 그러나 File Handle – user1438233

+0

@ user1438233에서 직접 프로세스를 생성해야합니다. CreateProcess API가 핸들을 사용하지 않는 것을 볼 수 있습니다. 그것은 경로를 취합니다. 핸들에서 경로를 가져 오는 방법이 있지만 핸들에 CreateProcess를 호출 할 수있는 방법은 없습니다. forumlated 귀하의 질문에 대한 답변은 "아니오"입니다. –

+0

@ user1438233 순수한 호기심에서 -이 간접적 인 방법을 사용하지 못하게하려는 것은 무엇입니까? –

1

http://pastebin.com/WvWABiRu 당신을 도울 수 있습니다. 네이티브 API (NtCreateProcess)를 살펴보면 파일 핸들 만 필요합니다 .RtlCreateProcessParameters afaik에 임의의 경로를 지정할 수 있습니다. 그러나 실제로 프로세스를 실행하려면 많은 작업을해야합니다.