ET199加密锁使用说明

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目前加密锁主要采用两种方式来实现软件时间限制:1、是加密锁本身自带电池,有时钟芯片,简称为硬时间。2、加密锁本身没有电池,而是在加密锁中使用C51进行时间处理,简称为软时间。硬时间的加密锁提供了可以不从计算机,而从时间芯片中得到时间的功能,时间芯片存在成本高和电池失效等问题。本示例将演示如何使用ET199对试用版软件进行时间限制,其效果和强度完全和硬时间加密一样,同时又避免了时间芯片成本高和电池失效等问题。

原理说明:
原理很简单,即PC中的程序第一次运行时将读取到的系统时间传给ET199中的可执行文件0x001,由于是软件第一次运行,ET199中没有存放时间的文件,那么0x0001文件先创建一个0x1008的文件,里面存放起始时间和终止时间。上面这个过程的作用主要是软件到用户手中开始使用时才开始计算时间,在运输或者在经销商处的时间都不算在内。用户在以后每次使用软件时,都会从系统中读取一下系统时间传给0x0001,0x0001从0x1008中读取到软件试用的开始和结束时间,如果系统的时间在0x1008的时间范围内,那么就将0x1008的开始时间改写为这次的系统时间,这样0x1008中的开始时间不断被改写,直到软件到期。这样的过程可以绝对有效的防止用户更改电脑的系统时间来使软件又能运行的情况,因为在0x0001中的判断是大于和小于(这个判断是在ET199中进行,外部无法得知和更改ET199中可执行文件的逻辑过程),以秒为单位计时,同时文件中的开始时间是不断的被新时间改写。用户改写系统时间,就会造成条件不符合,从而返回结果错误。而一旦出错,时间文件中全部为0,那么不会有即大于0又小于0的数,从而结果永远返回错误。

当软件试用到期后,开发商可以通过远程升级(见远程升级示例)方法将前面的时间控制代码去掉,或者通过远程升级将0x1008的内容改掉以使软件可以重新运行。示例中存在一个漏洞,即“Hello!您好!”是一个固定数据,破解者可以将试用版的正确数据记录下来,然后使用二进制修改工具修改软件,将过期的试用版变为正式版使用。这就需要开发商从ET199中传给PC软件的数据不要是固定的,或者使用ET199外壳工具加一层外壳保护,这样破解者必须先脱壳才能更改软件。


文件说明
(1)C51目录中1004.pri为私钥文件,下载到ET199的根目录下,文件名称:1004,类型为私钥文件

(2)C51目录中1002.pub为公钥文件,其中的n值放到应用程序中了,见TimeTest工程

(3)C51目录中test_0001.c为可执行文件,其功能是将“Hello!您好!”使用RSA私钥加密后传出给外部的VC程序,在加密前进行时

间处理

(4)time.etfs是一个虚拟系统,包括0001(test_0001.c)和1004(私钥文件)。可以使用DrvSet.exe用该虚拟系统初始化ET199

演示过程:
1)先使用DrvSet.exe用time.etfs虚拟系统初始化ET199
2)记下系统时间,运行TimeTest\Debug\TimeTest.exe,可以看到“Hello!您好!”
3)一分钟内反复运行TimeTest\Debug\TimeTest.exe,结果都是正确的
4)一分钟后运行TimeTest\Debug\TimeTest.exe,结果是乱码
5)这时更改系统时间也是无济于事的

相关文档
最新文档