有的朋友有这样一种需求,就是使用U盘存储软件的同时,想要节约成本,防止u盘中的软件被复制,但又不想再购买昂贵的加密狗,因此想要把软件绑定在u盘上执行,也就是用 u盘加密软件 。当u盘拔下来的时候,软件就不能正常运行,使用绑定U盘的方式加密软件。
在对软件安全不是特别在意的情况下,可以在软件中采用绑定u盘内部ID的方式来实现这种加密,先使用程序将u盘的ID读出来,然后根据这个ID生成License文件,当解密者将U盘内的文件复制到其他电脑的时候,软件执行过程中读取u盘ID失败,因此就无法校验License。
通常情况下两个u盘的ID是不相同的,因此即使将软件复制到另外一个u盘,软件执行的时候,根据u盘ID验证License,也会出现不匹配的现象,这样就实现了软件绑定U盘的加密方式。
需要指出的是,这种u盘加密并不算安全,大多数U盘厂商有内部量产工具,可以修改u盘的内部ID号码,这就存在了复制u盘的可能性,但对于普通用户来说,通常没有修改u盘内部ID的能力,因此也具有一定的加密性。
这个加密方法中,读取u盘ID号的函数的VB源代码如下所示:
Se t objW MISe rvice = Ge tObject("winmg mts:\\.\ro ot\cimv2")
Se t colIte ms = objWMISer vice.E xecQ uery("Select * Fro m Wi n32_US BHub")
F or Ea ch objIte m In colI tems
a = o bjItem.De viceID
If In Str(a, "VI D") The n b = Sp lit(a, "\")
US B_ID = b(UBound(b))
Ne xt