一种在软件保护装置中实现.Net虚拟机的系统和方法制造方法及图纸

技术编号:4170427 阅读:219 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种在软件保护装置中简化实现.Net虚拟机的系统和方法,属于信息安全领域。所述在软件保护装置中简化实现.Net虚拟机的系统包括:内存管理模块、指令解析模块、加载模块、系统库模块和接口库模块。所述方法包括如下步骤:实现内存管理;实现可加载核心代码的加载器;实现核心代码解析的指令解析器;实现系统库;以及实现接口库。本发明专利技术通过在软件保护装置中实现内存管理装置、指令解析装置、加载装置、系统库装置和接口库装置,从而实现了.Net虚拟机,允许用户根据自己的需要选择不同的.Net开发语言,将其植入软件保护装置,解决了软件保护装置内存有限的问题。

System and method for implementing.Net virtual machine in software protection device

The present invention provides a system and method for simplifying the implementation of an.Net virtual machine in a software protection device, belonging to the field of information security. The system for simplifying the implementation of the.Net virtual machine in the software protection device comprises a memory management module, an instruction parsing module, a loading module, a system library module and an interface library module. The method comprises the following steps: realizing memory management; implementing a loader capable of loading core code; an instruction parser for realizing kernel code analysis; implementing a system library; and implementing an interface library. The memory management device, command analyzing device, loading device, device and system library interface library device in the software protection device, in order to achieve a.Net virtual machine, allowing the user to select a different.Net development language according to their own needs, implanted in the software protection device to solve the problem of limited memory software protection device.

【技术实现步骤摘要】

本专利技术属于信息安全领域,尤其涉及一种在软件保护装置中简化实现.Net 虚拟机的系统和方法。
技术介绍
.Net是微软的新一代技术平台,是全新的基于互联网的跨语言软件开发平 台,顺应了当今软件工业分布式计算、面向组件、企业级应用、软件服务化和以 Web为中心等大趋势。.Net并非开发语言,但是在.Net开发平台上可以支持多门 开发语言。.Net最突出的一个特点是它能够使用户通过Web与众多智能设备相 交互,同时确保用户而不是应用程序控制这个交互。这就使得微软.Net体验是极 具个性化、综合化的体验,这种体验通过与XMLWeb服务相连的智能设备来实 现。这些智能设备是一种具有Web功能的工具,如个人电脑、掌上电脑、智能 电话,在这些设备中配上软件,这些软件使得它们在与用户、网络、信息及其它 设备和服务的交互过程中更加智能化。.Net语言的编译分为两个阶段,首先高级语言被编译成一种称作IL (中间 代码)的中间语言,与高级语言相比,IL更像是机器语言,然而,IL却包含一 些抽象概念(比如类、异常),这也是这种语言被称为中间语言的原因。高级语 言在初次被编译时,编译器做两件事首先把编译得到的IL存储在DLL或EXE 中,然后为类的每个方法创建一个stub函数,此函数会调用即时编译器,并将 自身的地址作为参数传给编译器。即时编译器则从DLL或EXE中获取相应的IL, 编译成机器语言,并将内存中的原零时调用函数替换成机器语言。stub函数再调 用编译器,将自身编译为本地机器语言。JIT是一个典型的即时编译器,JIT编 译器在每段代码执行前进行编译,编译的结果为本地静态机器码,如x86指令程 序的运行环境下的机器码。.NET Framework没有限制应用程序的类型,它可以实现开发的应用程序包 括Windows应用程序、Web应用程序、Web服务和其他各种类型的应用程序。由此.NET Framework的设计方式保证它可以用于各种语言比如C弁语言、C++、 Visual Basic、 JScript,甚至一些旧的语言,如COBOL。 .NET Framework功能实 现主要在于它包含一个非常大的代码库和.NET公共语言运行库(Common Language Runtime, CLR),代码库使得客户可以在客户语言(如C弁)中通过面向对 象编程技术(OOP)来使用这些代码,而.NET公共语言运行库负责管理用.NET库 开发的所有应用程序的执行。所以,使用.NET Framework编写应用程序,实质 就是使用.NET代码库编写代码,编程语言被目标操作系统能够理解,需要编译 代码,将.NET Framework代码库中的代码变译成Microsoft的中间语言。所谓虚拟机,可以把它想象成一台用软件来模拟的机器,在这台机器里有处 理器、内存、寄存器等各种硬件,模拟执行各种指令,在这台机器上运行的软件 对运行环境没有特殊要求,所以虚拟机对在它上运行的程序是透明的。例如,x86 虚拟机模拟的是x86指令程序的运行环境,c51虚拟机模拟的是c51指令程序的 运行环境软件保护装置是一种通过标准的个人计算机接口提供信息加密处理的便携 式设备。它内置单片机或智能卡芯片,可以存储密钥或数字证书,利用软件保护 装置内置的密码算法实现对信息的加密功能。软件保护装置能够很好地保护软件 版权,防止盗版。加密锁(又称加密狗或软件狗)是一种常见的软件保护装置。在现有技术中,虚拟机一般是用于PC机的。对于软件保护装置,由于存储 空间、内存有限,在其中安装虚拟机有一定的难度。而且,即使在其中实现了虚 拟机,也难以用其来运行代码。
技术实现思路
为解决现有技术中,软件保护装置存储空间和内存有限,虚拟机难以在软件 保护装置中实现的问题,本专利技术提供了一种在软件保护装置中简化实现.Net虚拟机的系统和方法。一方面,本专利技术提供了一种在软件保护装置中简化实现.Net虚拟机的系统, 具体包括内存管理模块、指令解析模块、加载模块、系统库模块和接口库模块; 所述内存管理模块连接于所述加载模块,用于管理内存的分配、回收及复用; 所述指令解析模块连接于所述加载模块、系统库模块及接口库模块,用于在 软件保护装置中写入的代码在软件保护装置中运行时,将代码运行时的中间指令(IL指令)解析成虚拟机所能运行的指令;所述加载模块连接于所述指令解析模块,用于写入软件保护装置中的代码在 软件保护装置中运行时,根据所述指令解析模块的需要将指定的内容加载到内存 中;所述系统库模块连接于所述指令解析模块,用于在软件保护装置中模拟主机 上的系统库;所述接口库模块连接于所述指令解析模块,用于实现主机和软件保护装置及 软件保护装置内各部分之间的通信。 所述软件保护装置为加密锁。所述内存管理模块通过引用计数(reference count)和/或垃圾回收(garbage collection)机制来管理内存。本专利技术还提供了一种在软件保护装置中简化实现.Net虚拟机的方法,具体如下1) 、实现内存管理由于系统内存很小,采用多种内存分配策略以达到最优使用内存;内存根据 需要分为两个池,分别为固定大小内存池,可变内存池;通过引用计数(reference count)禾口/或垃圾回收(garbage collection)机制来管理内存;2) 、实现可加载核心代码的加载器在解析运行代码时,根据需要在被执行的文件中寻找相应的内容加载到内存 中供指令解析使用;3) 、实现核心代码解析的指令解析器 实现用于控制整个执行流程的指令解析器;4) 、实现系统库 实现相应的系统调用及功能;5) 、实现接口库实现主机和软件保护装置以及软件保护装置内各部分之间的通信。 所述一种在软件保护装置中简化实现.Net虚拟机的方法,还可以包括核心代码简化优化的步骤。所述核心代码简化优化的方法可以但不限于哈希算法、函数数组等。所述实现内存管理是指实现内存的分配、回收及复用。所述步骤2中,在软件保护装置中实现加载器,是为了将写入软件保护装置 的代码分段加载到软件保护装置的内存。所述步骤3,在软件保护装置中实现(植入)的系统库与主机中的系统库相 对应。有益效果本专利技术通过在软件保护装置中实现内存管理装置、加载装置、指令解析装置、系统库装置和接口库装置,从而在软件保护装置中实现了.Net虚 拟机,允许用户根据需要选择不同的.Net开发语言,将其植入软件保护装置,解 决了软件保护装置内存有限的问题。附图说明图1是本专利技术实施例一种在软件保护装置中简化实现.Net虚拟机的系统的结 构示意图。图2是本专利技术实施例一种在软件保护装置中简化实现.Net虚拟机的方法的流程图。具体实施例为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实 施方式作进一步地详细描述。如图1所示,本专利技术提供了一种在软件保护装置中简化实现的.Net虚拟机的 一个优选实施例。在本实施例中,软件保护装置具体为加密锁。本实施例中用户 使用VS2005微软最新的IDE环境,以托管代码中任一代码类型开发其所需软件, 并将该软件中核心代码植入到加密锁。如图中所示,该加密锁中实现.Net虚拟机 的系统包括内存管理模块101、加载模块102、指令解析模块103、系统库模块 1本文档来自技高网
...

【技术保护点】
一种在软件保护装置中简化实现.Net虚拟机的系统,其特征在于,所述系统包括:内存管理模块、指令解析模块、加载模块、系统库模块和接口库模块; 所述内存管理模块连接于所述加载模块,用于管理内存的分配、回收及复用; 所述指令解析模块连接于所述加载模块、系统库模块和接口库模块,用于在软件保护装置中写入的代码在软件保护装置中运行时,将代码运行时的中间指令解析成虚拟机所能运行的指令; 所述加载模块连接于所述指令解析模块,用于写入软件保护装置中的代码在软件保护装置中运行时,根据所述指令解析模块的需要将指定的内容加载到内存中; 所述系统库模块连接于所述指令解析模块,用于在软件保护装置中模拟主机上的系统库; 所述接口库模块连接于所述指令解析模块,用于实现主机和软件保护装置及软件保护装置内各部分之间的通信。

【技术特征摘要】

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

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

1