2013-08-12 7 views
1

저는이 문제를 생각한 실험으로 남겨두고 싶습니다 (채팅에 대해 질문했지만 여기로 안내했습니다). 그러나 도움이된다면 코드를 제공 할 수 있습니다. 여기 시나리오가 있습니다!DebugActiveProcess 또는 다른 디버깅 루틴을 종료하십시오.

프로세스 1이 실행 중이고 지속적으로 프로세스 2를 디버깅 할 때 프로세스 2에 DLL을 삽입하고 의존하는 Windows 기능 중 하나를 우회하여 내 코드를 실행할 수 있습니다. 프로세스 2에서 프로세스 2가 프로세스 2를 계속 디버깅하지 못하게 할 수있는 방법이 있습니까?

+0

있다 [DebugActiveProcessStop (HTTP : // MSDN microsoft.com/ko-us/library/ms679296 % 28v = vs.85 % 29.aspx)하지만 디버거 내에서 호출해야한다고 생각하므로 사용자 지정 메시지 처리기 나 사용할 수있는 것이 필요합니다. 분리 요청. –

답변

0

나는 당신이 "디버그 방지"에 대해 무엇을 의미하는지 모른다.

당신은 어떤 이벤트가

push 0 
push 0 
push 11h ;ThreadHideFromDebugger 
push -2 ;GetCurrentThread() // you can use it on every thread 
call NtSetInformationThread 

참조 NtSetInformationThread

를 사용하여 프로세스와 관련된 받아 봐하는 debbuger을 피할 수 : 피터 Ferrie 안티 디버깅 트릭 http://pferrie.host22.com/papers/antidebug.pdf

+0

디버깅을 방지함으로써, 나는 말 그대로 다른 프로세스 (프로세스 1)를 디버깅 (프로세스 2)에서 중단시키는 것을 의미했습니다. 어쩌면 디버그 privledges가있는 새 스레드를 만들고 다른 프로세스가 "디버그 모드에서 시작"되도록 디버깅을 시작할 수 있습니다. 그러나 나는 제대로 작동하지 않을 것이라고 확신합니다. – SullX