一种提高软件保护安全性的方法及装置的制作方法

文档序号:6573289阅读:230来源:国知局
专利名称:一种提高软件保护安全性的方法及装置的制作方法
技术领域
本发明属于软件保护装置及软件保护技术,特别涉及通过在软件保护装置中实现指令代码字典库的一种提高软件保护安全性的方法及装置。
背景技术
现有技术中,外壳程序是软件保护的一种快速、简单的保护方案,它不像使用接口函数需要对源代码进行改动,而是自动给可执行应用程序加了一个保护层。并且这些外壳都具有专门的反跟踪、反调试的功能。应用外壳加密时,在程序开始运行和运行当中会自动地访问软件保护装置是否存在。假如软件保护装置不存在,应用程序将不能运行。所以,很多软件开发商采用外壳程序对其软件进行加密。但是,随着各种外壳程序的出现,通用的解外壳工具也出现了,这些工具并不针对某种特别的外壳程序,但能够采用某种特别的方法脱掉大部分外壳加密程序的壳,从而给外壳程序加密带来了安全隐患,不能确保被保护软件的安全性。
现有的应用软件保护装置保护软件的原理是将软件中的核心程序写入软件保护装置,并且不在主机上保留这一部分程序的副本。但现有的软件保护装置在将这一部分程序写入软件保护装置时,需将该程序的源代码在特定开发环境下编译成软件保护装置能够运行的指令文件,才能将文件写入到软件保护装置,这一过程需要开发人员对程序进行多次改写,花费时间较长且过程繁琐。
软件保护装置是一种带有处理器和存储器的小型硬件装置,它可通过计算机的数据通讯接口与计算机连接。可预置加密算法,且相关的运算完全在装置内部运行,具有抗攻击的特性,安全性极高,加密锁是软件保护装置的一种。
在现有技术中,指令的基本格式为地址码和操作码两个部分。地址码,表明操作数的地址,其位数决定了直接能访问的内存空间。常见的地址结构格式四、三、二、一、零地址指令。操作码表明指令应该进行什么性质的操作,所以操作码的位数决定了系统中指令的多少,常见的操作码格式有定长操作码和扩展操作码。

发明内容
鉴于现有技术在采用外壳程序加密和原有软件保护装置保护软件时,给软件安全性带来的威胁以及保护过程的繁琐。因此本发明的目的是提供了一种提高软件保护安全性的方法及装置,所述提高软件保护安全性的方法包括以下两个过程a,处理被保护软件;b,执行被保护软件;所述处理被保护软件的过程包括如下内容1)查阅所述被保护软件和指令代码字典库;2)删除所述被保护软件与所述指令代码字典库中操作码相同的指令代码;3)在被保护软件中写入与软件保护装置通讯的通讯指令。
所述执行被保护软件的过程包括如下具体内容1)执行所述被保护软件;2)执行通讯指令,访问所述软件保护装置,执行指定操作,返回结果;3)继续执行所述被保护软件。
所述处理被保护软件的步骤2)还可以包括将所述指令代码写入软件保护装置。
所述指令代码字典库是包含被保护软件所用指令集的指令代码和软件保护装置所能执行的本地指令代码的相关集合;所述指令代码字典库还包括索引。
所述指令代码字典库中的被保护软件所用指令集的指令代码为编写程序时常用的指令代码且该指令集是不断更新的。
所述处理被保护软件具体为1)查阅被保护软件和软件保护装置指令代码字典库;2)找到被保护软件中与软件保护装置指令代码字典库中操作码相同的指令代码;3)将被保护软件中找到的与软件保护装置指令代码字典库中操作码相同的指令代码删除;
4)在被保护软件中写入与软件保护装置通讯的通讯指令。
所述软件保护装置中预置了指令代码字典库。
所述每个软件保护装置内部已设置的本地指令代码的顺序是一致的,根据不同的保护需要,所述本地指令代码可以设置不同的调用顺序,即设置的不同的索引;或每个软件保护装置内部已设置的本地指令代码顺序是不一致的。
所述处理被保护软件还可以具体为1)查阅被保护软件和指令代码字典库;2)找到指令代码字典库中与被保护软件中指令代码操作码相同的指令代码;3)将指令代码字典库中找到的指令代码所对应的软件保护装置能执行的本地指令代码写入软件保护装置4)并将在被保护软件中找到的与指令代码字典库中操作码相同的指令代码删除;5)在被保护软件中写入与软件保护装置通讯的通讯指令。
所述软件保护装置中没有预置指令代码字典库。
所述软件保护装置中写入的本地指令代码是根据被保护软件的情况确定的,即对不同的软件进行保护时,写入到软件保护装置中的指令顺序是不同的,且该写入软件保护装置中的本地指令代码是指令代码字典库中与被保护软件中相同的指令代码操作码所对应的本地指令代码。
所述通讯指令可以写在所述删除指令代码的原位置,可以在原删除指令代码的位置处写入调用所述通讯指令的指令,该所述通讯指令写在被保护软件可执行文件的其他位置,所述通讯指令还可以写在被保护软件执行文件的起始地址处,调用时,所述通讯指令填充原删除指令代码的位置。
所述通讯指令由软件保护装置生产商提供。
所述被保护软件中所删除的指令代码的操作码与软件保护装置指令代码字典库中的部分指令代码的操作码是相同的。
所述通讯指令用于访问软件保护装置、通知软件保护装置执行指定指令代码,并返回执行结果。
所述执行被保护软件的过程具体包括如下步骤步骤1.执行被保护软件;步骤2.软件执行到通讯指令处,访问软件保护装置,并传入指令所需的信息;步骤3.执行软件保护装置中的操作,由通讯指令返回结果,继续执行被保护软件。
根据软件保护装置与主机交互的步骤2,所述传入所需信息是用于通知软件保护装置执行哪条预置的指令。
所述执行被保护软件的过程,在步骤2或步骤3传入指令所需的信息或返回结果时,需要在软件保护装置与主机间进行一系列变换。
所述变换包括在软件保护装置虚拟机与主机间进行的内存地址、寄存器和堆栈的相互映射。
本发明还提供了一种提高软件保护安全性的系统具体包括读取模块该模块用于读取指令代码字典库和被保护软件中的指令代码;选取模块该模块用于在被保护软件中选取与指令代码字典库中相同指令代码操作码的指令代码;删除模块该模块用于在被保护软件中删除选取模块在被保护软件中选取的指令代码;运行模块该模块用于完成被保护软件在主机与软件保护装置中的运行;指令代码字典库用于确定被保护软件中欲删除的指令代码,还可以确定写入软件保护装置中的本地指令代码;写入模块该模块用于在被保护软件或软件保护装置中写入所需内容。
所述提高软件保护安全性的系统还包括软件保护装置;且该装置用于接收主机发送的命令,并执行指定的其内部的本地指令代码。
所述指令代码字典库可以预置在软件保护装置内部。
所述提高软件保护安全性的系统还包括索引模块,该模块用于设置软件保护装置指令代码字典库中的指令代码的排列顺序,而该指令代码是与被保护软件中删除的指令代码对应的。
所述写入模块写入的内容包括在被保护软件中写入与软件保护装置通讯的通讯指令或根据被保护软件中指令情况在软件保护装置中写入指令代码字典库中的部分内容或在被保护软件中写入调用通讯指令的指令,此时,在删除指令代码的原位置写入调用通讯程序的指令,通讯程序写入被保护软件的其他位置。
所述写入模块可以把通讯指令写在删除指令代码的原位置,还可以写在被保护软件可执行文件的起始位置在被调用时填充原删除指令代码的位置。
与现有技术相比,本发明的有益效果在于使用软件保护装置对软件加密提高了软件保护的安全性。
结合软件保护装置保护软件的过程省去了编写软件保护装置中程序的过程,简化了软件开发商对软件保护装置的开发过程。
对软件保护的过程不需要开发人员的参与。


图1是提高软件保护安全性的一种方法的流程图。
图2是提高软件保护安全性的另一种方法的流程图。
图3为软件保护装置与主机进行交互的过程。
图4是软件保护装置与主机进行交互的具体流程。
图5是本发明提供的一种实现提高软件保护安全性方法的装置图。
图6是本发明提供的另一种实现提高软件保护安全性方法的装置图。
具体实施例方式
本发明提供一种提高软件保护安全性的方法及装置。下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。在下述实施例中,所述对软件保护装置的处理采用第一种处理方式,所述软件保护装置是加密锁。
图1是提高软件保护安全性的一种方法的流程图,具体步骤如下步骤101.获取软件加密锁。
在本实施例中,加密锁中预置指令代码字典库,该指令代码字典库中的指令代码为常用指令代码,且指令代码字典库是可以不断更新的。
在本实施例中,每个软件保护装置中的指令代码字典库中的指令代码设置了不同的顺序。
在本实施例中,指令代码字典库包含被保护软件所用指令集的指令代码和软件保护装置所能执行的本地指令代码。
步骤102.选择被保护软件,所选择被保护软件中含有至少一条常用指令代码。
步骤103.查阅被保护软件和指令代码字典库,并删除被保护软件中与软件加密锁中指令代码操作码相同的指令代码。
在本实施例中,被删除指令代码为X86指令代码。
步骤104.在被保护软件删除代码处写入通讯指令。
在本实施例中,通讯指令是由加密锁生产商提供。
在本实施例中,对多种软件写通讯指令时,可以共用一个指令,也可以只对指令中的部分参数、地址做少量改变。
步骤105.保存含通讯指令的被保护软件。
图2是提高对被保护软件保护的另一种方法的流程图,即在所述加密锁中未预置指令代码字典库。
步骤201.获取软件加密锁。
步骤202.选择被保护软件,可以执行步骤203.删除与软件加密锁中本地指令代码对应的指令代码。还执行步骤205向加密锁中写入加密锁能执行的本地指令代码。
在本实施例中所述步骤203和步骤205没有先后关系。
步骤204在被保护软件删除指令代码处写入通讯指令,执行步骤206;步骤206保存写入通讯指令的被保护软件。
图3是加密锁开发后与主机进行交互的过程,在本实施例中,通讯指令是用于访问加密锁、通知加密锁执行指定代码,并返回执行结果及完成加密锁与主机交互进行的一系列的变换。
具体步骤如下
本实施例由301,302交互完成。具体步骤为(1)执行被保护软件;(2)软件执行到通讯指令处,访问软件加密锁,并传入指令所需的信息;在软件加密锁与主机间进行一系列变换,执行步骤303-310,包括内存地址、寄存器、堆栈之间相互映射如下。
所述内存映射是指将主机中存储这部分内容的内存地址变换为软件加密锁中的内存地址。
所述寄存器映射是指这部分指令运行所需的寄存器变换为软件加密锁内的寄存器。
所述堆栈映射,是指对计算机运行这段程序的堆栈地址映射到软件加密锁的堆栈空间。
根据软件加密锁与主机交互过程的步骤2所述通讯指令完成输入数据工作。
所述输入数据包括,内存数据输入可以包括寄存器数据输入、堆栈数据输入。
所述通讯指令使用所述输入数据完成软件加密锁的更新工作,包括地址变换、寄存器变换、堆栈变换,这种衔接工作是在运行前的。
所述地址变换是将这段程序运行所需要的内存映射并传入到软件加密锁中。
所述寄存器变换是将这段程序运行所需要的寄存器映射并传入到软件加密锁中。
所述堆栈变换是将这段程序运行所需要的堆栈映射并传入到软件加密锁中。
(3)执行软件加密锁中的操作,由通讯指令返回结果,继续执行被保护软件。
根据软件加密锁与主机交互过程的步骤3所述通讯指令完成输出数据的工作。
所述输出数据包括,内存数据输出,寄存器数据输出、堆栈数据输出。
根据软件加密锁与主机交互过程的步骤3所述通讯指令使用所述输出数据完成计算机内程序运行环境的更新工作,包括地址反变换、寄存器反变换、堆栈反变换,这种衔接工作是在运行后的。
所述地址反变换是将软件加密锁运行完所述程序段返回的输出内存数据并更新到计算机内运行程序的内存。
所述寄存器反变换是将软件加密锁运行完所述程序段返回的输出寄存器数据并更新到计算机内运行程序的寄存器。
所述堆栈反变换是将软件加密锁运行完所述程序段返回的输出堆栈数据并更新到计算机内运行程序的堆栈。
图4是软件加密锁与主机进行交互的具体流程。
步骤401运行用户程序,主机将程序调入内存。
在本实施例中,运行的用户程序如下int add(int a,int b){return a+b+constVar;}在本实施例中,constVar是一个全局变量。
步骤402 CPU运行用户程序。
在本实施例中,经编译后将产生x86的指令,用汇编语言表示如下00401020 push ebp00401021 mov ebp,esp00401023 sub esp,40h00401026 push ebx00401027 push esi00401028 push edi00401029 lea edi,[ebp-40h]0040102C mov ecx,10h00401031 mov eax,OCCCCCCCCh00401036 rep stos dword ptr[edi]00401038 mov eax,dword ptr[ebp+8]
0040103B adde8x,dword ptr[ebp+OCh]0040103E addeax,dword ptr
00401044 popedi00401045 popesi00401046 popebx00401047 movesp,ebp00401049 popebp0040104A ret在本实施例中,push ebp、mov eax,OCCCCCCCCh等一系列指令是常用指令,这些常用指令及其对应软件加密锁所能执行的本地指令代码以字典的形式放入软件加密锁中,该软件加密锁根据预置的指令执行方式来执行这些指令。
在本实施例中,上面指令mov eax,dword ptr[ebp+8],addeax,dword ptr[ebp+OCh],两条指令用来完成加法运算,这两条指令是存放在指令代码字典库中的,且在指令代码字典库中的索引为1。
在本实施例中,被保护软件与上面指令相同的部分改写成如下通讯指令push 1call funl在本实施例中,步骤203、204,完成主机CPU与软件加密锁CPU的衔接,包括以下步骤。
步骤403运行至通讯处,访问软件加密锁并进行需要的变换。
在本实施例中,所述的变换包括内存变换、寄存器变换、堆栈的变换。
在本实施例中,内存变换是指将程序在主机中的内存地址变换为虚拟机或软件加密锁中的内存地址,即步骤308的过程。
在本实施例中,寄存器的变换是由将主机中寄存器的初始值送入软件加密锁中实现的。
在本实施例中,所用到的寄存器有ebp、esi、esp,在软件加密锁中程序段运行结束后,要将上述寄存器数据更新到主机运行程序的寄存器中。
在本实施例中,还可以出现堆栈映射,堆栈映射是指用虚拟机或软件加密锁中的堆栈替换主机中的堆栈,即步骤310。用于处理push ebp,pop ebp。
在本实施例中,映射由代码实现。
步骤404软件加密锁处理指令代码字典库中被指定指令代码。
在本实施例中,指令代码字典库中的用现有的基于C51虚拟机的软件加密锁编写的C51程序,用来完成这两条指令的执行。具体指令代码字典库如下


上面表格中X86指令栏中的ptr表示地址,在本实施例中具体为[ebp+8],[ebp+OCh]。
上面表格中软件加密锁执行指令栏中的MOV DPTR,#1是通用的,表示加法的第一个参数,本实施例中具体为MOV DPTR,#OX0000;MOV DPTR,#2是通用的,表示加法的第二个参数在本实施例中具体为MOV DPTR,#OX0004;栏中最后一行MOV DPTR,#3也是通用的,表示加法的结果,在本实施例中具体为MOVDPTR,#OX0008。
步骤405将处理结果经由变换,返回原用户程序。
在本实施例中,这一过程包括步骤307即内存地址反变换,可以包括步骤305寄存器反变换,还可以包括步骤309堆栈反变换。
在本实施例中,这些反变换实现方式由原变换方式将代码替换即可实现。
在本实施例中,映射由代码实现。
图5所示为本发明提供的一种实现提高软件保护安全性方法的装置,具体如下本装置包含软件加密锁和主机两部分,其中软件加密锁包含指令代码字典库和运行模块;主机含有读取模块、选取模块、写入模块、删除模块和运行模块。
读取模块该模块用于读取软件加密锁指令代码字典库中和被保护软件中的指令代码,用来确定被保护软件中删除的指令代码;选取模块该模块用于在被保护软件中选取与软件加密锁指令代码字典库中相同的指令代码,在读取模块的基础上完成,辅助实现删除模块的功能;删除模块该模块用于在被保护软件中删除由选取模块选取的指令代码;写入模块该模块用于在被保护软件中删除指令代码的位置写入与软件加密锁通讯的指令,完成被保护软件运行到删除指令代码处访问软件加密锁,确保被保护软件的顺利进行;运行模块该模块用于完成被保护软件在主机与软件加密锁中的运行。
指令代码字典库用于确定被保护软件中欲删除的指令代码,还可以确定写入软件保护装置中的本地指令代码;在本实施例中通讯指令是直接写入被保护软件中删除指令代码的位置的。
在本实施例中,指令代码字典库包括索引、被保护软件所用指令集的指令代码和软件保护装置所能执行的本地指令代码。
在本实施例中,该装置包括索引模块。该模块用于设置索引即软件加密锁指令代码字典库中的指令代码的调用顺序,该指令代码是与被保护软件中删除的指令代码对应的,且不同的索引对应不同的指令代码字典库中的指令代码被调用顺序,实现不同的被保护软件只能有其特定的软件保护装置;在本实施例中,软件加密锁内部是包含指令代码字典库的且由软件开发商个人设置不同的索引顺序。
图6所示为本发明提供的另外一种实现提高软件保护安全性方法的装置,具体如下本装置包含软件加密锁和主机两部分,其中软件加密锁包含写入模块和运行模块;主机含有读取模块、指令代码字典库、选取模块、删除模块、写入模块和运行模块。
读取模块该模块用于读取指令代码字典库中和被保护软件中的指令代码,用来确定写入软件保护装置中的指令代码及被保护软件中要删除的指令代码;指令代码字典库用于确定被保护软件中欲删除的指令代码,并确定写入软件保护装置中的本地指令代码;选取模块该模块用于在被保护软件中选取与指令代码字典库中相同的指令代码,在读取模块的基础上完成,辅助实现删除模块的功能;删除模块该模块用于在被保护软件中删除选取模块在被保护软件中选取的指令代码;写入模块该模块用于将选取模块选取的被保护软件中的指令代码写入软件加密锁,同时在被保护软件中删除指令代码的位置写入与软件加密锁通讯的指令;运行模块该模块用于完成被保护软件在主机与软件保护装置中的运行。
在本实施例中,指令代码字典库包括被保护软件所用指令集的指令代码和软件加密锁所能执行的本地指令代码。
在本实施例中,软件加密锁内部不含有指令代码字典库,指令代码字典库是由软件开发商根据自己的软件特点自行写入的上所述的实施例,只是本发明较优选的具体实施方式
,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换,都应包含在本发明的保护范围内。
权利要求
1.一种提高软件保护安全性的方法,其特征在于,所述提高软件保护安全性的方法包括以下两个过程a,处理被保护软件;b,执行被保护软件;所述处理被保护软件的过程包括如下内容查阅所述被保护软件和指令代码字典库;删除所述被保护软件与所述指令代码字典库中操作码相同的指令代码;在被保护软件中写入与软件保护装置通讯的通讯指令;所述执行被保护软件的过程包括如下具体内容1)执行所述被保护软件;2)执行通讯指令,访问所述软件保护装置,执行指定操作,返回结果;3)继续执行所述被保护软件。
2.根据权利要求1所述提高软件保护安全性的方法,其特征在于,所述处理被保护软件的过程的中步骤2)还可以包括将所述指令代码写入软件保护装置。
3.根据权利要求1所述提高软件保护安全性的方法,其特征在于,所述处理被保护软件具体为1)查阅被保护软件和软件保护装置指令代码字典库;2)找到被保护软件中与软件保护装置指令代码字典库中操作码相同的指令代码;3)将被保护软件中找到的与软件保护装置指令代码字典库中操作码相同的指令代码删除;4)在被保护软件中写入与软件保护装置通讯的通讯指令。
4.根据权利要求1所述提高软件保护安全性的方法,其特征在于,所述处理被保护软件还可以具体为1)查阅被保护软件和指令代码字典库;2)找到指令代码字典库中与被保护软件中指令代码操作码相同的指令代码;3)将指令代码字典库中找到的指令代码所对应的软件保护装置能执行的本地指令代码写入软件保护装置;4)并将在被保护软件中找到的与指令代码字典库中操作码相同的指令代码删除;5)在被保护软件中写入与软件保护装置通讯的通讯指令。
5.根据权利要求1所述提高软件保护安全性的方法,其特征在于,所述指令代码字典库是包含被保护软件所用指令集的指令代码和软件保护装置所能执行的本地指令代码的相关集合;所述指令代码字典库还包括索引。
6.根据权利要求3所述提高软件保护安全性的方法,其特征在于,在所述软件保护装置中预置了指令代码字典库。
7.根据权利要求4所述提高软件保护安全性的方法,其特征在于,在所述软件保护装置中没有预置指令代码字典库。
8.根据权利要求3所述提高软件保护安全性的方法,其特征在于,每个所述软件保护装置内部已设置的本地指令代码的顺序是一致的,根据不同的保护需要所述本地指令代码可以设置不同的调用顺序,即设置不同的索引;或每个软件保护装置内部已设置的本地指令代码顺序是不一致的。
9.根据权利要求3或4所述提高软件保护安全性的方法,其特征在于,所述被保护软件中所删除的指令代码的操作码与指令代码字典库中的部分指令代码的操作码是相同的。
10.根据权利要求3或4所述提高软件保护安全性的方法,其特征在于,所述通讯指令可以写在所述删除指令代码的原位置。
11.根据权利要求3或4所述提高软件保护安全性的方法,其特征在于,可以在原删除指令代码的位置处写入调用所述通讯指令的指令,该所述通讯指令写在被保护软件可执行文件的其他位置。
12.根据权利要求3或4所述提高软件保护安全性的方法,其特征在于,所述通讯指令写在被保护软件的起始地址处,调用时,所述通讯指令填充原删除指令代码的位置。
13.根据权利要求4所述提高软件保护安全性的方法,其特征在于,所述软件保护装置中写入的本地指令代码是根据被保护软件的情况确定的,即对不同的软件进行保护时,写入到软件保护装置中的指令顺序是不同的;该写入软件保护装置中的本地指令代码是指令代码字典库中与被保护软件中相同的指令代码操作码所对应的本地指令代码。
14.根据权利要求3或4所述提高软件保护安全性的方法,其特征在于,所述通讯指令由软件保护装置生产商提供。
15.根据权利要求1所述提高软件保护安全性的方法,其特征在于,所述通讯指令用于访问软件保护装置、通知软件保护装置执行指定指令代码,并返回执行结果。
16.根据权利要求1所述提高软件保护安全性的方法,其特征在于,所述执行被保护软件的过程具体包括如下步骤步骤1.执行被保护软件;步骤2.软件执行到通讯指令处,访问软件保护装置,并传入指令所需的信息,用于通知软件保护装置执行哪条预置的指令;步骤3.执行软件保护装置中的操作,由通讯指令返回结果,继续执行被保护软件。
17.根据权利要求16所述提高软件保护安全性的方法,其特征在于,所述执行被保护软件的过程,在步骤2或步骤3传入指令所需的信息或返回结果时,需要在软件保护装置与主机间进行一系列变换。
18.根据权利要求17所述提高软件保护安全性的方法,其特征在于,所述变换包括在软件保护装置虚拟机与主机间进行的内存地址、寄存器和堆栈的相互映射。
19.一种提高软件保护安全性的系统,其特征在于,所述实现提高软件保护安全性的系统包括读取模块该模块用于读取指令代码字典库和被保护软件中的指令代码;选取模块该模块用于在被保护软件中选取与指令代码字典库中相同指令代码操作码的指令代码;删除模块该模块用于在被保护软件中删除选取模块在被保护软件中选取的指令代码;运行模块该模块用于完成被保护软件在主机与软件保护装置中的运行;指令代码字典库用于确定被保护软件中欲删除的指令代码,还可以确定写入软件保护装置中的本地指令代码;写入模块该模块用于在被保护软件或软件保护装置中写入所需内容;所述系统还包括软件保护装置且该装置用于接收主机发送的命令,并执行指定的其内部的本地指令代码。
20.根据权利要求19所述提高软件保护安全性的系统,其特征在于,所述指令代码字典库可以预置在软件保护装置内部。
21.根据权利要求19所述提高软件保护安全性的系统,其特征在于,所述系统还包括索引模块,该模块用于设置软件保护装置指令代码字典库中的指令代码的排列顺序,而该指令代码是与被保护软件中删除的指令代码对应的。
22.根据权利要求19所述提高软件保护安全性的系统,其特征在于,所述写入模块写入的内容包括在被保护软件中写入与软件保护装置通讯的通讯指令或根据被保护软件中指令情况在软件保护装置中写入指令代码字典库中的部分内容或在被保护软件中写入调用通讯指令的指令,此时,在删除指令代码的原位置写入调用通讯程序的指令,通讯程序写入被保护软件的其他位置。
23.根据权利要求22所述提高软件保护安全性的系统,其特征在于,所述写入模块可以把通讯指令写在删除指令代码的原位置,还可以写在被保护软件可执行文件的起始位置,在被调用时填充原删除指令代码的位置。
全文摘要
本发明公开了属于软件保护装置及软件保护技术的一种提高软件保护安全性的方法及装置。该方法是通过在软件保护装置中预置针对不同用户采用不同顺序的指令代码字典库、或由个人设置索引的指令代码字典库或根据个人需要在软件保护装置中写入指令代码字典库中的部分指令,并在被保护软件中相应位置删除对应的指令代码,同时写入与该软件保护装置通讯的通讯指令。所述软件保护装置包含读取模块、写入模块和运行模块。本发明在于使用软件保护装置对软件进行加密提高了软件保护的安全性。结合软件保护装置保护软件的过程省去了向软件保护装置写入程序的过程,简化了软件开发商对软件保护装置的开发过程。并且对软件保护的过程不需要开发人员的参与。
文档编号G06F21/00GK101013459SQ20071006365
公开日2007年8月8日 申请日期2007年2月7日 优先权日2007年2月7日
发明者陆舟, 于华章 申请人:北京飞天诚信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1