青青子衿, 悠悠我心, 但为君故, 沉吟至今
« 同时更新Twitter、饭否、嘀咕和做啥安全迁移网站的技巧 »

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

  一般的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
 



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/1832.html
  • 文章排行:
  • 1.志言堂
  • 原来是教授怎么盗版,呵呵
  • 2009/6/17 9:18:36   支持(12)反对(6) 回复
  • 3.宇文星晴
  • 那不是还是可以被破解的么
  • 2009/6/17 18:57:06   支持(12)反对(7) 回复
  • 4.YoungKing
  • 确实不安全
    我自己平时量产的时候每次换一个id
  • 2009/6/17 9:39:36   支持(12)反对(8) 回复
  • 6.wang
  • 很有价值 ......................................
  • 2010/3/25 9:28:34   支持(10)反对(6) 回复
  • 7.easy
  • 同学,不能根据ID产生License么……
  • 2009/6/17 0:55:20   支持(10)反对(7) 回复
  • 8.f
  • 安全也是有级别的,一般人不会有被处心积虑偷窥的烦恼,简单加密也就足够了
  • 2009/6/17 9:16:09   支持(12)反对(9) 回复
  • 11.Felix
  • 最近也在搞U盘软件,多谢分享
  • 2009/6/16 22:32:57   支持(9)反对(8) 回复
  • 12.LAVA
  • 这个程序好久之前做过,并不是全部U盘都有一个唯一的ID,而且有些山寨U盘出厂全部ID都是相同的.
    U盘真的很容易坏,做的那个项目最后还是用加密狗..
  • 2009/6/17 9:22:57   支持(15)反对(14) 回复
  • 14.不是俺
  • U盘是易耗品,这个不怎么安全。
  • 2009/6/17 0:03:19   支持(10)反对(10) 回复
  • 16.jack
  • 比特平台现在提供基于U盘的绑定方式。可以在模版中设置。
  • 2010/11/18 17:56:49   支持(11)反对(11) 回复
  • 17.鬓角之家
  • 月光的知识面也真够宽广的。发现了一点小情况,今天是我第三次来月光博客发表评论,通过前两次的留言,我发现我网站的统计里至少每天有60IP来自于这里。
    真的假的 于 2009-6-17 18:47:44 回复
    那你要感谢月光啊,多来踩踩
  • 2009/6/17 14:05:53   支持(10)反对(11) 回复
  • 18.歪歪屋啊
  • 好短的几行代码啊,回去试试
  • 2009/6/17 19:45:13   支持(9)反对(10) 回复
  • 20.teloon
  • “winmgmts:\\.\root\cimv2"是什么位置?
  • 2009/6/19 19:14:10   支持(12)反对(14) 回复
  • 21.kate
  • 难道又是沙发???
    山寨站长站 于 2009-6-17 13:49:59 回复
    你的沙发,我在沙发里面
    andy 于 2009-6-18 22:24:08 回复
    我也在沙发里
    清风无影 于 2009-6-20 14:37:43 回复
    很有山寨的精神
  • 2009/6/16 22:24:27   支持(8)反对(11) 回复
  • 22.园子
  • 方法是不错

    不过感觉没有必要这样去做

    有很多工具比这个更实用更方便~
    aaa 于 2009-6-17 13:37:42 回复
    能举一个例子吗?
  • 2009/6/16 23:22:26   支持(7)反对(10) 回复
  • 24.plum
  • 一直都想给u盘加密,
    等下试试
  • 2009/6/16 22:56:46   支持(10)反对(14) 回复
  • 25.老刁
  • 光盘不行了换U盘~其实如果固态硬盘技术普及了价格也低了或许也会被用来做软件载体
  • 2009/6/18 22:23:59   支持(8)反对(12) 回复
  • 26.rainsun
  • 对现在的U盘很不放心!坏了几个,都是存有重要东西的!我对U盘操作太频繁了!
  • 2009/6/18 10:10:11   支持(9)反对(68) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.