检查 USB 内容

Posted

技术标签:

【中文标题】检查 USB 内容【英文标题】:Check USB Content 【发布时间】:2010-11-18 15:40:21 【问题描述】:

我开发了一种 C++ 算法,它将 USB 密钥的内容保存在数据库中。在数据库中,以及保存文件名都保存在 USB 设备信息中:空闲块和供应商。 所以当我放更多的控制键空闲块。 如果要更改比较,则必须重新创建数据库。因此,如果我删除或添加文件到 USB 密钥,数据库将从头开始重建。但是当我重命名文件时,什么也没有发生。 您无需检查数据库中的每个文件就可以找出更改?

如何更好地控制 USB 设备的全部内容?一些帮助!

谢谢!

P.s.:我使用 ioctl 作为供应商名称和空闲块!!

【问题讨论】:

【参考方案1】:

您可以从文件夹文件列表中创建一个哈希值并将其存储在您的数据库中。

每次插入 U 盘时,都会执行文件夹列表的哈希计算并与存储的值进行比较。如果它们不同,您可以假定文件已被删除、添加或重命名并执行数据库刷新。

【讨论】:

【参考方案2】:

如果您控制操作系统和 USB 密钥,则可以使用 NTFS。它具有更改日志功能。这包含一个更新序列号 (USN)。对密钥的任何更改都会更改 USN。因此,您只需将旧值保存在数据库中。如果您看到新值,请重新读取整个文件系统并更新数据库中的 USN。

【讨论】:

以上是关于检查 USB 内容的主要内容,如果未能解决你的问题,请参考以下文章

在android上检测USB网络共享

拆解 USB 通信协议主要内容

从 USB-C 驱动器和 iPad iOS13 读取文件和内容

打印机USB链接安装完驱动后无法打印

当我单击我的 apk 文件并显示修改或删除 USB 存储的内容时,安装按钮显示为禁用

检查设备更改(添加/删除)事件