ICLRDebuggingLibraryProvider::ProvideLibrary 메서드
CLR(공용 언어 런타임) 버전별 디버깅 라이브러리를 찾고 요청 시 로드할 수 있도록 하는 라이브러리 공급자 콜백 인터페이스를 가져옵니다.
구문
HRESULT ProvideLibrary(
[in] const WCHAR* pwszFileName,
[in] DWORD dwTimestamp,
[in] DWORD dwSizeOfImage,
[out] HMODULE* hModule);
매개 변수
pwszFilename
[in] 요청되는 모듈의 이름입니다.
dwTimestamp
[in] PE 파일의 COFF 파일 헤더에 저장된 날짜 타임스탬프입니다.
dwSizeOfImage
[in] PE 파일의 COFF 선택적 파일 헤더에 저장된 SizeOfImage
필드입니다.
hModule
[out] 요청된 모듈에 대한 핸들입니다.
Return Value
이 메서드는 다음과 같은 특정 HRESULT뿐만 아니라 메서드 오류를 나타내는 HRESULT 오류도 반환합니다.
HRESULT | 설명 |
---|---|
S_OK | 메서드가 완료되었습니다. |
예외
설명
ProvideLibrary
를 사용하면 디버거가 mscordbi.dll 및 mscordacwks.dll과 같은 특정 CLR 파일을 디버깅하는 데 필요한 모듈을 제공할 수 있습니다. 모듈 핸들은 ICLRDebugging::CanUnloadNow 메서드에 대한 호출이 핸들이 해제될 수 있음을 나타낼 때까지 유효한 상태를 유지해야 합니다. 이때 핸들은 호출자가 해제해야 합니다.
디버거는 사용 가능한 수단을 사용하여 디버깅 모듈을 찾거나 획득할 수 있습니다.
중요
이 기능을 사용하면 API 호출자가 실행 파일 및 악성 코드가 포함된 모듈을 제공할 수 있습니다. 보안 예방 조치로서 호출자는 ProvideLibrary
를 사용하여 실행하지 않으려는 코드를 배포하지 않아야 합니다.
mscordbi.dll 또는 mscordacwks.dll과 같이 이미 릴리스된 라이브러리에서 심각한 보안 문제가 발견되면 shim을 패치하여 잘못된 파일 버전을 인식할 수 있습니다. 그런 다음, shim은 패치된 파일 버전에 대한 요청을 실행하고 요청에 대한 응답으로 제공되는 잘못된 버전을 거부할 수 있습니다. 이러한 상황은 사용자가 새 버전의 shim에 패치를 적용한 경우에만 발생할 수 있습니다. 패치되지 않은 버전은 여전히 취약합니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: CorDebug.idl, CorDebug.h
라이브러리: CorGuids.lib
.NET Framework 버전: 4부터 사용 가능
참고 항목
.NET