基于CPLD的软件保护技术的研究
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
软件保护工作是维护软件开发人员利益的必要手段,是软件开发过程的重要组成部分。本文在分析软件保护技术与破解技术的基础上,研究了用CPLD来实现软件保护技术。
     由于所研究的软件保护技术主要是用来保护工业实时检测软件,要求有较快的数据传输速度,所以采用PCI接口的软件保护卡来实现。根据PCI局部总线技术规范和所要达到的软件保护的目的设计所需的电路是实现软件保护技术的基础。文中介绍了所设计的软件保护卡的各组成部分的功能及其工作原理,并给出电路原理图的主要部分。
     本文所研究的软件保护技术是通过对软件保护卡中的CPLD设计来实现的。在介绍CPLD设计方法的基础上,使用了代码移植技术等几种软件保护技术来保护软件。
     在Windows98操作系统平台下,为保证系统安全性,系统资源由系统通过虚拟化的方式进行统一管理。为了使保护卡能实现软件保护技术,需开发与保护卡配套的设备驱动程序。为此,本文在简单介绍Windows98的虚拟机结构和一些VxD的基本知识的基础上,给出了用VtoolsD开发保护卡的虚拟设备驱动程序的方法。主要从设备初始化、Win32应用程序对VxD的通信、VxD访问硬件设备和VxD处理硬件中断四个方面分析了虚拟设备驱动程序的开发。
Software Protection is a needed work for protecting software engineers' benefits as well as an important component of software engineering. After analysis of protecting and cracking encryption technique of software,the paper presents a software protection technique using CPLD(Complex Programmable Logic Device).
    Because the software for protection is mainly used in a real-time checking subsystem in an industry system,and needs faster speed of data transport,so the PCI(Peripheral Component Interconnect) interface criterion is utilized in the Software Protection card. The basis of Software Protection with CPLD is to design circuits according to PCI local bus criterion and the goal of software protection. In this paper the functions and principles of Software Protection card are introduced,and the circuit diagrams are also presented.
    The technique of Software Protection studied in this paper is realized by designing CPLD in the Software Protection card. After introduction of techniques of designing circuit with CPLD,some types of software protection technique involving code replanting are implemented in the card.
    Because in Windows 98 operation system,software and hardware resources are managed in a virtualized way to guarantee the system's safety,the device driver of the Software Protection card is developed to ensure its software protection ability. So,the technique of developing Virtual Device Driver with VtoolsD is presented after a brief introduction of Windows98 virtual machine structure and primary knowledge of VxD. Four main aspects of development of Virtual Device Driver are analyzed. They are device initialization,communication of Win32 application process and VxD,access of VxD to hardware and hardware interruption process in VxD.
引文
[1].看雪.加密与解密——软件保护技术及完全解决方案.电子工业出版社.2001年9月:1
    [2].张登福,林刚,蒋大宗,毕笃彦.伪随机序列及PLD实现在程序和系统加密中的应用.电子技术应用.2000年第6期:12
    [3].李长洲,魏蛟龙,周曼丽.SmartLock并口单片机软件狗加密技术.电子技术应用.2001年第7期:14
    [4].张长隆,欧建平,张在德.PCI总线接口技术及其在雷达数据采集通道中的应用.微处理.2000年第1期:45
    [5].李贵山,戚德虎.PCI局部总线开发者指南.西安电子科技大学出版社.1997年1月:5~6
    [6].马维华.从8086到PentiumⅢ微型计算机及接口技术.科学出版社.2000年2月:401~402
    [7].侯同强,刘和平.FPGA与CPLD器件的特点与应用.电子与自动化.2000年第2期:8~10
    [8].戴紫彬.在系统可编程器件的输入信号处理技术.电子技术.2000年第3期:29
    [9].潘松.CPLD/FPGA在电子设计中的应用前景.电子技术应用.1999年第7期:7~8
    [10].宋万杰,罗丰,吴顺君.CPLD技术及其应用.西安电子科技大学出版社.1999年9月:105
    [11].张有志.可编程逻辑器件(PLD)原理与应用.中国铁道出版社.1996年9月:4
    [12].[美]Tom Shanley Don Anderson著.刘晖 冀然然,夏意军译.PCI系统结构(第四版) 电子工业出版社 2000年7月:1
    [13].[美]Peter Norton,John Goodman著.张琦,顾斌,郝新译.PC技术内幕(第8版).清华大学出版社.2000年8月:334
    [14].何丰如.主机板实用维修技术(修订版).科学出版社.2001年2月:467~469
    [15].PCI Local Bus Specification(Rev 2.2).June 1998:1
    [16].李萍,夏斐斐.基于PCI软“核”的PCI总线接口设计与实现.电子技术应用.2000年第11期:24
    [17].苗克坚,陆尧,车立昌.微机PCI总线接口的研究与设计.航空计算技术.第30卷.2期,2000年6月:50
    [18].陈恒.PCI控制器的设计与实现.电子技术.2000年第1期:35~37
    [19].马卫国,何佩琨.通用高速PCI总线目标模块的设计.电子技术应用.1999年第1期:11
    [20]. Applied Micro Circuits Corporation. PRODUCTS DATA BOOK. 1998:2-7~2-11
    
    
    [21]. Altera Corporation. Component Selector Guide. October 2000:6~7
    [22].裘雪红,顾新,侯伯亨,李伯成.西安电子科技大学出版社.2001年2月:143~144
    [23].潘松,王国栋.VHDL实用教程.电子科技大学出版社.2000年3月:223~243
    [24].张凌.VHDL语言在FPGA/CPLD开发中的应用.电子工程师.2002年4月:9
    [25].赵旭光,郭万有,杨颂华.可编程逻辑器件原理、开发与应用.西安电子科技大学出版社.2000年8月:23~24
    [26].[美]Walter A.Triebel著.王克义,王钧,方晖,蔡旭斌译.硬件、软件及接口技术教程.清华大学出版社.1998年11月:251~284
    [27].彭礼孝.虚拟设备驱动程序开发起步与进阶.人民邮电出版社.2000年12月:25
    [28].吴亚坤.Windows98内核技术的深入分析.辽宁大学学报.自然科学版.第28卷.2001年.第1期:29~30
    [29]. Microsoft Corporation. The Microsoft Windows device driver kit(DDK) Documentation. June 1998
    [30].陈元琰,邓宗明,张睿哲,张晓竞.Visual C++ 6.0编程实用技术与案例.清华大学出版社.2001年5月:6~7
    [31].李海.PCI设备Windows通用驱动程序设计.电子技术应用.2000年第1期:20
    [32].武安河,周利莉.Windows设备驱动程序开发实务.电子工业出版社.2001年9月:40~175

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700