后期资源网|非编软件网|杉宫竹苑|非编插件|高清视频素材|音频素材|非编软件汉化

 找回密码
 立即注册
后期非编系统发布及其详细简介后期非编系统VIP专享下载区影视后期非编模版免费下载区网站注册及其办理VIP业务说明
查看: 783|回复: 0

[教程] 利用U盘进行软件加密的方法

[复制链接]
发表于 2012-6-5 07:21:46 | 显示全部楼层 |阅读模式

  一般的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")
6 M2 V  ]5 N, W$ f% X! s) s' a    Set colItems = objWMIService.ExecQuery("Select * From Win32_USBHub")) L% S6 V: v% H0 u# ~5 c+ m
    For Each objItem In colItems
- M' {6 E9 k( C0 E3 D6 ~3 O        a = objItem.DeviceID
0 y" X; P$ Z2 c        If InStr(a, "VID") Then b = Split(a, "\")
7 A: h3 V9 g$ o. Y        USB_ID = b(UBound(b))3 X- \0 r( C; V
    Next6 w: y$ N# J/ }; p4 K" q9 [
9 ~2 U& z& `' n! ~/ t6 n- Y3 {" ~- D
0 X4 p3 s3 L; j4 x- X" A  ]
3 `8 n  U1 f5 @( J8 V* a3 \$ W
本文地址:http://www.williamlong.info/archives/1832.html
. q4 ^* o5 u4 A* K+ \5 }: E8 ]; V% c& z
后期资源网,打造没有广告、免除隐藏回复的全开放式影视技术交流平台。 你的所求就是我们服务的宗旨!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|后期资源网

GMT+8, 2024-5-3 03:26 , Processed in 0.123084 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表