2013-09-07 4 views
-5

나는 지루하고 앉아서이 생각을 생각하고 있었다. WM_DESTROY 코드를 변경하여 응용 프로그램을 닫지 않고 다른 작업을 수행 할 수 있습니까? 그러나이 방법이 효과가 있다고 생각하지는 않지만 Windows의 작업 관리자에서 응용 프로그램을 닫으려고하면 닫히지 않습니다. 또한 작업 관리자에서 내 응용 프로그램을 제거하여 처음부터 그렇게 할 수없는 방법이 있습니까? 그래서, 이것이 가능합니까? 아니면 더 좋은 방법이 있습니까? 나는 이것을 봤고 이것을 시도했지만이 질문에 답하기 위해 여기서 경험이있는 사람에게 물어보고 싶다.Uncloseable Application

나는 현재 바이러스를 만들고 있지 않습니다.

+3

잘 행동하는 응용 프로그램은 당신이 제안한 것을하고 싶지 않습니다. 바이러스를 작성하지 않았을 수도 있지만 좋은 관행에 관한 한 귀하의 요청이 더 이상 합법적 인 것은 아닙니다. – syam

+0

@syam 가능한 경우 방황했습니다. 나는 그것을 사용하기를 원한다면 그것을 사용하는 것에 대한 아이디어가 정말로 없다. – cplusplus

+0

@ 누가 먼저 코멘트를 upvoted - 내 위의 의견을 읽어보십시오. – cplusplus

답변

1

Windows 작업 관리자는 TerminateProcess을 사용하여 프로세스를 "종료"합니다. 프로그램이 실수로 또는 의도적으로 깨진 VM_DESTROY 처리기를 가지고있는 경우에는 좋은 방법입니다.

프로세스를 숨기는 프로세스 목록을 엉망으로 만드는 방법이 있습니다. 그러나 나는 이것이 프로세스리스트가 링크 된리스트이고리스트에서 프로세스의 "링크 해제"를 할 수 있으며 그것이 사라지는 것을 본질적으로 어떻게하는지 잘 모른다. 분명히 그렇게하는 것은 바이러스, 트로이 목마, 스파이웨어 등이하는 일종의 유형 일 것이고 합법적 인 애플리케이션에서 그렇게하고 싶지 않은 이유는 없습니다.

편집 : 응용 프로그램을 숨기는 것은 작업 관리자의 프로세스 목록에 나타나지 않는다는 것을 의미합니다. 작업이 존재한다는 것을 알고 있으면 (예를 들어 시스템 활동이나 그와 같은 것을 기반으로 "추측"할 수 있음) 프로세스를 종료 할 충분한 권한이있는 일부 응용 프로그램의 프로세스 ID를 사용하여 여전히 종료 될 수 있습니다.

+0

나는 루트 킷 (rootkit)이라고 부르기도하지만, 나는 그 용어들에 대해서 단정 짓을하고있다. ;) +1 – syam

+0

나는 정말로 이유가 없거나 갈 예정이다. 가능한지를 알고 싶었습니다. – cplusplus

+1

@cplusplus 좋습니다, 당신이 정말로 나쁜 의도가 없다고 가정하겠습니다. 나는 베타 테스터들이하는 것처럼 시스템을 깨는 방법을 이해하는 즐거움을 이해할 수 있지만, 당신이 얻는 경계 반응에 놀라지 마십시오. 그런 질문을하는 것은 화학 선생에게 질산과 글리세린을 섞을 때 어떤 일이 생길지 물어 보는 것과 같습니다. –

0

win32 api 데모를 읽으십시오. mainwindow가 WM_DESTROY 메시지를 받으면 postquitmessage ([exitcode])를 호출하여 메시지 루프를 끝내십시오.

+0

하지만 Windows가 프로세스를 종료하지는 않습니다. –