|
안녕하세요 프로세스를 서스펜드 하다가
의문점이 생겨서 질문드립니다.
예전에는 프로세스랑 쓰레드 둘다 스냅샷을 찍어서 pid 동일한거 찾은다음
쓰레드를 SuspendThread 시켰는데 이 방식이 불안정(?) 하다는 말을 들어서
NtSuspendProcess 함수를 써서 서스펜드 시키게 됬습니다
문제는 기존 함수였던 SuspendThread / ResumeThread 함수들은 리턴값으로 서스펜드 카운트를 반환해서
몇번 서스펜드 명령이 있었는지를 보고 그만큼 Resume 을줬었는데
NtSuspendProcess 함수는 그런걸 반환안하더라구요 그냥 반환값 무조건 0;
그래서인지 서스펜드를 여러번 시켜서 서스펜드 카운트는 쌓였는데 Resume 은 한번만 줘서
프로그램이 정상작동을 하지 않는등의 문제가 생깁니다.
NtSuspendProcess 함수로 서스펜드 카운트를 받는 방법이 있을까요?
그리고 NtSuspendProcess 랑 SuspendThread 랑 무슨 차이가 있나요?
|