2014-01-23 2 views
2

У меня есть запоминающее устройство USB, которое я шифрую с помощью TrueCrypt. Когда я подключаю его к Windows, он просит форматировать. Использование TrueCrypt показывает его содержимое, как и ожидалось.Чтение байтов запоминающего устройства USB

enter image description here

Как я могу прочитать первые 100 байт этого устройства?

Я знаю, что байты не будут иметь смысла, потому что они зашифрованы, но я хочу их прочитать, чтобы создать контрольную сумму.

+0

Google для «дд для окон» –

+0

проверки этого: http://www.developerfusion.com/article/84338/making -usb-c-friendly/ – JleruOHeP

ответ

2

Это было на моей голове. Но это должно сработать.

public static long getBytes(string letter) 
    { 
     ManagementObject disk = new ManagementObject(String.Format("win32_logicaldisk.deviceid=\"{0}:\"", letter)); 
     disk.Get(); 
     return long.Parse(disk["Size"].ToString()); 
    } 

РЕДАКТИРОВАТЬ: Протестировано и сменило int на длинный. Оно работает.

+1

+1 за помощь спасибо! . Все usbs имеют одинаковый размер, хотя :(У всех у них разный контент, поэтому я хочу создать хэш из байтов. –

+1

О, мой плохой. Я, должно быть, пропустил ваш вопрос. Если вы собираетесь использовать контрольная сумма для идентификации каждого диска, я бы использовал HWID. Что-то вроде этого могло бы работать: http://stackoverflow.com/questions/4084402/get-hard-disk-serial-number – AaronDancer

+0

Я не об этом и не делал не знал, что на жестком диске есть сериал. Думаю, это и есть путь, чтобы попробовать! –

1

Какие решения вы считаете до сих пор? Указывает ли ваше приложение, когда USB-устройство подключено или отключено?

Насколько я знаю, в .Net нет встроенной поддержки для прямого доступа к USB-устройствам. Мне пришлось использовать библиотеки, такие как LibUsbDotNet (http://sourceforge.net/projects/libusbdotnet/) или SharpUSBLib (http://www.icsharpcode.net/OpenSource/SharpUSBLib/). Были и те плюсы и минусы, что были с точки зрения образцов, документации и т. Д. Я уверен, что вы сможете найти то, что вам подходит.

В одном случае я смог подключиться к устройству с помощью WMDC, как только соединение было установлено. Я использовал библиотеку OpenNETCF RAPI для чтения/записи на устройство.

Вот еще один отличный ресурс, который я нашел полезным, когда писал приложение, которое необходимо было взаимодействовать с USB-устройством (сканером штрих-кода). http://www.developerfusion.com/article/84338/making-usb-c-friendly/

Был хороший находчивый обсуждение на подобный вопрос здесь на Stackoverflow: Working with USB devices in .NET