2009-06-02 9 views
0

메모장의 프로세스 부모가 내 자신의 AP 인 경우 CreateProcess를 사용하여 Execute Notepad.exe를 실행하고 있습니다. 내 AP를 닫을 때 메모장의 프로세스 부모는 탐색자가되었습니다. 탐색기를이 새로운 열린 프로세스의 프로세스 부모로 두려면 어떻게해야합니까?프로세스의 프로세스 부모를 explorer.exe로 변경

답변

0

바로 부모 프로세스로 explorer.exe를 설정하는 방법은 없습니다. 그러나, 내가 할 수있는 말을하면 p/invoke를 사용하여이를 수행하기위한 호출을 할 수 있습니다.

여기에 p/invoke를 사용하여 다른 사용자로 시작하는 구현에 대한 an article입니다. 이것은 당신에게 p/invoke 프로세스에 대한 소개를 얻습니다. 그런 다음 여기에 an article으로 비 - 자식 프로세스 시작에 대해 이야기합니다. 두 가지 정보를 결합하여 원하는 목표를 달성 할 수 있습니다.

3

이 질문은 의미가 없습니다. Windows는 다른 OS와 같은 방식으로 프로세스간에 실제 상위 하위 관계를 갖고 있지 않습니다. 부수적으로, 시작 프로세스에 대한 일부 구성은 유지되지만 CreateProcess 실행 코드 외부에서는 부모 프로세스의 핸들과 환경을 복제하므로 프로세스 간에는 특별한 관계가 없습니다. 그들은 완전히 독립적으로 동료로서 운영됩니다.

일부 작업 관리자는 부모 자식 관계가 유지된다는 암시적인 관계를 보여 주지만 궁극적으로는 프로세스 생성 정보 목록을 검색하여 다른 프로세스가 작성자 및 따라서 부모임을 암시하는 일치 항목을 찾을 수 있습니다.

3

CreateRemoteThread()를 사용하여 explorer.exe의 주소 공간 (실행중인 경우)에 새 스레드를 만들고 스레드가 메모장을 시작하도록하십시오.

+1

CreateRemoteThread는 고객/사용자에게 나쁜 일이 발생하는 확실한 방법입니다. 옳다는 것은 매우 어렵습니다. –

+0

2 Paul : 원격 스레드를 만드는 것이 옳은 대답입니다. 코드 주입의 모든 기술 (예 : 후크)은 이러한 종류의 질문에 대한 올바른 대답 일 것입니다. 정답을 탓하지 말고, "틀린"과 "해킹"을 탓해야합니다. – Andrey

관련 문제