利用U盘进行软件加密的方法

安全 数据安全
一般的U盘不具备加密的功能,虽然U盘和加密狗外形有一些相似,但是内部完全不一样的,U盘只是一个存储器芯片和简单的附属电路,而现在的智能卡加密狗都具有一个单独的CPU或者加密芯片,可以执行相当复杂的加密算法。

一般的U盘不具备加密的功能,虽然U盘和加密狗外形有一些相似,但是内部完全不一样的,U盘只是一个存储器芯片和简单的附属电路,而现在的智能卡加密狗都具有一个单独的CPU或者加密芯片,可以执行相当复杂的加密算法。

有的软件开发商有这样一种需求,就是使用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源代码如下所示:

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_USBHub")

For Each objItem In colItems

a = objItem.DeviceID

If InStr(a, "VID") Then b = Split(a, "\")

USB_ID = b(UBound(b))

Next

责任编辑:蓝雨泪 来源: 2cto
相关推荐

2009-12-01 09:29:04

2019-05-09 10:51:29

恶意软件加密通信网络攻击

2011-12-30 15:37:13

软件加密软件授权软件保护

2009-12-07 10:31:31

2012-11-30 13:24:57

2014-10-27 15:28:08

软件加密授权管理研讨会

2020-11-08 13:42:00

勒索软件加密数据数据安全

2015-06-17 14:18:30

Cryptsetup加密加密U盘

2011-07-21 11:12:56

Windows组策略U盘

2021-07-26 05:19:42

软件加密

2010-01-05 14:26:19

U盘安装ubuntu

2022-07-07 16:53:12

Rust勒索软件

2011-08-19 14:39:37

2009-02-17 15:31:42

LinuxPortable Li

2021-06-15 11:16:24

网络安全U盘软件

2021-12-10 23:44:34

U盘系统电脑

2022-05-05 15:36:28

漏洞勒索软件恶意软件

2009-06-05 09:19:41

微软Windows 7操作系统

2009-07-01 09:13:10

Linux

2013-07-08 17:41:53

Linux 系统U盘格式化
点赞
收藏

51CTO技术栈公众号