2013-08-05 1 views
0

내 사용자 정의 파일 용 아이콘 처리기가 있습니다. explorer.exe 스레드 만 호출 할 수 있도록 아이콘 처리기 기능을 어떻게 제한 할 수 있습니까?특정 프로세스에서 액세스 할 수있는 아이콘 처리기를 제한하는 방법은 무엇입니까?

+0

왜이 작업을 수행 하시겠습니까? –

+0

내 아치 결함으로. explorer.exe 이외의 프로세스에서 오는 스레드에서 내 파일을 읽거나 쓸 수 없습니다. –

답변

2

글쎄, GetModuleFileName(NULL)을 사용하여 처리기가로드 된 EXE를 찾을 수 있습니다. 당신은 COM 메소드에서 그것을 할 수있다. (만약 잘못된 프로세스라고 생각된다면 E_FAIL을 반환한다.) DllMain으로 처리기가로드되지 않도록한다.

그러나 왜 이렇게하고 싶은지 확실하지 않습니다. 예를 들어 아이콘 처리기는 모든 응용 프로그램의 표준 파일 열기 대화 상자에서 사용됩니다. 거기에 아이콘이 나타나기를 원하지 않습니까?

보안 조치로 생각하면 매우 잘 작동하지 않습니다. 결정된 공격자는 자신의 셸 확장을 작성하고 Explorer에로드 한 다음 거기에서 핸들러에 액세스합니다.

+0

감사합니다! 그것은 작동합니다. 나는 또한 동일한 제안을 여기에서 찾아 냈다 http://www.codeproject.com/Articles/8027/Restricting-DLL-loading. 내가 explorer.exe에서 오는 스레드에서 내 사용자 지정 파일의 읽기/쓰기를 관리 할 수 ​​있기 때문에이 작업을 수행하려고합니다. 표준 Open File 대화 상자와 같은 다른 프로세스에서 오는 스레드는 교착 상태를 만듭니다. 예, 해당 대화 상자에서 올바른 아이콘을 볼 수 없습니다. –

+2

익스플로러 밖에서의 사용을 막는 교착 상태 및 기타 결함을 수정하는 것이 더 생산적 일 수 있다고 생각합니다. – Medinoc

+0

특히 explorer.exe는 여러 프로세스가 될 수 있으므로 특히 그렇습니다. –

관련 문제