Windows 데스크톱 시스템에서 사용할 USB 기반 주변 장치를 개발 중이며 드라이버 설치 단계를 피하는 것이 좋습니다. 부분적으로 사용자 지정 드라이버를 개발하고 서명하는 데 필요한 리소스로 인해 일부는 타사 드라이버로 인해 사용자에게 중대한 걸림돌이되었습니다.드라이버가 필요없는 I/O 용 USB 대용량 저장 클래스 악용
표준 USB 장치 클래스의 사용을 제안합니다. HID는 간단하고 유연하지만 MCU 관련 제한 사항으로 인해 처리량이 저하됩니다. 대신 대량 저장 장치를 가장하는 계획을 평가하고 있습니다.
숨겨진 장치 I/O 파일이 들어있는 FAT 파일 시스템에 대한 메타 데이터를보고하는 트릭으로, 인터페이스 응용 프로그램은 원시 파일 버퍼링되지 않은 I/O를 사용하여 통신합니다. 유선 I/O 파일 섹터 외부의 모든 데이터는 열거로 RAM으로 다시로드되어 무시됩니다.
지금까지 테스트 한 모든 시스템에서 잘 최적화 된 경로를 통해 빠른 I/O 및 열거를 통해 놀라 울 정도로 원활하게 작동했으며 권한 상승은 없었습니다. 그러나 은 분명히 시스템의 남용이며 Windows에서 I/O 데이터가 일관성없이 다시 읽혀지고 있음을 감지하고 클러스터 체인을 조각 모음하고 exFAT로 다시 포맷하는 등의 작업을 결정하면 넘어 질 수 있습니다.
제 질문은 이러한 시나리오가 실제로 발생하는지 또는 가까운 미래에 발생할 가능성이 있는지 여부입니다. 그런 계획이 과거에 시도 되었습니까? dodgy USB 대용량 저장 장치의 수량이 운영체제에 대한 효과적인 방패가 될 것입니까?
마지막으로,보다 안정적인 대안으로 생각할 수있는 다른 표준 USB 클래스 또는 접근법이 있습니까? Windows 10은 마침내 표준 CDC 지원을 추가했지만 이전 버전을 지원하면 서명 된 드라이버 설치를 건너 뛰었을뿐 아니라 BSOD의 기록, 임의 연결 해제 및 열거 오류로 인해 가상 직렬 장치에주의해야합니다.
아마도 CDC 클래스/VCOM 장치를 고려해보십시오. 꽤 중요한 모든 OS가 기본적으로 이것을 지원합니다 (win7은 .inf 파일이 필요할 수도 있습니다). –
@Russ Schultz : 감사합니다. 필자가 실험 한 마지막 순간부터 Windows 10 이전에는 기본 제공 드라이버를 참조하는 동안에도 서명 된 INF 파일이 필요했습니다 (https://msdn.microsoft.com/en-us/library/ 참조). windows/hardware/dn707976 (v = vs.85) .aspx). – doynax
. sys 파일은 서명되었지만 .inf는 단순한 텍스트 파일입니다. –