一种基于veh的代码保护方法和装置的制造方法

文档序号:10687427阅读:480来源:国知局
一种基于veh的代码保护方法和装置的制造方法
【专利摘要】本发明公开了一种基于VEH的代码保护方法和装置,所述方法包括以下步骤:首先对第一进程中待保护的代码段添加标识信息;而后获取待保护的代码段并进行加密,得到加密代码,并将加密代码保存在第二进程;而后对待保护的代码段进行预处理,使得待保护的代码段在运行时发生异常中断;而后第二进程接收第一进程发送的第一信号,并对加密代码进行解密,将第一信号对应的待保护的代码段发送至第一进程;而后第一进程在其对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间。所述方法可以有效增强第一进程和第二进程之间的依赖性,提高了破解难度。
【专利说明】
一种基于VEH的代码保护方法和装置
技术领域
[0001]本发明涉及计算机软件反破解领域,特别涉及一种基于VEH的代码保护方法和装置。
【背景技术】
[0002]随着科学技术的发展,软件的应用也越来越广。目前,市面上的软件已被一些常用的破解工具所破解,安全性若。为此,需要对软件程序中关键代码进行处理,使其在逆向工具不能正常识别代码,加大破解难度。
[0003]现有软件相关的反破解技术主要包括:代码虚拟化、设置花指令以及代码压缩加密等。然而,这些反破解技术都存在着不足。以代码虚拟化为例,其在大强度保护代码的同时,也会很大程度地增加原程序的占用,降低代码执行效率,增大对内存的消耗,浪费系统资源。再比如设置花指令,由于所设置的花指令还是可以通过分析,逆向还原出源代码,因而这种方法安全系数不是很高。

【发明内容】

[0004]为此,需要提供一种基于VHl的代码保护的技术方案,用以解决现有的软件程序反破解方法资源占用大、反静态分析能力弱、安全系数低等问题。
[0005]为实现上述目的,发明人提供了一种基于VHl的代码保护方法,所述方法包括以下步骤:
[0006]对第一进程中待保护的代码段添加标识信息;
[0007]获取待保护的代码段并进行加密,得到加密代码,并将加密代码保存在第二进程;
[0008]对待保护的代码段进行预处理,使得待保护的代码段在运行时发生异常中断;
[0009]第二进程接收第一进程发送的第一信号,并对加密代码进行解密,将第一信号对应的待保护的代码段发送至第一进程,所述第一信号为待保护的代码段运行发生异常中断后发送至第二进程的信号;
[0010]第一进程在其对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间。
[0011]进一步地,所述方法还包括:
[0012]判断第一进程中是否存在具有标识信息的待保护的代码段,若是则执行步骤“获取待保护的代码段并进行加密,得到加密代码,并将加密代码保存在第二进程”,而后对第一进程代码进行加壳处理;否则对第一进程代码进行加壳处理。
[0013]进一步地,所述加壳处理包括VMP加壳处理或TMD加壳处理。
[0014]进一步地,所述步骤“第一进程在其对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间”之后还包括步骤:
[0015]继续执行指定位置的代码,所述指定位置的代码为待保护的代码段的下一行代码。
[0016]进一步地,所述异常中断包括除O异常和定义异常,所述除O异常对应的预处理包括:执行除法时,将除数设置为O;所述定义异常对应的预处理包括:将定义汇编码转换为对应的字节码。
[0017]发明人还提供了一种基于VEH的代码保护装置,所述装置包括第一进程和第二进程,所述第一进程包括标识信息添加单元、获取单元、加密单元、预处理单元、执行单元,所述第二进程包括接收单元、解密单元、发送单元;
[0018]所述标识信息添加单元用于对第一进程中待保护的代码段添加标识信息;
[0019]所述获取单元用于获取待保护的代码段,所述加密单元用于对获取到的待保护的代码段进行加密,得到加密代码,并将加密代码保存在第二进程;
[0020]所述预处理单元用于对待保护的代码段进行预处理,使得待保护的代码段在运行时发生异常中断;
[0021]所述接收单元用于接收第一进程发送的第一信号,所述解密单元用于对加密代码进行解密,所述发送单元用于将第一信号对应的待保护的代码段发送至第一进程,所述第一信号为待保护的代码段运行发生异常中断后发送至第二进程的信号;
[0022]所述执行单元用于在第一进程对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间。
[0023]进一步地,所述第一进程还包括判断单元和加壳单元,所述判断单元用于判断第一进程中是否存在具有标识信息的待保护的代码段,若是则获取单元用于获取待保护的代码段,加密单元对获取到的待保护的代码段进行加密,得到加密代码,并将加密代码保存在第二进程,而后加壳单元对第一进程代码进行加壳处理;否则加壳单元用于对第一进程代码进行加壳处理。
[0024]进一步地,所述加壳处理包括VMP加壳处理或TMD加壳处理。
[0025]进一步地,所述执行单元还用于继续执行指定位置的代码,所述指定位置的代码为待保护的代码段的下一行代码。
[0026]进一步地,所述异常中断包括除O异常和定义异常,所述预处理单元用于执行除法时,将除数设置为O;或者,所述预处理单元用于将定义汇编码转换为对应的字节码。
[0027]上述技术方案所述的基于VHl的代码保护方法和装置,所述方法包括以下步骤:首先对第一进程中待保护的代码段添加标识信息;而后获取待保护的代码段并进行加密,得到加密代码,并将加密代码保存在第二进程;而后对待保护的代码段进行预处理,使得待保护的代码段在运行时发生异常中断;而后第二进程接收第一进程发送的第一信号,并对加密代码进行解密,将第一信号对应的待保护的代码段发送至第一进程,所述第一信号为待保护的代码段运行发生异常中断后发送至第二进程的信号;而后第一进程在其对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间。将第一进程中待保护的代码段或数据进行加密,提高了程序反静态分析的能力。且只有在程序运行时才对代码和数据进行解密,一方面保证了程序正常运行和访问数据,另一方面不会增加源程序的占用空间。同时,将加密的代码放在第二进程中,当第一进程需要访问代码数据时,才从第二进程获得,如果此时第二进程未开启,则造成第一进程奔溃。增强了第一进程和第二进程之间的依赖性,提高了破解难度。
【附图说明】
[0028]图1为本发明一实施方式涉及的基于VHl的代码保护方法的流程图;
[0029]图2为本发明一实施方式涉及的基于VHl的代码保护装置的示意图;
[0030]附图标记说明:
[0031]101、第一进程;
[0032]102、第二进程;
[0033]111、标识信息添加单元;
[0034]112、获取单元;
[0035]113、加密单元;
[0036]114、预处理单元;
[0037]115、执行单元;
[0038]116、接收单元;
[0039]117、解密单元;
[0040]118、发送单元;
[0041]119、判断单元;
[0042]120、加壳单元;
[0043]121、内存空间。
【具体实施方式】
[0044]为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0045]请参阅图1,为本发明一实施方式涉及的基于VEH的代码保护方法的流程图。所述方法可以应用于对软件关键代码段进行保护,有效提高软件代码反静态分析能力,所述方法包括以下步骤:
[0046]首先进入步骤SlOl对第一进程中待保护的代码段添加标识信息。具体地,可以在待保护的代码段的开头和结尾处分别添加ProtectBegin、ProtectEnd两个宏,分别代表保护开始和保护结束。标识信息为识别待保护的代码的标识,在其他实施方式中,还可以为自定义的字符串等。
[0047]而后可以进入步骤S102获取待保护的代码段并进行加密,得到加密代码,并将加密代码保存在第二进程。优选的,在步骤S102之前还可以进入步骤“判断第一进程中是否存在具有标识信息的待保护的代码段”,若是则执行步骤S102,并对第一进程代码进行加壳处理;否则对第一进程代码进行加壳处理。
[0048]若第一进程中不存在标识信息的待保护的代码段,说明无需对第一进程进行特殊保护处理,因而可以对第一进程代码进行加壳处理,加壳处理其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩,改变其原来的特征码,隐藏一些字符串等等,使一些资源编辑软件不能正常打开或者修改。通过在线编译及加壳处理,破解者破解采用上述方法加密的不同软件的PE结构均是不同的,大大提高了软件的破解难度。优选的,所述加壳处理包括VMP加壳处理或TMD加壳处理。
[0049]若第一进程中存在标识信息的待保护的代码段,则获取待保护的代码段并进行加密,得到加密代码,并对第一进程代码进行加壳处理。在本实施方式中,第一进程为.exe格式的可执行程序。“获取待保护的代码段并进行加密,得到加密代码”具体包括:提取第一进程中待保护的代码段,使用加密算法进行加密,并保存为.dat文件。而后将加密代码保存至第二进程,以便后续调用。简言之,加壳处理可以根据开发者的实际需要决定是否采用,加壳处理可以通过加壳工具来实现。
[0050]而后可以进入步骤S103对待保护的代码段进行预处理,使得待保护的代码段在运行时发生异常中断。所述异常中断包括除O异常和定义异常,所述除O异常对应的预处理包括:执行除法时,将除数设置为O;所述定义异常对应的预处理包括:将定义汇编码转换为对应的字节码。定义异常包括inti异常和in3异常,例如inti其对应的汇编码为_asm{int 1},则将该汇编码转换为字节码为OxCD 0x01,当执行待保护的代码段时,由于访问无效内存地址将发生异常中断。再比如int3异常,其对应汇编码为_asm{int3},转换为字节码为OxCC。当执行待保护的代码段时,由于int3是windows系统自带的用于调试进程的断点,将发生异常中断。除O异常当执行除法时,由于除数为0,会发生异常中断。
[0051]而后可以进入步骤S104第二进程接收第一进程发送的第一信号,并对加密代码进行解密,将第一信号对应的待保护的代码段发送至第一进程。所述第一信号为待保护的代码段运行发生异常中断后发送至第二进程的信号。由于第一进程中待保护的代码段经过预设处理,因而在运行这些代码段时会发生异常,第一进程发送第一信号至第二进程。第二进程接收第一进程发送的第一信号后,会对加密代码进行解密,解密后得到加密前的源程序,第二进程将加密前的源程序发送至第一进程。在一些实施例中,需要保护的代码段往往为多个,而生成的加密文件往往只有一个,因而第二进程会先对加密文件进行解密,并将解密后第一信号对应的待保护的代码段发送至第一进程。例如第一进程中有A、B、C三个待保护的代码段,它们经过加密后保存为一个加密文件并存储于第二进程中,当运行到第一进程中的A代码段时,发送异常中断,并发送第一信号至第二进程,第二进程对加密文件进行解密,得到A、B、C三个待保护的代码段的源程序,并将A代码段的源程序发送至第一进程。
[0052]而后进入步骤S105第一进程在其对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间。在本实施方式中,所述步骤S105之后还包括步骤:继续执行指定位置的代码,所述指定位置的代码为待保护的代码段的下一行代码。例如待保护的代码段在第一进程代码中的位置为第40行至第50行代码,当第一进程运行至第40行代码时,会从第二进程获取解密后的待保护的代码段的源代码,并新建内存空间进行运行,当运行完成后,将释放新建的待保护的代码段对应的内存空间,并返回运行第51行代码,直至下一个带保护的代码段。
[0053]软件在实际应用过程中,除了待保护的代码段位置,其他代码段位置也可能会发生异常。因而在一些实施例中,所述方法还包括步骤:判断异常中断是否来自待保护的代码段处,若是则执行步骤S104,否则不执行步骤S104。
[0054]以及发明人还提供了一种基于VEH的代码保护装置,请参阅图2,为本发明一实施方式涉及的基于VEH的代码保护装置的示意图。所述装置包括第一进程101和第二进程102,所述第一进程包括标识信息添加单元111、获取单元112、加密单元113、预处理单元114、执行单元115,所述第二进程包括接收单元116、解密单元117、发送单元118;
[0055]所述标识信息添加单元111用于对第一进程中待保护的代码段添加标识信息;
[0056]所述获取单元112用于获取待保护的代码段,所述加密单元113用于对获取到的待保护的代码段进行加密,得到加密代码,并将加密代码保存在第二进程;
[0057]所述预处理单元114用于对待保护的代码段进行预处理,使得待保护的代码段在运行时发生异常中断;
[0058]所述接收单元116用于接收第一进程发送的第一信号,所述解密单元117用于对加密代码进行解密,所述发送单元118用于将第一信号对应的待保护的代码段发送至第一进程,所述第一信号为待保护的代码段运行发生异常中断后发送至第二进程的信号;
[0059]所述执行单元115用于在第一进程对应的内存空间121中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间。
[0060]在使用基于VEH的代码保护装置时,首先标识信息添加单元111对第一进程中待保护的代码段添加标识信息。具体地,可以在待保护的代码段的开头和结尾处分别添加Pr ο t e c t Be g i η、Pr ο t e c tEnd两个宏,分别代表保护开始和保护结束。标识信息为识别待保护的代码的标识,在其他实施方式中,还可以为自定义的字符串等。
[0061]而后获取单元获取待保护的代码段,加密单元对获取到的待保护的代码段进行加密,得到加密代码,并将加密代码保存在第二进程。优选的,所述第一进程还包括判断单元119和加壳单元120,所述判断单元119用于判断第一进程中是否存在具有标识信息的待保护的代码段,若是则获取单元112用于获取待保护的代码段,加密单元对获取到的待保护的代码段进行加密,得到加密代码,并将加密代码保存在第二进程,而后加壳单元对第一进程代码进行加壳处理;否则加壳单元120用于对第一进程代码进行加壳处理。
[0062]若第一进程中不存在标识信息的待保护的代码段,说明无需对第一进程进行特殊保护处理,因而可以对第一进程代码进行加壳处理,加壳处理其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩,改变其原来的特征码,隐藏一些字符串等等,使一些资源编辑软件不能正常打开或者修改。通过在线编译及加壳处理,破解者破解采用上述方法加密的不同软件的PE结构均是不同的,大大提高了软件的破解难度。优选的,所述加壳处理包括VMP加壳处理或TMD加壳处理。
[0063]若第一进程中存在标识信息的待保护的代码段,则获取待保护的代码段并进行加密,得到加密代码,并对第一进程代码进行加壳处理。在本实施方式中,第一进程为.exe格式的可执行程序。“获取单元获取待保护的代码段,加密单元对获取到的待保护的代码段进行加密,得到加密代码”具体包括:获取单元提取第一进程中待保护的代码段,加密单元使用加密算法进行加密,并保存为.dat文件。而后将加密代码保存至第二进程,以便后续调用。简言之,加壳处理可以根据开发者的实际需要决定是否采用,加壳处理可以通过加壳工具来实现。
[0064]而后预处理单元对待保护的代码段进行预处理,使得待保护的代码段在运行时发生异常中断。所述异常中断包括除O异常和定义异常,所述除O异常对应的预处理包括:执行除法时,将除数设置为O;所述定义异常对应的预处理包括:将定义汇编码转换为对应的字节码。定义异常包括inti异常和in3异常,例如inti其对应的汇编码为_asm{int 1},则将该汇编码转换为字节码为OxCD 0x01,当执行待保护的代码段时,由于访问无效内存地址将发生异常中断。再比如int3异常,其对应汇编码为_asm{int3},转换为字节码为OxCC。当执行待保护的代码段时,由于int3是windows系统自带的用于调试进程的断点,将发生异常中断。除O异常当执行除法时,由于除数为0,会发生异常中断。
[0065]而后接收单元接收第一进程发送的第一信号,解密单元对加密代码进行解密,将第一信号对应的待保护的代码段发送至第一进程。所述第一信号为待保护的代码段运行发生异常中断后发送至第二进程的信号。由于第一进程中待保护的代码段经过预设处理,因而在运行这些代码段时会发生异常,第一进程发送第一信号至第二进程。第二进程接收第一进程发送的第一信号后,会对加密代码进行解密,解密后得到加密前的源程序,第二进程将加密前的源程序发送至第一进程。在一些实施例中,需要保护的代码段往往为多个,而生成的加密文件往往只有一个,因而第二进程会先对加密文件进行解密,并将解密后第一信号对应的待保护的代码段发送至第一进程。例如第一进程中有A、B、C三个待保护的代码段,它们经过加密后保存为一个加密文件并存储于第二进程中,当运行到第一进程中的A代码段时,发送异常中断,并发送第一信号至第二进程,第二进程对加密文件进行解密,得到A、B、C三个待保护的代码段的源程序,并将A代码段的源程序发送至第一进程。
[0066]而后执行单元在第一进程对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间。在本实施方式中,所述执行单元还用于继续执行指定位置的代码,所述指定位置的代码为待保护的代码段的下一行代码。例如待保护的代码段在第一进程代码中的位置为第40行至第50行代码,当第一进程运行至第40行代码时,会从第二进程获取解密后的待保护的代码段的源代码,并新建内存空间进行运行,当运行完成后,将释放新建的待保护的代码段对应的内存空间,并返回运行第51行代码,直至下一个带保护的代码段。
[0067]上述技术方案所述的基于VHl的代码保护方法和装置,所述方法包括以下步骤:首先对第一进程中待保护的代码段添加标识信息;而后获取待保护的代码段并进行加密,得到加密代码,并将加密代码保存在第二进程;而后对待保护的代码段进行预处理,使得待保护的代码段在运行时发生异常中断;
[0068]而后第二进程接收第一进程发送的第一信号,并对加密代码进行解密,将第一信号对应的待保护的代码段发送至第一进程,所述第一信号为待保护的代码段运行发生异常中断后发送至第二进程的信号;而后第一进程在其对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间。将第一进程中待保护的代码段或数据进行加密,提高了程序反静态分析的能力。且只有在程序运行时才对代码和数据进行解密,一方面保证了程序正常运行和访问数据,另一方面不会增加源程序的占用空间。同时,将加密的代码放在第二进程中,当第一进程需要访问代码数据时,才从第二进程获得,如果此时第二进程未开启,则造成第一进程奔溃。增强了第一进程和第二进程之间的依赖性,提高了破解难度。
[0069]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者客户端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者客户端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者客户端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
[0070]本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动客户端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、R0M、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
[0071]上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0072]这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0073]这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0074]尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。
【主权项】
1.一种基于VHl的代码保护方法,其特征在于,所述方法包括以下步骤: 对第一进程中待保护的代码段添加标识信息; 获取待保护的代码段并进行加密,得到加密代码,并将加密代码保存在第二进程; 对待保护的代码段进行预处理,使得待保护的代码段在运行时发生异常中断; 第二进程接收第一进程发送的第一信号,并对加密代码进行解密,将第一信号对应的待保护的代码段发送至第一进程,所述第一信号为待保护的代码段运行发生异常中断后发送至第二进程的信号; 第一进程在其对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间。2.如权利要求1所述的基于VHl的代码保护方法,其特征在于,所述方法还包括: 判断第一进程中是否存在具有标识信息的待保护的代码段,若是则执行步骤“获取待保护的代码段并进行加密,得到加密代码,并将加密代码保存在第二进程”,而后对第一进程代码进行加壳处理;否则对第一进程代码进行加壳处理。3.如权利要求2所述的基于VHl的代码保护方法,其特征在于,所述加壳处理包括VMP加壳处理或TMD加壳处理。4.如权利要求1所述的基于VEH的代码保护方法,其特征在于,所述步骤“第一进程在其对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间”之后还包括步骤: 继续执行指定位置的代码,所述指定位置的代码为待保护的代码段的下一行代码。5.如权利要求1所述的基于VEH的代码保护方法,其特征在于,所述异常中断包括除O异常和定义异常,所述除O异常对应的预处理包括:执行除法时,将除数设置为O;所述定义异常对应的预处理包括:将定义汇编码转换为对应的字节码。6.一种基于VEH的代码保护装置,其特征在于,所述装置包括第一进程和第二进程,所述第一进程包括标识信息添加单元、获取单元、加密单元、预处理单元、执行单元,所述第二进程包括接收单元、解密单元、发送单元; 所述标识信息添加单元用于对第一进程中待保护的代码段添加标识信息; 所述获取单元用于获取待保护的代码段,所述加密单元用于对获取到的待保护的代码段进行加密,得到加密代码,并将加密代码保存在第二进程; 所述预处理单元用于对待保护的代码段进行预处理,使得待保护的代码段在运行时发生异常中断; 所述接收单元用于接收第一进程发送的第一信号,所述解密单元用于对加密代码进行解密,所述发送单元用于将第一信号对应的待保护的代码段发送至第一进程,所述第一信号为待保护的代码段运行发生异常中断后发送至第二进程的信号; 所述执行单元用于在第一进程对应的内存空间中新建待保护的代码段并执行,并在执行完成后释放新建的待保护的代码段对应的内存空间。7.如权利要求6所述的基于VEH的代码保护装置,其特征在于,所述第一进程还包括判断单元和加壳单元,所述判断单元用于判断第一进程中是否存在具有标识信息的待保护的代码段,若是则获取单元用于获取待保护的代码段,加密单元对获取到的待保护的代码段进行加密,得到加密代码,并将加密代码保存在第二进程,而后加壳单元对第一进程代码进行加壳处理;否则加壳单元用于对第一进程代码进行加壳处理。8.如权利要求7所述的基于VHl的代码保护装置,其特征在于,所述加壳处理包括VMP加壳处理或TMD加壳处理。9.如权利要求6所述的基于VEH的代码保护装置,其特征在于,所述执行单元还用于继续执行指定位置的代码,所述指定位置的代码为待保护的代码段的下一行代码。10.如权利要求6所述的基于VEH的代码保护装置,其特征在于,所述异常中断包括除O异常和定义异常,所述预处理单元用于执行除法时,将除数设置为O;或者,所述预处理单元用于将定义汇编码转换为对应的字节码。
【文档编号】G06F21/14GK106055934SQ201610332774
【公开日】2016年10月26日
【申请日】2016年5月19日
【发明人】李琦, 李玮, 汪小烽, 高居忠, 连寿哲, 朱龙彬
【申请人】福建创意嘉和软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1