수십 개의 예제처럼 볼륨 {GUID} 및 WriteFile
기능으로 CreateFile
으로 직접 USB 드라이브에 데이터를 쓰는 C++ WinAPI 프로그램을 개발 중입니다. 비고 here을 언급 한 바와 같이 :USB 드라이브 WriteFile을 볼륨 외 섹터로
볼륨이 마운트 된 파일 시스템이없는 경우 볼륨 손잡이에 쓰기가 성공하거나 다음 조건 중 하나에 해당하는 경우 :
- 섹터 기록 할 대상은 부트 섹터입니다.
- 파일 시스템 공간 외부에 상주하도록 기록 할 섹터.
FSCTL_LOCK_VOLUME
또는FSCTL_DISMOUNT_VOLUME
을 사용하여 볼륨을 명시 적으로 잠 그거나 분리했습니다.- 볼륨에 실제 파일 시스템이 없습니다. (즉, RAW 파일 시스템이 마운트 있습니다.)
내가 원활히 마운트 해제하지 않고 100MB의 USB에 데이터를 기록 할 수 있습니다. 그래서 위의 두 가지 경우를 시도했습니다.
- 두 번째 경우 : 파일 시스템 외부에서 작성 (FAT32 테이블을 확장하지 않고 파티션 당 섹터 수를 확장했습니다)이지만 마운트 해제하지 않으면 작동하지 않습니다!
- 네 번째 경우 : 파일 시스템없이 볼륨에 쓰기 (포맷되지 않음). 하지만 언 마운트하지 않고도 작동하지 않습니다 !!!
또한 또한 실패 파일 시스템없이와/두 번째 파티션 (즉, Windows 용 보이지 않는) 생성하고 첫 번째 파티션의 끝에서 오프셋에 의해 직접이 작성했지만, 한 : 나는 읽을 수 없습니다 또는 거기에 쓰십시오.
그래서, 사람이 적어도 질문에 한 대답을 알고있는 경우 :
- 어떻게 파일 시스템 외부 파티션 내에서 섹터를 만들 수 있습니까?
- USB에 원활하게 쓸 수 있습니까?
- 드라이버, NTCreateFile 및 기타 심층 기능을 사용하지 않고도 USB의 두 번째 파티션에 Windows로 쓸 수 있습니까?
이것은 맬웨어에만 해당 될 수 있습니다. 맞습니까? –
@DavidHeffernan 아니, 그냥 학문적 목적을 위해 :) 나는 USB와 FAT32 형식으로 뛰어 들었고 msdn 발언이 정확한지 확인하려고했습니다. – heyjohnnyfunt