Symptom/Steps/Outputs (증상,재현방법,결과)
- 클라우드 스토리지(G드라이브)가 설치된 PC에 Insights Agent 설치 시 PC Hang 발생
Caused by (원인)
- G드라이브 제품은 네트워크 드라이브 형태의 가상 스토리지를 제공
- GDrive.exe >> cbfsconnect2017.sys >> xfilter64.sys 로 전달된 I/O 처리 과정에서 파일사이즈를 구하기 위해 FltQueryInformationFile 호출 후 DeadLock 발생
- MSDN의 FltQueryInformationFile api에 대한 기술 내용 검토 중 Deadlock 관련 추정되는 원인을 확인 (TopLevelIrp 가 설정된 경우, 사용자로부터 유발된 IRP가 아니라는 의미)
NOTE: Do not call this routine with a non-NULL top level IRP value, as this can cause a system deadlock.
Fix Plan (해결방안)
- FltQueryInformationFile 호출 전 TopLevelIrp 값 설정 여부를 체크하여, 설정된 경우 FileSize를 구하지 않고 Skip하도록 수정
- G드라이브에서 발생하는 네트워크 경로를 parsing할 수 있도록 경로 parsing 로직 개선
태형의 이슈 이야기.
'Windows > Kernel' 카테고리의 다른 글
Create process from kernel mode (0) | 2021.02.15 |
---|---|
DNS 쿼리 탐지 및 변조 (0) | 2021.01.18 |
NT vs. Zw (0) | 2020.09.07 |
Thread Start Address (0) | 2020.09.05 |
프로세스 고유ID(ProcGuid)/부록: Kernel 모드에서 md5 해시 구하기. (0) | 2020.08.22 |