许多USB外设都包括基于闪存的微控制器。尽管基于掩模ROM的微控制器价格便宜,但是使用基于闪存的微控制器可以使制造商拥有一块可以插入各种OEM产品的板,每个OEM产品都标明出售的名称。某些外设包含允许从USB端口对其进行重新编程的固件。以这种方式配置它们可以使制造商以适合其最大批量客户的方式对零件进行预编程,并根据其他客户的需求对其进行重新编程。
如果鼠标恰好包含闪存微控制器,则恶意程序可能会将其重新编程为恶意软件感染设备。由于大多数鼠标不太可能使用特别大的微控制器,因此,如果要求将鼠标用作鼠标,则可能没有恶意软件的余地。另一方面,某些恶意软件可能会识别出易受攻击的鼠标并对其进行重新编程,以使其不再像鼠标一样工作,而当插入未受感染的计算机时却充当邪恶的代理。 [理论上,鼠标停止工作的人可能会在另一台计算机上对其进行测试]。
通常,以这样一种方式设计USB外围设备并不困难,即一旦加载了最终固件,便无法从USB端口重新加载它,但是没有通用的方法来区分可以免于重新编程的设备和未经过重新编程的设备。没错 还可以设计一个带有显示屏和一些按钮的“智能USB集线器”,当插入设备时,这些按钮会指示设备声称是什么,在计算机看到设备之前要求确认,以及将设备的通信限制为已批准使用其类型的设备,但我不知道是否有任何此类智能集线器设备可用。