月光博客

青青子衿, 悠悠我心, 但为君故, 沉吟至今

« 使用Google Analytics统计Google AdsenseGoogle手机邮件Gmail Mobile 2.0发布 »

基于硬件指纹的软件加密和注册技术

  在软件加密保护技术中,一种常用的保护方法就是基于硬件指纹进行许可授权,本文将详细介绍硬件指纹的具体获取技术,并提供一段演示源代码程序。

  硬件指纹加密,指的是用户免费得到软件并安装后,软件从用户的机器上取得该机器的一些硬件信息(如硬盘序列号、BOIS序列号等等),然后把这些信息和用户授权进行绑定,产生硬件特征码,用户需要将此特征码提交给软件提供商或开发商,软件开发商利用注册机(软件)产生该软件的注册号发给用户,用户通过此注册号可以激活本地授权许可。软件加密虽然加密强度比硬件方法较弱,但它具有非常廉价的成本、方便的使用方法等优点,从而在低成本的共享软件领域广泛应用。

  硬件指纹加密的关键是电脑硬件信息的获取,我们需要通过程序将机器的标识一一读取出来,根据机器的标识,通过一定的算法,对用户进行授权限制。

  目前比较常见的硬件资源包或:硬盘物理序列号、CPU序列号、网卡MAC地址、BIOS序列号、主板序列号等,如果用户的硬件信息发生变化,比如更换了网卡等硬件,则按照一定比例进行判断,比如三分之二的硬件信息没有变化,则表示同一用户。

  下面是使用VB调用Windows的WMI编写的一段硬件指纹获取的演示程序,直接将其另存为VBS后缀文件即可运行。稍加修改即可应用在共享软件里,实现用注册码对软件进行保护的功能。

    MsgValue = ""
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    '获取硬盘序列号
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMedia", , 48)
    For Each objItem In colItems
        MsgValue = MsgValue & vbCrLf & "硬盘 = " & objItem.SerialNumber
    Next
    '获取主板序列号
    Set colItems = objWMIService.ExecQuery("Select * from Win32_BaseBoard", , 48)
    For Each objItem In colItems
        MsgValue = MsgValue & vbCrLf & "主板=" & objItem.SerialNumber
    Next
    '获取CPU ID
    Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor", , 48)
    For Each objItem In colItems
        MsgValue = MsgValue & vbCrLf & "CPU = " & objItem.ProcessorId
    Next
    '获取BIOS序列号
    Set colItems = objWMIService.ExecQuery("Select * from Win32_BIOS", , 48)
    For Each objItem In colItems
        MsgValue = MsgValue & vbCrLf & "BIOS= " & objItem.SerialNumber
    Next
    '获取网卡MAC地址
    Set colItems = objWMIService.ExecQuery("SELECT MACAddress FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))", , 48)
    For Each objItem In colItems
        MsgValue = MsgValue & vbCrLf & "网卡 = " & objItem.MACAddress
    Next
    Wscript.Echo MsgValue



原创文章如转载,请注明:转载自月光博客 [ http://www.williamlong.info/ ]

本文链接地址:http://www.williamlong.info/archives/1544.html
  • 文章排行:
  • 4.斑马
  • 发现月光把GGad全部换成百度ad。是不是预示这又一位名博在放弃GGad,还是这又是月光的一次测试。
  • ip: 125.90.8.*  2008-10-24 22:49:24   回复该留言
  • 5.Heyi
  • sofa,嘿嘿。先抢沙发再发评论耶!
  • ip: 221.7.40.*  2008-10-24 22:54:59   回复该留言
  • 13.TR
  • 技术比较深奥。。厚道点说我没有看懂。。
  • ip: 222.84.164.*  2008-10-25 0:51:38   回复该留言
  • 16.哈哈
  • 有10xN年历史的不值一提的技术..看来楼主不是搞应用软件的。
  • ip: 124.64.126.*  2008-10-25 8:57:59   回复该留言
  • 19.咖啡放点冰
  • 月光将原来的正文内广告换成百度主题了,正文底部也加了主题广告.看来全站都变成百度的了.
    "指纹""识别"这几个词就带出相关的广告.
  • ip: 125.92.32.*  2008-10-25 12:51:28   回复该留言
  • 22.蓝天博客
  • 月光和Google是不是闹翻了,还是因为之前那个威胁要敲诈月光的人起作用了?
  • ip: 58.217.169.*  2008-10-25 14:26:10   回复该留言
  • 23.wrihui
  • 暂时避避风头。这世界上什么人都有。做老实人难啊。
  • ip: 119.124.34.*  2008-10-25 14:28:21   回复该留言
  • 26.zx
  • 硬件加密,看起来很安全的啊。
  • ip: 222.84.247.*  2008-10-25 16:53:49   回复该留言
  • 27.chonsomseu
  • 博主高人啊!我经常来您的博客,我唯一记住的博客也是您的博客!
  • ip: 222.223.72.*  2008-10-25 19:19:30   回复该留言
  • 28.Jamesonang
  • 这个方法的思想是利用某些用户信息来唯一表示一个用户,然后产生1对1的注册码.

    不谈,注册码算法(由唯一的用户信息产生对应的注册码).这个方法还是有些缺点的.

    如果用户拥有多个电脑,但他只有一个合法帐户。这将影响该用户的使用,这个还可以得到改进。

    但如果某人反汇编,把客户端的判断跳转一改,还是被破了. 主要看是否有人愿意花这个时间来破这个程序。

    关键的问题还是可信计算上,好的算法确实难破,但汇编这一层很难有人能逃脱。
  • ip: 218.94.94.*  2008-10-25 19:23:14   回复该留言
  • 37.匿名
  • 月光blog上的广告全被XX了,一个都看不到
  • ip: 122.234.176.*  2008-10-26 23:03:40   回复该留言
  • 39.搞笑
  • 汗。。上面的留言都是什么水平阿。此文介绍的技术就是入门水平,相信只要做过桌面软件的都会吧,而且防盗水平为最末流。。。当然硬件指纹这个标题起的比较有创意。

    服了这个世界。。第三次华山论剑。。呵呵~
  • ip: 123.118.96.*  2008-10-28 22:49:57   回复该留言
  • 40.苹果王
  • 老大,能不能发一个在VBA 中读取机器码,制作注册吗的实例源码给我,学习学习!!!
  • ip: 117.88.91.*  2008-11-7 11:18:58   回复该留言
  • 43.AntiDebugLIB
  • AntiDebugLIB V2.3 是专门为windows xp/2003/vista sp1/2008(x86)操作系统设计的软件加密工具,它能帮助软件开发者保护他们的应用程序不被高级反编译专家和黑客破解,AntiDebugLIB V2.3内置强大的许可证管理机制,使软件开发者可以安全地发布他们的试用版软件。

    基于硬件指纹的软件加密和注册技术.

    一旦应用程序经AntiDebugLIB V2.3加密,它将不能被任何调试工具调试,不能被静态或动态分析,不能从内存中dump出来,也不能被肆意地修改。

    QQ:86029535
  • ip: 202.196.56.*  2009-4-30 17:19:45   回复该留言
  • 44.小看你
  • 楼上的,你就继续吹吧。我已经写过N个使用你这个AntiDebugLib的软件的注册机了。

    "不能被任何调试工具调试,不能被静态或动态分析,不能从内存中dump出来"。哼哼,在我的眼里你的lib都是源代码。

    实在看不过你才说你几句。BTW,偶是某国际但成员全是中国人的破解组织的member,知道了吧。
  • ip: 123.117.19.*  2009-6-7 21:41:53   回复该留言
  • 45.毛鹏程
  • 佩服,佩服。
    希望能认识您,我QQ:275944680
    我希望得到您的帮助!
  • ip: 125.33.63.*  2009-11-12 17:20:23   回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 跟随我的推特:跟随我的推特
  • 跟随新浪微博:跟随新浪微博
  • 通过Google订阅本站
  • 通过鲜果订阅本站
  • 通过电子邮件订阅本站

站内搜索

热文排行

最新评论及回复

最近发表

网站收藏

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.

This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.