CN1749906A - 一种虚拟软件狗加密方法 - Google Patents
一种虚拟软件狗加密方法 Download PDFInfo
- Publication number
- CN1749906A CN1749906A CN 200510019681 CN200510019681A CN1749906A CN 1749906 A CN1749906 A CN 1749906A CN 200510019681 CN200510019681 CN 200510019681 CN 200510019681 A CN200510019681 A CN 200510019681A CN 1749906 A CN1749906 A CN 1749906A
- Authority
- CN
- China
- Prior art keywords
- software
- file
- information
- dog
- dll
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及一种虚拟软件狗加密方法,采用的方案是:编制采集用户本地计算机信息的文件ReadSerialPro.exe,ReadSerialPro.exe读取用户本地计算机的信息,并自动生成文件DASC. KEY,并将DASC.KEY发送给软件研制者,软件研制者根据用户发送过来的DASC.KEY,制作虚拟软件狗Coderead.DLL文件,并返回给用户,用户使用接收到的Coderead.DLL文件覆盖原Coderead.DLL文件,软件主体便可正常运行。本发明是一种基于动态链接库(DLL)文件的加密方法,DLL文件主要是通过模仿实际软件狗对软件主体运行的控制来仿真软件狗的,DLL文件具有类似软件狗的功能,可以取代软件狗,达到对软件进行加密的目的,起到虚拟软件狗的作用。
Description
技术领域
本发明属于信息安全领域中安全加密方法,具体地讲是一种虚拟软件狗加密方法。
背景技术
由于计算机软件是一种特殊的商品,极易复制,所以加密就成了保护软件的一种必要手段。依据加密原理和方式,目前厂商所采用的加密方法主要可分为两大类:软加密和硬加密。所谓软加密是不依靠特别硬件来实现对软件保护的技术,它的最大优势在于极低的加密成本,适合于小商品软件,有较大的市场;硬加密就是依赖特定的硬件,通过硬件和软件结合的方式来实现对软件的保护,加密后软件执行时需访问相应的硬件,硬加密安全性强但成本高。
目前市场上常采用的软加密方法有:
密码方式:系统在软件执行过程中在一些重要地方询问密码,用户须依照密码表输入密码,程序才能继续执行。这种方式的优点是实现简单,几乎不必投入成本,但存在破坏正常的人机对话、密码和加密点相对固定等缺陷,因此主要用于价格较低的软件,如游戏软件等。
软件自校验方式:开发商将软件装入用户硬盘时,安装程序会自动记录计算机硬件的奇偶校验和软件安装的磁道位置等信息,或者在硬盘的特殊磁道、CMOS中做一定标记,并自动改写被安装程序,此后软件执行时就会校验这些安装时记录的信息或标记。如果软件被用户拷贝到另外的计算机上,由于运行环境已经改变,软件将不能正常执行。使用这种方式可使用户在正常使用软件时感觉不到加密的存在,且系统相对比较可靠,已为许多软件开发商所采用。但这种加密方式也存在着一定缺陷,如用户增减或更换计算机硬件、压缩硬盘或出现CMOS掉电等情况都会造成软件不能正常执行,需要重新安装软件,过程繁琐。
钥匙盘方式:在软盘的特殊磁道写入一定信息以便运行时校验。这种软盘就好像一把钥匙一样,所以被人习惯称为钥匙盘。此种方式的加密简便可靠,成本也低,但用户执行软件时软盘驱动器被占用,会给用户利用软盘存取数据造成不便,而且软盘是一种消耗品,很容易因折伤、划伤、磁化、冷热等原因造成损坏。
光盘狗:只针对光盘软件的软加密技术。它通过识别光盘上的特征来区分是原版盘还是盗版盘。该特征是在光盘压制生产时自然产生的,即由同一张母盘压出的光盘特征相同,而不同的母盘压制出的光盘即便盘上内容完全一样,盘上的特征也不一样。这种特征是在盗版者翻制光盘过程中无法提取和复制的。普通的光盘加密技术,通常要制作特殊的母盘,进而改动母盘机,既需要额外花费,又耽误了软件的上市时间。而光盘狗技术不在母盘制造上动手脚,使得开发商可以自由选择光盘厂来压制光盘。光盘狗技术的低成本和较好的加密强度己经引起更多低价位软件厂商的兴趣,并在很多已经上市的软件中得到了广泛的应用。
但不是所有的软件都可以采用低价格、高销量来收回成本的。硬加密正是保证高档软件在市场生命周期中免受盗版侵害的一种功能强大的工具。
目前市场上常采用的硬加密方法有:
加密卡:风行于90年代初,加密卡的好处是由于加密卡上面不仅仅可以存放数据,而且可以用硬件实现简单的算法,在软件的执行过程中可以随时访问加密卡,不会对软件运行的速度带来太多的影响。由于加密卡是与计算机的总线交换数据,数据通讯协议完全由卡的厂家制定,没有统一的标准接口,让软件解密者有无从下手的感觉。北大方正早期的印刷软件都是采用这种方法来加密的,但这种加密方案需要打开计算机的机箱,占用扩展槽,一般还需要专门的人员来安装。另外,由于加密卡设计上的某些问题,很容易同现有的硬件发生冲突。考虑到成本,加密卡必须要批量生产,厂商一般不会对低价值的软件一下投入这么大的资金。由于种种问题,这种加密技术现在已经难得一见了。
加密锁(加密狗、软件狗):是为软件开发商提供的一种智能型的软件加密工具,它包含一个安装在计算机并行口或USB口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密锁的内部硬件电路就是软件的“指纹”,在出售软件时,将与软件内部“指纹”相一致的加密锁交给用户。用户在使用软件时,必须把加密锁连接到微机的并口或USB口上,软件执行程序向插在计算机上的加密锁发出查询命令,加密锁迅速计算、查询并给出响应,正确的响应才能保证软件继续运行。如果没有安装加密锁或者加密锁内部的“指纹”不匹配,则软件不能运行,以此来达到保护软件的目的。
目前市场上的加密锁分成四代产品,这四代加密锁代表了加密锁的发展过程,也从另一个侧面反映出解密思想的变化。
第一代是存储器型的加密锁。这是最有历史的加密锁,内部只有存储体,厂商只能对锁进行读、写。常见的有原金天地的“软件狗”、深思洛克的Keypro型加密锁、Rainbow的Cplus等。这种加密锁的主要特点是厂商可以预先把自己的保密数据设置到加密锁内,然后在软件运行时随机读取,这样防止了解密者通过简单重复并口数据来解密,但解密者进一步分析一下数据规律就可以解秘,这就是常说的“端口”层的数据分析。这种加密锁原理非常简单,是正在被逐步淘汰的产品,但其成本极低,即使在很低的价位也有很好的利润,加密厂商一般都不愿放弃这种加密锁;同时很多软件开发商由于成本原因又不得不采用,因此这种加密锁仍有一定的市场份额。
第二代是算法不公开的加密锁。硬件内部增加了单片机,即所谓内置CPU,厂商主要是利用算法功能进行加密。加密锁通常还增加了一些辅助功能,比如倒计数器、远程升级等。常见的有深思洛克的“深思I”型,彩虹天地公司的SuperPro、微狗,阿拉丁公司的MemoHASP等。利用单片机,软件与加密锁之间的数据通讯建立一个保密协议,数据都是经过加密的,解密者就难以分析出数据内容和规律了,因此对于这种加密锁的数据分析就不是停留在“端口”层了,解密者转向了“功能”层,就是对软件中的函数调用进行分析。为了抵挡功能层的数据分析,这种加密锁采用“软硬”兼施的策略。“软”的是指驱动程序内的反跟踪、外壳加密等软件工作,让解密者难以在功能层上捕捉到数据或者捉到了也无法仿真,这项技术的关键是根据对操作系统、微机系统的精确理解而不断研制出更新的加密驱动程序;“硬”的就是加密锁内的算法功能,解密者无法求解算法方程,也无法穷举算法变换,这大大增加了解密难度,这是掌握在加密者手中的武器。但是,加密者只能设置算法的参数,即所谓内含多少种算法可选,而算法内容并不知道。这样就限制了厂商对算法的使用,要么预先记录算法结果然后在软件运行时核对(使用码表);要么在软件中至少变换两次然后比较结果是否一致。如果解密者截获这些数据,通过统计、分析就有可能达到解密目的。
第三代加密锁,即所谓“可编程”的加密锁,1999年初,由北京深思洛克为代表推出。“可编程”加密锁概念的推出是软件加密技术的一次进步。“可编程”加密锁设计初衷是希望用户能够将软件中重要的代码或模块“移植”到加密保护设备中运行,使软件与加密锁实现真正的无缝链接。但由于成本限制,早期推出的几款“可编程”加密锁采用的低档单片机给“可编程”性造成了很大的局限,主要表现在:算法变换的复杂度不够高,指令编码空间较小,程序区的空间较小。这些局限性使得用户根本不可能利用“可编程”加密锁实现理想的高强度加密方案。
第四代加密锁是新推出的智能型加密锁。2002年,中国的软件保护行业迎来了一次较高层次的技术升级。国内软件保护行业的传统两强企业美国彩虹天地和北京深思洛克先后推出了以智能卡(Smart Card)技术为核心构建的新一代的软件加密保护系统。它在硬件上采用单片机芯片存储特定的算法程序,通过计算机接口对软件发出的密钥数据进行加密变换,以对抗逻辑分析仪。在软件上采取数据交换随机噪声技术、迷宫技术、As技术、算法植入技术等,有效地干扰各种静态和动态的分析。智能卡技术具有极高的安全性且功能强大,因此广泛应用于金融、军队、网络身份认证等对安全性、稳定性要求极高的领域。这次技术升级的标志性产品是深思洛克的深思IV型加密锁和美国彩虹天地公司的智能狗,它们实现了真正意义上的用户“可编程”。这两款产品支持软件厂商将复杂的算法“移植到加密锁内运算,软件中不再有该算法的副本。由于加密锁内可能是任意的数学方程,理论上没有确定解法,加密强度由厂家控制,几乎是没有限制的。
发明内容
本发明的目的是提供一种基于动态链接库DLL文件的,几乎无成本的虚拟软件狗(DLL文件)可以取代软件狗来控制软件主体的运行,同时实现软件狗的基本功能的虚拟软件狗加密方法,以克服上述的不足。
所谓动态链接库(Dynamic-Link Libraries,简称DLL),DLL是基于Windows的程序模块,简单地说就是一个可执行的模块(其扩展名为.DLL,是一个包含函数的库文件),模块中包含了可以被其它应用程序或其它DLL使用的例程和资源。程序员在编程时可将其放入自己的程序,然后在程序中便可调用DLL的函数了。所谓“动态链接”指在生成EXE文件时,并没有将DLL文件直接包含到程序中,而是当程序执行时才进行链接。一般来说,DLL(动态链接库)是由全局数据、服务函数和资源组成,在运行时被系统加载到进程的虚拟空间中,成为调用进程的一部分。函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL中定义有两种函数:导出函数(export function)和内部函数(internal function)。导出函数可以被其它模块调用,用于向外界提供服务,内部函数在定义它们的DLL程序内部使用。DLL具有节省内存,减少交换操作,节省磁盘空间,易于升级,提供扩展MFC库类的机制,支持多语言程序等众多优点。因此,硬件厂商大多提供DLL库的支持。跟一般的可执行程序(扩展名为.EXE)不同的是,DLL没有通常的主程序,因而不能直接运行,但它有多个入口。DLL具有如下特点:DLL的编制与具体的编程语言及编译器无关,只要遵守其开发规范并安排正确的调用接口,无论使用何种语言编制的DLL都具有通用性;使用DLL不是将其库代码拷贝,而只在程序中记录函数的入口点和接口,程序执行时才将代码载入内存。多个程序使用相同的DLL时,内存中只需装载一次,可以高效经济地使用内存;DLL不仅包含可执行代码,还可以包含数据和各种资源,扩大了库文件的使用范围;DLL中封装了一些可以被共享的资源,是Windows最重要的组成要素和WindowsAPI函数的封装形式,Windows最基本的3大组成模块Kernel,GDI和User都是.dll文件,他的许多新功能也是通过DLL来实现的。DLL文件是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。
为了实现上述目的,本发明所采用的方案是:用C++编制采集用户本地计算机信息和软件序列号信息的文件ReadSerialPro.exe,ReadSerialPro.exe将读取用户本地计算机的信息,并自动生成文件DASC.KEY,将DASC.KEY发送给软件研制者;软件研制者根据用户发送过来的DASC.KEY,通过若干算法和程序制作虚拟软件狗Coderead.DLL文件,并返回给用户;用户使用接收到的Coderead.DLL文件覆盖原Coderead.DLL文件,软件主体便可正常运行。
本发明是一种基于动态链接库(DLL)文件的加密方法,DLL文件主要是通过模仿实际软件狗对软件主体运行的控制来仿真软件狗的。密钥、算法以及软件主体中的一些关键公用程序都内置于DLL中,软件主体运行时必须读DLL文件,且DLL文件不可复制,离开本地机无法使用。因而DLL文件具有类似软件狗的功能,可以取代软件狗,达到对软件进行加密的目的,起到虚拟软件狗的作用。
本发明有益效果是:
(1)相对于软件狗(软件狗的硬件组成包括电源转换芯片、数据通信接口芯片、可编程器件、存储器芯片;软件包括提供给用户的接口)而言,我们的虚拟软件狗DLL文件可以仿真其基本功能(存放一些加密、解密操作所必须的重要的东西,并与软件主体进行通信),并且制作便利,成本低,不占用机器硬件资源,易于推广。
(2)由于虚拟软件狗中采用了先进的伪随机数生成技术以及随机混沌加密技术,因而加密强度高,效果好,破解困难。
(3)与市面上流行的软件狗相比,由于无需访问并行接口或USB接口,虚拟软件狗与软件主体在同一个文件夹下,因而运行速度快。
附图说明
图1为本发明的原理框图。
图2为本发明工作过程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述,但下述实施例不应理解为对本发明的限制。
本发明虚拟软件狗加密方法是一种基于动态链接库(DLL)文件的加密方法,将软件主体中的一些关键公用程序放入虚拟软件狗中,使得软件狗绝对不能被弃之不用。虚拟软件狗与软件主体工作时都需要读取用户本地计算机信息和软件序列号信息,其中虚拟软件狗中内置的巨量信息被切割、加密转换、散置于一个充分大的数组之中,准确找到这些内置信息的工作难度和强度自是不可想象。虚拟软件狗与软件主体之间的口令交流是动态的,周期近乎天文数字,所以要破译动态口令几乎成为不可能。
本发明利用用户本地计算机信息和软件序列号信息进行识别软件运行者,用户本地计算机信息主要包括机器指纹信息。所谓机器指纹,是指与计算机的硬件有关的不能复制的信息,这些信息通常包括CPU的序列号、硬盘的序列号和网卡的MAC地址等。不同的机器有不同的指纹,即使是同一厂家生产的同一批次同一配置的计算机,因而机器指纹可以起到唯一标识计算机的作用。
本发明用C++编制采集用户本地计算机信息和软件序列号信息的文件ReadSerialPro.exe,点击ReadSerialPro.exe,将读取用户本地计算机的信息(这些信息包括计算机名、用户名、CPU类型、CPU修订号、硬盘序列号、且具有唯一性)和软件序列号信息,并自动生成文件DASC.KEY。根据生成的DASC.KEY文件,通过若干算法和程序制作虚拟软件狗Coderead.DLL文件。其具体过程大致是:
①加密程序打开含有用户本地计算机信息和软件序列号信息的文件DASC.KEY,将信息切割、加密转换、散置于一个充分大的头文件jiami.h中。
②解密程序打开jiami.h,进行解密,收集原始信息。
③密码参数生成程序从计算机读取时钟信息,结合原始信息生成伪随机数种子等参数。
④密码生成程序根据密码参数生成周期不断扩展的伪随机数序列,即动态口令。
⑤内控程序将关键函数和if语句绑定在一起,防止反编译。
在实际应用中:
①将软件主体中的一些关键公用程序放入虚拟软件狗中,使得虚拟软件狗绝对不能被弃之不用。
②将用户本地计算机信息和软件序列号信息切割、加密转换、散置于一个充分大的数组之中,并将其内置于虚拟软件狗内,准确找到这些内置信息的工作难度和强度自是不可想象。
③在虚拟软件狗内编制的伪随机数发生器,可生成周期不断扩展的伪随机数序列,其周期近乎天文数字,所以要破译动态口令几乎成为不可能;
④内控程序将关键函数和if语句绑定在一起,可有效防止反编译。
本发明中虚拟软件狗实质是动态链接库(DLL)文件,通过模仿实际软件狗对软件主体运行的控制来仿真软件狗的。DLL文件可向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。Windows将遵循下面的搜索顺序来定位DLL:包含EXE文件的目录、进程的当前工作目录、Windows系统目录、Windows目录、列在Path环境变量中的一系列目录。
如图1所示:用户点击ReadSerialPro.exe文件(读取用户的计算机信息)后,自动生成文件DASC.KEY(包含用户的计算机信息),并将DASC.KEY发送给软件研制者;软件研制者根据用户发送过来的DASC.KEY,制作虚拟软件狗Coderead.DLL文件,并返回给用户;用户使用接收到的Coderead.DLL文件覆盖原Coderead.DLL文件,软件主体便可正常运行。
如图2所示,其中,软件主体主要由必要程序、加密点、口令组成,虚拟软件狗主要由关键程序、预置信息、口令组成。软件主体中的口令是使用伪随机数发生器并结合计算机时钟信息,计算机信息生成;虚拟软件狗中的口令是使用相同的伪随机数发生器并结合计算机时钟信息,虚拟软件狗中的预置信息生成。加密点由加密函数设定。预置信息是用户本地计算机信息经过加密算法和密钥加密而得。其工作过程描述如下:
软件主体在每次运行前都要先被指向一段加密代码(即加密点函数)中,执行后读取虚拟软件狗,将虚拟软件狗中的动态口令与软件主体中的动态口令进行比较,若两者相等,则虚拟软件狗与软件主体动态同步,该用户是合法的,软件主体从虚拟软件狗中获取必要程序,软件正常工作;若两者不相等,则该用户不是合法的,软件的执行受到限制,立即中止退出。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (3)
1、一种虚拟软件狗加密方法,所采用的方案是:用计算机语言编制采集用户本地计算机信息和软件序列号信息的文件ReadSerialPro.exe,ReadSerialPro.exe读取用户本地计算机的信息和软件序列号信息,生成文件DASC.KEY,并将DASC.KEY发送给软件研制者,软件研制者根据用户发送过来的DASC.KEY,制作虚拟软件狗Coderead.DLL文件,并返回给用户,用户使用接收到的Coderead.DLL文件覆盖原Coderead.DLL文件,软件主体便可正常运行。
2、如权利要求1所述的虚拟软件狗加密方法,其具体过程是:
①利用软件自带的信息采集文件ReadSerialPro.exe采集用户本地计算机信息和软件序列号信息,生成文件DASC.KEY;
②加密程序打开含有用户本地计算机信息和软件序列号信息的文件DASC.KEY,将信息切割、加密转换、散置于一个充分大的头文件jiami.h中;
③解密程序打开jiami.h,进行解密,收集原始信息;
④密码参数生成程序从计算机读取时钟信息,结合原始信息生成伪随机数种子等参数;
⑤密码生成程序根据密码参数生成周期不断扩展的伪随机数序列,即动态口令;
⑥内控程序将关键函数和if语句绑定在一起,防止反编译。
3、如权利要求1或2所述的虚拟软件狗加密方法,其特征在于:
①将软件主体中的一些关键公用程序放入虚拟软件狗中,使得虚拟软件狗绝对不能被弃之不用;
②将用户本地计算机信息和软件序列号信息切割、加密转换、散置于一个充分大的数组之中,并将其内置于虚拟软件狗内,准确找到这些内置信息的工作难度和强度自是不可想象;
③在虚拟软件狗内编制的伪随机数发生器,可生成周期不断扩展的伪随机数序列,其周期近乎天文数字,所以要破译动态口令几乎成为不可能;
④内控程序将关键函数和if语句绑定在一起,可有效防止反编译。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100196817A CN100346251C (zh) | 2005-10-28 | 2005-10-28 | 一种虚拟软件狗加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100196817A CN100346251C (zh) | 2005-10-28 | 2005-10-28 | 一种虚拟软件狗加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1749906A true CN1749906A (zh) | 2006-03-22 |
CN100346251C CN100346251C (zh) | 2007-10-31 |
Family
ID=36605390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100196817A Expired - Fee Related CN100346251C (zh) | 2005-10-28 | 2005-10-28 | 一种虚拟软件狗加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100346251C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414342B (zh) * | 2007-10-19 | 2010-06-02 | 西门子(中国)有限公司 | 软件狗及其实现软件保护的方法 |
CN103136466A (zh) * | 2013-02-04 | 2013-06-05 | 福州大学 | 一种基于加密狗的Web3D加密方法 |
CN114422143A (zh) * | 2022-01-13 | 2022-04-29 | 中国平安人寿保险股份有限公司 | 基于人工智能的数据动态加密方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1092533A (zh) * | 1993-10-29 | 1994-09-21 | 北京市中教天城信息工程公司 | 加密数据自行传递的软件加密方法及子母软件加密狗 |
CN2372721Y (zh) * | 1999-06-18 | 2000-04-05 | 北京深思洛克数据保护中心 | 可编程的软件加密锁 |
US7320075B2 (en) * | 2001-11-20 | 2008-01-15 | Safenet, Inc. | Software protection method utilizing hidden application code in a protection dynamic link library object |
-
2005
- 2005-10-28 CN CNB2005100196817A patent/CN100346251C/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414342B (zh) * | 2007-10-19 | 2010-06-02 | 西门子(中国)有限公司 | 软件狗及其实现软件保护的方法 |
CN103136466A (zh) * | 2013-02-04 | 2013-06-05 | 福州大学 | 一种基于加密狗的Web3D加密方法 |
CN114422143A (zh) * | 2022-01-13 | 2022-04-29 | 中国平安人寿保险股份有限公司 | 基于人工智能的数据动态加密方法、装置、设备及介质 |
CN114422143B (zh) * | 2022-01-13 | 2023-06-20 | 中国平安人寿保险股份有限公司 | 基于人工智能的数据动态加密方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100346251C (zh) | 2007-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Maas et al. | Phantom: Practical oblivious computation in a secure processor | |
CN102598017B (zh) | 提高Java字节码的防窜改能力的系统和方法 | |
CN101763265B (zh) | 一种过程级软硬件协同设计自动化开发方法 | |
US20120260102A1 (en) | System and method for executing an encrypted binary from a memory pool | |
US10713339B2 (en) | Build system with plugins for encryption of application components | |
KR20140053754A (ko) | 부 채널 및 반복 호출 공격들의 방지를 위한 동적 시간 가변 연산 경로 시스템 및 방법 | |
WO2008144218A1 (en) | Transformations for software obfuscation and individualization | |
CN102043932A (zh) | 一种防止Java程序被反编译的方法 | |
CN101158911A (zh) | .Net程序保护方法及装置 | |
EP2901348A1 (en) | Application randomization | |
US20150143533A1 (en) | Method of generating a structure and corresponding structure | |
Vingralek | Gnatdb: A small-footprint, secure database system | |
WO2011013120A1 (en) | System and method for limiting execution of software to authorized users | |
CN100346251C (zh) | 一种虚拟软件狗加密方法 | |
CN101964033B (zh) | 一种平板探测器机器识别码的生成方法及扩展应用方法 | |
CN100595739C (zh) | 财务数据访问方法及系统 | |
CN107958141A (zh) | 一种基于芯片id号的软件保护方法 | |
CN110597496B (zh) | 应用程序的字节码文件获取方法及装置 | |
CN107563226A (zh) | 一种存储器控制器、处理器模块及密钥更新方法 | |
CN101593258B (zh) | 一种在软件保护装置中实现.Net虚拟机的系统和方法 | |
Mesbah et al. | Reverse engineering a Java Card memory management algorithm | |
Dadzie et al. | SA-SPM: An efficient compiler for security aware scratchpad memory | |
Chaumette et al. | An Efficient and Simple Way to Test the Security of Java CardsTM. | |
CN2372721Y (zh) | 可编程的软件加密锁 | |
Toegl et al. | Towards platform-independent trusted computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071031 Termination date: 20091130 |