내가 하고싶은거는 특정 프로세스의 핸들 몇개를 닫아버리는거임
지금은 아래 적어논 것처럼 핸들 이름을 직접 적어서 검색결과에서 찾아가지고 닫고 있는데
ㄴ if (wcscmp(objectName.Buffer, L"\\Sessions\\1\\BaseNamedObjects\\SM0:12324:304\\대충핸들이름") == 0)
이렇게 하면 어차피 프로세스에서 매번 열리는 핸들 이름은 바뀌지 않는다면 문제가 없음
근데 이름 뒤 숫자가 바뀌는 핸들이 있어서
이거를 어떻게 찾느냐 이거임
예를들면 지금은 핸들이름이 핸들이름_99999999 이라면 재부팅 후에는 뒷 숫자 8자리가 랜덤으로 바뀌어있음
윈도우 오브젝트는 이름으로 판단하게 아닌데 왜 이름으로 판단하려고 했음? 프로세스 내 핸들이 기본적으로 1000개 이상 나올텐데 무슨 핸들을 찾을려고 하는건지 뭘 하고 싶은건지 이해가 안되는데
그럼 뭘로판단해? 다른게 안떠오르는데 뭘 하고싶은건지는 본문에 써놨는데..
보니까 mutant handle 뒤에 PID는 부모 프로세스 PID 16진수네 tlhelp32 써서 ppid 가져와서 넣어보셈
프로세스 내의 "어떤" 핸들을 "왜" 없애려는지 이해가 안간다고 핸들 하나 잘못 건드리면 익스큐티브가 죽일 수 있는데
예시를 8자리 숫자로 썼지만 실제로는 9자리야.. 16진수 아닌것같은데
이 핸들을 종료하면 프로세스에 연결된 서버와 연결이 끊어지는데 프로그램은 정상 작동함
오브젝트 타입마다 명명 방식이 다 다른데 뭘 죽일려고 하는지부터 정해야지 무슨 타입인질 말해야 나도 찾아 볼 수 있어
타입은 mutant
모든 mutant 타입을 죽이지는 않을텐데 비교하려는 이름이 저 경로인 이유가 있어?
프로세스 내 핸들을 이름으로 찾아서 그 이름이 맞으면 그 이름의 mutant만 닫아버리게 작성했어
그런데 이름 뒤 숫자 9자리가 매번 바뀌는 mutant 타입의 핸들이 있으니 이걸 어떻게 해야하는지를 물어보는 거였는데.. 내가 글을 잘 못쓰나봄..
아니, 난 너가 뭔가 알려주기 싫어하는 듯한 느낌을 받는데// 예를 들어 내가 어떤 프로세스를 죽일려 해 그 프로세스 이름은 notepad.exe야. 왜 notepad.exe냐면 가장 접근하기 쉬운 프로세스여서 타겟을 그것으로 잡았음. 이렇게 설명을 해줘야 하는데, // 너가 mutant 타입의 핸들 이름을 대조해서 찾을려 해, 근데 이것은 재부팅할 때 마다 이름 마지막이 바뀌어, 그래서 난 왜 이름이 그거 인질 묻는거야 mutant 타입도 꽤 많아서 내 컴퓨터에서 하나씪 실험 해볼려면 자세히 알아야하는데 단적인 정보만으로는 찾기가 힘들어
너가 기대하는 효과를 지닌 mutant 오브젝트는 해당 경로에 있는 이름 아니면 효과가 없는건지, 아니면 다른 뮤턴트 오브젝트를 죽여도 같은 효과를 보는건지, 전자면 어디서, 그 이름을 추출했는지 간단하게 알려줘야 나도 찾아보지 만약 이게 제로데이 찾는거면 말 안해주는게 낫고
일단 전자고 제로데이는 아니야 어디서 추출했냐면 프로세스해커에서 프로세스 속성 창에 handle 탭에서 바로 나옴 기존까지는 프로세스해커로 종료시켰는데 매번 하는게 귀찮아서
https://stackoverflow.com/questions/6808831/delete-a-mutex-from-another-process
나도 이거랑 비슷하게 작성했고.. 내가 물어보는 문제는 저 소스코드에서 적힌 String MutexName 의 이름이 매번 바뀌면 어떻게 지정해주느냐 였음..
드디어 원하는걸 답변해줬네.. 저거 이름 대조할 때 \\SM0:12324:304\\ 이 경로인것만 해당하는거지?
ㅇㅇ
직접 가져오는 API는 winobj 소스를 봐야겠는데 이걸 하기엔 지금은 무리고 \\SM0:12324:304\\ 해당 경로인 mutant 타입의 오브젝트가 많음? 난 해당경로가 존재하지 않아서 실험 할 수가 없네
20ㅓ개도 안됨
해당 경로가 없어서 더 추측할 수가 없어 windbg로 해당 프로세스 오브젝트 리스트 열어서 니가 원하는 오브젝트 분석하는게 빠를 듯
object manager가 이름 명명한다는데 그럼 추측도 힘들어지고, 해당 이름의 경로가 왜 그거인지 말을 안해줘서 내 컴은 다른 경로인지 찾을 수 도 없음 windbg로 하나씩 다 까봐