首页 | CG软件 | CG信息 | CG教程 | 三维作品 | 设计理论 | CG加油站 | 设计鉴赏 | 社区图库 | Flash | 专题 | 顶客 | 论坛 | 博客 | 导航 | 下载 | 高级搜索
RSS
热门: 3D Total  RPC  Evermotion  效果图  创意  装修  优秀作品  Vray  艺术  欣赏

Authorware实战开发专题之Authorware作品的加密保护(4)

来源:汕大4U2V工作室 作者: 时间:2007-09-30 点击:
专题   开发   实战   Authorware   E-Mail注册法

  喜欢上网的用户几乎都拥有自己的电子信箱(E-Mail),不管是免费的还是付费的,都为大家的交流带来了巨大的方便。因此可以利用电子邮件从Authorware作品作者获取正确注册码,一种常用的方法是程序开发作者发布程序给用户,用户在本机执行并计算出本机机器码,然后通过邮件把机器码发送给作者,作者获得用户的机器码后,通过自己的注册码生成器产生一个有效的注册码,然后再发送回给用户,这样用户就可以在主程序中输入正确的注册码以完成注册工作。如果产生用户的机器码呢?方法很多,一般都是和用户的计算机硬件联系起来,下面我们就以用户的硬盘分区序列号来产生机器码。

实例说明:

  本实例的实现原理基于硬盘分区序列号。在对硬盘分区格式化之后,每个驱动器都会有一个唯一的序列号(Volume Serial Number),就是用VOL命令列出的16进制数,这个号码可以用于注册、加密、防拷贝等用途。本实例就是通过用户计算机的硬盘某分区序列号产生机器码,并发送给作品作者用以产生有效的注册码。执行界面如下图6.18所示,程序流程图如图6.19所示。

Authorware实战开发专题之Authorware作品的加密保护(4)

图6.18 产生用户机器码

Authorware实战开发专题之Authorware作品的加密保护(4)

图6.19 程序流程图
实例分析:

1) 获取用户计算机的机器码

  新建一个“HardKey.a6p”文件,在流程上拖入一个计算图标,并命名为“获得机器码”,在计算图标里写入以下代码:

  ResizeWindow(320,160) ---设置屏幕演示大小

  SetWindowText(WindowHandle,\\\"获取本机机器码\\\") ---设置窗口标题

  mem2 := AllocMem(1)

  GetVolumeInformation(\\\"c:\\\\\",\\\"\\\",30,mem2,256,\\\"\\\",\\\"\\\",30)

  HardSerialNumber:=mem2

  FreeMem(mem2)

  其中SetWindowText是窗口标题设置函数,封装于Winapi.u32,它是Authorware 6.0的一个附带扩展函数库,在Authorware 6.0的安装根目录下可以找到。AllocMem、FreeMem这两个函数是封装于memtools.u32的内存分配函数,memtools.u32也是Authorware 6.0的一个附带扩展函数库。本代码中的关键函数就是GetVolumeInformation,它也是Winapi.u32的函数一员,用于实现对硬盘某分区序列号的获取,并返回一个10进制的序列号。

2) 设计程序背景图

  在1)中我们建立了一个自定义变量“HardSerialNumber”来记录读取出来的序列号,即我们所谓的机器码,程序背景图设计如下图6.20所示:

Authorware实战开发专题之Authorware作品的加密保护(4)

图6.20 背景图的设计

  这里要注意要把显示图标“显示机器码”的显示属性“Update Displayed Variables”选项选中,这样变量才会动态改变。
3) 设计发送邮件交互

  如图6.19流程所示,添加一个交互图标到流程上,然后建立“发送机器码”和“退出”按钮响应分支。发送机器码响应分支的计算图标代码如下:

ShellExecuteA(WindowHandle,\\\"open\\\",\\\"mailto:hellrock@163.com?Subject=请求注册&body=机器码:\\\"^HardSerialNumber,\\\"\\\",\\\"\\\",5)

  其中ShellExecuteA是Windows(或WINNT)系统目录下shell32.dll的一个封装函数,提醒大家注意Windows(或WINNT)目录下有丰富的DLL动态连接库,这些都是可以为Authorware所利用的扩展函数,导入方法和导入U32函数方法类似,具体可以参考下图6.21,当导入成功后就会出现如图6.21左下角的成功提示信息。

Authorware实战开发专题之Authorware作品的加密保护(4)

图6.21 导入DLL函数

  最后在退出响应分支的计算图标里写入系统函数:quit(0),这样就大功告成了,赶快执行一下,当按“发送机器码”按钮的时候将会自动打开系统默认的邮件发送程序把机器码作为正文发送,执行效果如下图6.22所示:

Authorware实战开发专题之Authorware作品的加密保护(4)

图6.22 发送注册码执行效果

  这样作为Authorware作品的作者一方就可以根据用户的机器码通过一定的算法产生一个有效的注册码并返回给用户,需要注册的Authorware程序的注册模块制作方法类似于上文的“注册输入法”。

专题总结

  以上的四种方法是Authorware作品的常用保护加密方法,但是“道高一尺,魔高一丈”、“一高还有一山高”,本文只是起抛砖引玉的作用,给读者一个参考,具体实现方式还是请读者自己思考!
本文地址:http://www.cg3000.com/html/cgTutorials/Multimedia/Authorware/20070930/AuthorwareshizhankaifazhuantizhiAuthorwarezuopindejiamibaohu_4__38002.shtml
上一篇:在Authorware中灵活运用QuickTime VR文件
下一篇:Authorware 6.0技巧与实例之二
关键字:迅雷 快车 Baidu Authorware 实战 开发 专题 Authorware
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
图腾CG联盟免责声明:本网站转载纯粹出于为网民传递更多信息之目的,无任何商业目的。如本网站转载稿件涉及版权等问题,请作者速来函admincg3000@163.com联系,在此,我们首先向您表示诚挚的歉意,并将尽快予以改正。本网站上发表的内容只代表作者本人之观点,本网站只出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。
赞助广告