在给软件加上硬件绑定之后,用户那边如果换了电脑、主板或者硬盘,之前能正常使用的授权经常就会突然认不出来了。要弄清楚Themida的硬件绑定怎么迁移,以及换了设备以后该怎么处理,有一个容易让人搞混的地方需要先提一下:Themida这个工具主要做的是程序保护,而那些跟机器码有关的操作,比如获取硬件信息、生成授权文件、把授权锁到特定电脑上,其实都是WinLicense这个配套组件在负责的。可以这样理解,WinLicense就是在Themida的保护能力上面,又加了一套专门管理试用和注册的功能,所以谈论硬件绑定相关的事情,实际上都是在WinLicense这边处理的。
一、Themida硬件绑定怎么迁移
硬件绑定的迁移,并不是简单地把旧电脑里的许可证文件拷贝一份到新电脑上就能解决。因为这种跟机器绑在一起的授权,关键是要核验一个叫做Machine ID的值,一旦换了新设备,硬件信息就变了,原来的Machine ID也就对不上号了,这种情况下通常都得重新签发一份绑定到新机器上的授权才行。
1、确认当前使用的是哪种授权方式
首先得看一下软件现在是通过什么方式来验证授权的,比如是一串文本格式的注册码、一份单独的授权文件、藏在注册表里的信息,还是需要上网去激活的那种在线验证。WinLicense能生成一种叫SmartKey的授权数据,里面同时携带了到期时间、Hardware ID以及注册信息的校验数据,不同形式的授权存放的位置不一样,后面在迁移时的操作也得跟着区别处理。
2、把旧设备上的关键信息记录保存下来
在开始迁移之前,要先把客户名称、旧设备上的Machine ID、原来的序列号、授权属于什么类型、什么时候到期,还有设备名称这些东西都记下来;要是后台本来就保留了激活记录的,还要再确认一下旧设备当前是不是还占用着一个授权名额。如果少了这一步,后面就很难判断这一次操作到底是正常的换机,还是有人在尝试重复用同一个授权。
3、旧设备还能用的时候先做停用
如果软件接入了在线激活流程,比较规范的做法是在旧设备上先执行一次停用操作,把原来占着的那条授权释放掉,然后再到新设备上重新去激活。WinLicense的开发包里也提供了专门的操作接口来处理这两件事,比如WLRegDeactivateSoftware和WLRegActivateSoftware,在程序代码中可以直接调用来完成停用和激活。
4、在新设备上获取机器码
在新电脑上运行专门抓取机器码的小工具,或者从软件自己的授权页面中把Hardware ID读出来,接着把新的Machine ID填到授权生成工具里面,重新生成一枚跟这台新设备绑在一起的序列号或许可证文件。机器码最好是用复制粘贴的方式,不要靠眼睛看了再手工敲进去,免得把字符看错了导致生成的授权无效。
二、Themida硬件绑定换设备后怎么处理
设备更换完以后该怎么接着处理,既要看原来那台旧电脑还能不能开机,也要看当前这套授权是不是允许出现少量的硬件变动,不同的情况需要分开对待。
1、旧电脑还能正常启动的情况
如果原来的旧电脑还能正常开机,最理想的处理顺序是先把旧设备上的授权做一次停用,然后再生成一份绑定了新Machine ID的许可证。等新设备这边激活成功以后,把软件重新启动一次,接着再进到核心功能里面去完整地跑一遍测试,不能只看软件主界面能不能打开就当作完事了。
2、旧电脑已经损坏无法使用的情况
要是旧设备已经彻底坏了、连开机都做不到了,那自然也就没法再去执行什么停用操作了。这时候就应该把订单信息、原来的序列号、旧Machine ID的历史记录,还有新设备的Machine ID全都准备齐全,交给负责管理授权的人从后台把旧的那条绑定记录给撤销掉,再补发一份新授权。售后记录里面也要把这次换机的原因写清楚,防止同一份授权用“设备损坏”这样的理由被反复申请迁移。
3、只更换了一部分硬件的情况
如果用户仅仅是换了其中一两样硬件,比如只换了一块硬盘或者加了一条内存,WinLicense的Hardware Lock功能本身是支持给不同硬件类型分别设置允许变动次数的。在许可证注册成功之后,用户每次更换部分硬件,系统会从对应那一类硬件的变动次数里扣掉一次;只要这个次数还没有用完,授权就可以继续保持有效,一旦扣光了就需要重新去签发一份授权才行。
4、不要直接复制旧许可证文件
另一个常见的误区,是想把旧设备上的许可证文件直接复制到新电脑里接着用。旧的许可证文件里面早早就记下了跟旧机器相关的硬件信息,光靠复制粘贴是改不了里面写入的Machine ID的;就算软件暂时还能打开,也很可能在下次校验、系统重启或者将来版本升级的时候突然就失效了,所以正确的做法还是重新去生成一份绑定到新设备上的授权。
三、Themida硬件绑定迁移后怎么复核
迁移动作做完以后,还不能觉得软件能打开就算搞定,需要再回过头去检查一下新旧设备各自的状态,并且把相关的记录补全,因为一次激活成功,并不等于整个换机流程就已经完整闭环了。
1、重启电脑之后再验证一次
先把软件关掉,让电脑完整地重新启动一遍,然后再去查看授权状态是不是还保持正常,有没有出现重启之后又弹出窗口要求再去激活的情况;接着再实际跑一下保存、导出、批处理还有插件加载这些比较关键的功能,确认没有任何一个模块还因为授权问题而被悄悄地限制住。
2、确认旧设备那边已经真正失效
要是那台旧电脑仍然可以开机,就应该去核实一下,它现在是不是真的已经没法再继续使用那些被授权保护的功能了,要不然同一份许可证可能会同时留在两台设备上,后面的管理就会变得越来越混乱。只在新设备上激活成功,而旧设备还能照常使用,这种换机迁移其实只完成了一半。
3、用SDK核对授权限制信息
如果在程序里已经集成了WinLicense的开发包,还可以在代码中调用相关的注册函数,去查询当前的授权状态、硬件锁定的情况以及许可证里登记的Hardware ID,这样一来,程序在发现问题时自己就能弹出更明确的提示,比如到底是因为设备不匹配、授权已过期,还是单纯的激活失败,而不是只丢给用户一句含糊的“授权失败”,让人自己在那里猜原因。
4、把迁移的台账记录补全
最后,把旧设备的信息、新设备的信息、原来的Machine ID、新的Machine ID、这次处理的时间、授权到期的日子,还有是谁经手操作的,全都整理成一条完整的记录保存下来。如果碰到那种企业客户频繁申请换机的情况,还可以单独统计一下迁移的次数,这样就能及时发现有没有出现异常的使用模式,方便以后进行统一的授权管理和核查。
总结
Themida硬件绑定的迁移以及更换设备之后的处理,核心的一步就是先要确认授权实际上是由WinLicense那边的硬件锁定功能在管理的,然后再围绕Machine ID去重新签发或者调整许可证。旧设备还能正常使用的时候,先把上面的授权停用掉;要是旧设备已经损坏到没法操作的地步,就由管理员核对好记录之后去重置旧的绑定。迁移做完之后,还要再去检查一遍重启后的授权状态、核心功能是不是都能正常使用、旧设备那边是否真的已经失效了,并且把迁移的台账记录补充完整,这样整个换机流程才算是真正处理到位,不会给后面留下隐藏的麻烦。
