我有一个使用TrueCrypt加密的 USB 大容量存储设备。当我将它连接到 Windows 时,它会要求格式化。正如预期的那样,使用 TrueCrypt 会显示其内容。
如何读取该设备的前 100 个字节?
我知道这些字节没有意义,因为它们是加密的,但我想读取它们以创建校验和。
我有一个使用TrueCrypt加密的 USB 大容量存储设备。当我将它连接到 Windows 时,它会要求格式化。正如预期的那样,使用 TrueCrypt 会显示其内容。
如何读取该设备的前 100 个字节?
我知道这些字节没有意义,因为它们是加密的,但我想读取它们以创建校验和。
在我的头顶上做了这个。但应该工作。
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 更改为 long。有用。
到目前为止,您考虑了哪些解决方案?您的应用程序是否知道 USB 设备何时插入或拔出?
据我所知,.Net 中没有直接访问 USB 设备的原生支持。我不得不使用诸如 LibUsbDotNet ( http://sourceforge.net/projects/libusbdotnet/ ) 或 SharpUSBLib ( http://www.icharpcode.net/OpenSource/SharpUSBLib/ ) 之类的库。示例、文档等。我相信您将能够找到最适合您的。
在一种情况下,我能够使用 WMDC 连接到设备,一旦建立连接,我就使用 OpenNETCF RAPI 库来读取/写入设备。
这是我在编写需要与 USB 设备(条形码扫描仪)交互的应用程序时发现的另一个非常有用的资源。 http://www.developerfusion.com/article/84338/making-usb-c-friendly/
在 Stackoverflow 上对类似问题进行了很好的足智多谋的讨论:Working with USB devices in .NET