基于.Net卡的程序保护方法和系统技术方案

技术编号:2825694 阅读:268 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于.Net卡的程序保护方法和系统,属于信息安全领域。所述方法包括:第一装置编译第一源代码生成第一程序集,将该程序集存储在.Net卡中;第一装置提取第一源代码中被远程调用的类的信息组成新的类,在其中编写远程调用指令生成第二源代码,编译第二源代码生成第二程序集,将.Net卡和第二程序集提供给第二装置;第二装置运行第二程序集,远程调用第一源代码中的类,通过.Net卡的接口在.Net卡中运行类,并接收.Net卡返回的运行结果。所述系统包括:.Net卡、第一装置和第二装置。本发明专利技术减少了.Net卡使用者的工作量,方便使用,而且可以防止写入.Net卡的程序集被泄露,保证了代码的安全性。

【技术实现步骤摘要】

本专利技术涉及信息安全领域,特别涉及一种基于.Net卡的程序保护方法和系统。
技术介绍
.Net是微软的新一代技术平台,是全新的基于互联网的跨语言软件开发平台,顺应了当今软件工业分布式计算、面向组件、企业级应用、软件服务化和以Web为中心等大趋势。.Net并非开发语言,但是在.Net开发平台上可以支持多门开发语言。.Net最突出的一个特点是它能够使用户通过Web与众多智能设备相交互,同时确保用户而不是应用程序控制这个交互。这就使得微软.Net体验是极具个性化、综合化的体验,这种体验通过与XML Web服务相连的智能设备来实现。这些智能设备是一种具有Web功能的工具,如个人电脑、掌上电脑、智能电话,在这些设备中配上软件,这些软件使得它们在与用户、网络、信息及其它设备和服务的交互过程中更加智能化。所谓虚拟机,可以把它想象成一台用软件来模拟的机器,在这台机器里有处理器、内存、寄存器等各种硬件,模拟运行各种指令,在这台机器上运行的软件对运行环境没有特殊要求,所以虚拟机对在它上运行的程序是透明的。例如,x86虚拟机模拟的是x86指令程序的运行环境,c51虚拟机模拟的是c51指令程序的运行环境。远程方法调用发展到现在,已经有以下几种框架实现:DCE/RPC,CORBA,DCOM,MTS/COM+,Java RMI,Java EJB,Web Services/SOAP/XML-RPC,NET Remoting,其中,Microsoft.NET Remoting提供了一种允许对象通过应用程序域与另一对象进行交互的框架。众所周知,Web服务仅仅提供了一种简单的容易理解的方法来实现跨平台,跨语言的交互,而Microsoft.Net Remoting相对于Web服务就像Asp相对于CGI那样,实现了一种质的转变。.NetRemoting提供了一个可扩展的框架,它可以选择不同的传输机制(HTTP和TCP是内置的),不同的编码方式(SOAP以及二进制代码),安全设置(IIS或SSL),同时提供多种服务,包括激活和生存期支持。然而,即使如此Microsoft.Net remoting一般也是把服务端DLL引入到程序集,进而用来编译、运行。显然这样不适用于权限分离,而且当引入的内容比较重要、需要保密时,对-->于开发者而言,公开引入的内容不利于程序保护。.Net卡是一种可以运行.Net程序的微处理器智能卡。
技术实现思路
为了实现远程调用被保护程序时提高该程序的安全性,本专利技术提供了一种基于.Net卡的程序保护方法和系统。一种基于.Net卡的程序保护方法,所述方法包括:第一装置编译第一源代码生成第一程序集,将所述第一程序集存储在.Net卡中;所述第一装置提取所述第一源代码中被远程调用的类的名字空间和方法,组成新的类,在所述新的类中编写远程调用所述第一源代码中类的指令,生成第二源代码,编译所述第二源代码生成第二程序集,将所述.Net卡和第二程序集提供给第二装置;所述第二装置获得所述.Net卡和第二程序集后,运行所述第二程序集,远程调用所述第一源代码中的类,通过所述.Net卡的接口在所述.Net卡中运行所述类,并接收所述.Net卡返回的运行结果。所述第二装置通过客户通道ClientChannel,远程调用所述第一源代码中的类,接收.Net卡通过服务通道ServerChannel返回的运行结果;所述客户通道实现微软的通道发送接口IChannelSender和通道接口IChannel,所述服务通道实现微软的通道接收接口IChannelReceiver和所述通道接口IChannel。所述客户通道和服务通道通过PC/SC、HID或SCSI接口进行通信。所述第一源代码具体为由C#、VB.NET、J#或C++编写的代码;所述第二源代码具体为由C#、VB.NET、J#或C++编写的代码。所述.Net卡中存储的第一程序集是能够被其他程序集引用的.Net托管dll文件。一种基于.Net卡的程序保护系统,所述系统包括.Net卡、第一装置和第二装置;所述.Net卡包括:存储模块,用于存储对第一源代码编译后得到的第一程序集;接口模块,用于当所述存储模块存储的所述第一程序集被所述第二装置调用时,与所述第二装置通信;运行模块,用于当所述存储模块存储的所述第一程序集被所述第二装置调用时,运行所述第一程序集;所述第一装置包括:-->分析模块,用于分析得到所述第一源代码中被远程调用的类;处理模块,用于提取所述分析模块得到的所述类的名字空间和方法,组成新的类,在所述新的类中编写远程调用所述第一源代码中的类的指令,生成第二源代码;编译模块,用于编译所述第一源代码,生成所述第一程序集,并编译所述处理模块得到的第二源代码,生成第二程序集;所述第二装置包括:存储模块,用于存储所述第一装置的编译模块编译得到的第二程序集;调用模块,用于运行所述第二装置的存储模块存储的第二程序集,当运行到所述远程调用指令时,通过所述.Net卡的接口,调用所述.Net卡中存储的所述第一程序集,并接收所述.Net卡返回的运行结果。所述分析模块具体为语法分析器。所述第一源代码具体为由C#、VB.NET、J#或C++编写的代码;所述第二源代码具体为由C#、VB.NET、J#或C++编写的代码。所述Net卡的存储模块存储的第一程序集是能够被其他程序集引用的.Net托管dll文件。所述第二装置的调用模块具体用于运行所述第二装置的存储模块存储的第二程序集,当运行到所述远程调用指令时,通过所述第二装置的客户通道ClientChannel,调用所述.Net卡中存储的所述第一程序集,并通过所述.Net卡的服务通道ServerChannel接收所述.Net卡返回的运行结果;所述客户通道实现微软的通道发送接口IChannelSender和通道接口IChannel,所述服务通道实现微软的通道接收接口IChannelReceiver和所述通道接口IChannel。所述客户通道和服务通道通过PC/SC、HID或SCSI接口进行通信。本专利技术提供的技术方案带来的有益效果是:通过将待保护的源代码编译成程序集写入.Net卡,并根据该源代码中被远程调用的类生成包含远程调用指令的新的程序集,使用者可以直接将该新的程序集加入工程中使用,减少了工作量,方便使用,而且可以防止写入.Net卡的程序集被泄露,保证了代码的安全性。附图说明图1是本专利技术实施例1提供的基于.Net卡的程序保护方法流程图;图2是本专利技术实施例2提供的基于.Net卡的程序保护系统结构图。具体实施方式-->为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。本专利技术实施例提供的基于.Net卡的程序保护方法,具体包括:第一装置编译第一源代码生成第一程序集,将所述第一程序集存储在.Net卡中;所述第一装置提取所述第一源代码中被远程调用的类的名字空间和方法,组成新的类,在所述新的类中编写远程调用所述第一源代码中的类的指令,生成第二源代码,编译所述第二源代码生成第二程序集,将所述.Net卡和第二程序集提供给第二装置;所述第二装置获得所述.Net卡和第二程序集后,运行所述第二程序集,远程调用所述第一源代码中的类,通过所述.Net卡的接口本文档来自技高网
...

【技术保护点】
一种基于.Net卡的程序保护方法,其特征在于,所述方法包括:第一装置编译第一源代码生成第一程序集,将所述第一程序集存储在.Net卡中;所述第一装置提取所述第一源代码中被远程调用的类的名字空间和方法,组成新的类,在所述新的类中编写远程调用所述第一源代码中类的指令,生成第二源代码,编译所述第二源代码生成第二程序集,将所述.Net卡和第二程序集提供给第二装置;所述第二装置获得所述.Net卡和第二程序集后,运行所述第二程序集,远程调用所述第一源代码中的类,通过所述.Net卡的接口在所述.Net卡中运行所述类,并接收所述.Net卡返回的运行结果。

【技术特征摘要】
1.一种基于.Net卡的程序保护方法,其特征在于,所述方法包括:第一装置编译第一源代码生成第一程序集,将所述第一程序集存储在.Net卡中;所述第一装置提取所述第一源代码中被远程调用的类的名字空间和方法,组成新的类,在所述新的类中编写远程调用所述第一源代码中类的指令,生成第二源代码,编译所述第二源代码生成第二程序集,将所述.Net卡和第二程序集提供给第二装置;所述第二装置获得所述.Net卡和第二程序集后,运行所述第二程序集,远程调用所述第一源代码中的类,通过所述.Net卡的接口在所述.Net卡中运行所述类,并接收所述.Net卡返回的运行结果。2.根据权利要求1所述的基于.Net卡的程序保护方法,其特征在于,所述第二装置通过客户通道ClientChannel,远程调用所述第一源代码中的类,接收.Net卡通过服务通道ServerChannel返回的运行结果;所述客户通道实现微软的通道发送接口IChannelSender和通道接口IChannel,所述服务通道实现微软的通道接收接口IChannelReceiver和所述通道接口IChannel。3.根据权利要求2所述的基于.Net卡的程序保护方法,其特征在于,所述客户通道和服务通道通过PC/SC、HID或SCSI接口进行通信。4.根据权利要求1所述的基于.Net卡的程序保护方法,其特征在于,所述第一源代码具体为由C#、VB.NET、J#或C++编写的代码;所述第二源代码具体为由C#、VB.NET、J#或C++编写的代码。5.根据权利要求1所述的基于.Net卡的程序保护方法,其特征在于,所述.Net卡中存储的第一程序集是能够被其他程序集引用的.Net托管dll文件。6.一种基于.Net卡的程序保护系统,其特征在于,所述系统包括.Net卡、第一装置和第二装置;所述.Net卡包括:存储模块,用于存储对第一源代码编译后得到的第一程序集;接口模块,用于当所述存储模块存储的所述第一程序集被所述第二装置调用时,与所述第二装置通信;运行模块,用于当所述存储模块存储的所述第一程序集被所述...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:北京飞天诚信科技有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1