可执行程序数据包加密/解密方法及装置的制造方法

文档序号:10687429阅读:329来源:国知局
可执行程序数据包加密/解密方法及装置的制造方法
【专利摘要】一种可执行程序数据包加密/解密方法及装置,所述方法包括:获取可执行程序数据包;基于预设规则将所述可执行程序数据包拆分成若干个原始文件;分别利用第一密钥对所述若干个原始文件进行加密得到分别与各个原始文件一一对应的加密文件;接收所述加密后的若干个加密文件;分别利用与所述第一密钥对应的第二密钥对所述若干个加密文件进行解密,得到与所述加密文件一一对应的所述若干个原始文件;分别利用所述原始文件的索引信息重组所述若干个原始文件,得到所述可执行程序数据包。能够防止因为可执行程序数据包中的单个密钥被窃取后而导致的可执行程序数据包遭到恶意破解。减小应用程序遭恶意破解的概率,提高应用程序数据安全性。
【专利说明】
可执行程序数据包加密/解密方法及装置
技术领域
[0001]本发明涉及数据安全领域,具体涉及到一种可执行程序数据包加密/解密方法及装置。【背景技术】[00〇2]随着智能终端技术的发展,现有技术中,存在了多种操作系统,例如Android系统为当前应用较为广泛的一种智能终端操作系统。随着An droid手机操作系统市场占有率的不断增长,Android系统的应用软件数量也以相当迅猛的速度增加。
[0003]由于Andr 0 i d系统源码的开放的特性,使得Andr 0 i d系统流行的同时也为恶意应用软件提供了便利。譬如,在用户完全不知情的情况下,恶意软件有着资费消耗、随意扣费、隐私窃取等不良行为,而这种行为严重的令用户利益受到损害。通常采用Java编程语言来开发Android系统的应用软件,由于Java代码经过编译后的二进制代码容易被破解和反编译, 从而导致Android系统中的应用程序容易被恶意破解。开发者含辛茹苦开发出的软件面临着非法篡改、恶意代码植入等威胁。
[0004]现有技术中,只是通过简单的数据混淆或对一整个文件进行加密,这样的加密方式很容易被破解,不能有效的减小应用程序遭恶意破解。
[0005]如何减小应用程序遭恶意破解的概率,提高应用程序数据安全性成为亟待解决的问题。
【发明内容】

[0006]本发明要解决的问题在于如何减小应用程序遭恶意破解的概率。[〇〇〇7]为此本发明提供了一种可执行程序数据包加密/解密方法,包括如下步骤:
[0008]获取可执行程序数据包;基于预设规则将可执行程序数据包拆分成若干个原始文件;分别利用第一密钥对若干个原始文件中的各个原始文件进行加密得到分别与各个原始文件-----对应的加密文件,加密文件包括用于索引与其对应的原始文件的索引信息;接收加密后的若干个加密文件,加密文件包括用于索引与其对应的原始文件的索引信息;分别利用与第一密钥对应的第二密钥对若干个加密文件进行解密,得到与加密文件---对应的若干个原始文件;分别利用原始文件的索引信息重组若干个原始文件,得到可执行程序数据包。
[0009]优选地,分别利用第一密钥对若干个原始文件中的各个原始文件进行加密得到分别与各个原始文件--对应的加密文件之后,还包括:分别生成与若干加密文件中各个加密文件一一对应的第一校验码,第一校验码用于表征与该第一校验码对应的加密文件是否完整。在接收加密后的若干个加密文件和分别利用与第一密钥对应的第二密钥对若干个加密文件进行解密之间还包括:分别利用各个第一校验码判断各自对应的加密文件是否完整;如果若干加密文件均完整,则利用与第一密钥对应的第二密钥对若干个加密文件进行解密。
[0010]优选地,在分别利用原始文件的索引信息重组若干个原始文件,得到可执行程序数据包之后,还包括:调用预设函数解析得到的可执行程序数据包;利用自定义类加载器对解析后的可执行程序数据包进行类加载。
[0011]优选地,在分别利用原始文件的索引信息重组若干个原始文件,得到可执行程序数据包之后,还包括:获取程序安装包文件,程序安装包文件包括重组后的可执行程序数据包;生成程序安装包文件的第二校验码,第二校验码用于表征程序安装包文件是否完整;利用第二校验码校验程序安装包文件得到程序安装包文件是否完整的校验结果;根据校验结果执行相应的操作。
[0012]优选地,在获取可执行程序数据包之后,还包括:对获取的可执行程序数据包中的数据进行随机变换得到随机变换后的可执行程序数据包;基于预设规则将可执行程序数据包拆分成若干个原始文件包括:基于预设规则将随机变换后的可执行程序数据包拆分成若干个原始文件;在分别利用原始文件的索引信息重组若干个原始文件,得到可执行程序数据包之后,还包括:对可执行程序数据包中的数据进行与随机变换相对应的逆运算,得到随机变换前的可执行程序数据包。[0013 ]本发明还提供了一种可执行程序数据包加密/解密装置,包括:
[0014]第一获取单元,用于获取可执行程序数据包;拆分单元,用于基于预设规则将可执行程序数据报拆分成若干个原始文件;加密单元,用于分别利用第一密钥对若干个原始文件中的各个原始文件进行加密得到分别与各个原始文件对应的加密文件;接收单元,用于接收加密后的若干个加密文件;解密单元,用于分别利用第一密钥对应的第二密匙对若干个加密文件进行解密;重组单元,用于分别利用原始文件的索引信息将若干个原始文件重组。
[0015]优选地,可执行程序数据包加密/解密装置,还包括:第一校验码生成单元,用于分别生成与若干加密文件各加密文件---对应的第一文件校验码;第一校验单元,用于分别利用第一文件完整行校验码校验若干加密文件。
[0016]优选地,可执行程序数据包加密/解密装置,还包括:解析单元,用于调用预设函数解析得到可执行程序数据包;类加载单元,用于利用自定义类加载器对可执行程序数据包进行类加载。优选地,可执行程序数据包加密/解密装置,还包括:第二获取单元,用于获取程序安装包文件;第二校验码生成单元,用于生成程序安装包文件的第二校验码;第二校验单元,用于利用第二文件校验码校验程序安装包文件得到程序安装包文件是否完整的校验结果。[〇〇17]优选地,可执行程序数据包加密/解密装置,还包括:数据随机变换单元,用于对获取的可执行程序数据包中的数据进行随机变换得到随机变换后的可执行程序数据包;数据随机逆变换单元,对可执行程序数据包中的数据进行与随机变换相对应的逆运算,得到随机变换前的可执行程序数据包。
[0018]本发明实施例提供的可执行程序数据包加密/解密方法及装置,通过对可执行程序数据包拆分成若干个原始文件,并分别对这些原始文件进行加密,得到与这些原始文件--对应的加密后的文件;由于将可执行程序数据包拆分成多个原始文件并分别加密,而后分别解密各个文件,根据各个文件的索引信息可以重组得到原可执行程序数据包,从而, 能够防止因为可执行程序数据包中的单个密钥被窃取后而导致的可执行程序数据包遭到恶意破解,继而,减小应用程序遭恶意破解的概率,提高应用程序数据安全性。能有效的确保可执行数据包的机密性,从而能够减小有效的防止应用程序被篡改和被窃取源代码的概率,大大提高了应用程序的破解难度。
[0019]作为优选的技术方案,生成用于校验程序安装包文件是否完整的第二校验码,利用第二校验码校验程序安装包文件得到程序安装包是否完整的校验结果,并根据校验结果做出相应的操作。这样能准确发现被篡改的程序安装包文件,从而有效的隔离被篡改的应用软件,防止被篡改的应用程序继续使用服务器端提供服务。【附图说明】
[0020]为了更清楚地说明本发明【具体实施方式】或现有技术中的技术方案,下面将对【具体实施方式】或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1示出了本发明实施例1的可执行程序数据包加密/解密方法流程示意图;
[0022]图2示出了本发明实施例2的用可执行程序数据包加密/解密装置示意图。【具体实施方式】
[0023]下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 [〇〇24] 实施例1
[0025]本实施了公开了一种可执行程序数据包加密/解密方法,如图1所示,该方法包括如下步骤:[〇〇26]在对可执行程序数据包加密时:[〇〇27]S1.获取可执行程序数据包。在本实施例中,可执行程序数据包可以是Android平台上的可执行文件。在具体的实施例中,可以利用加密工具获取可执行程序数据包。
[0028]S2.基于预设规则将可执行程序数据包拆分成若干个原始文件。在具体的实施例中,可以预设将数据随机变换后的可执行程序数据包分成多个文件,例如可以等分成8个二进制文件,这里所称的拆分数量是举例说明,其他更多或更少的数量都是可行的。在对数据随机变化后的可执行程序数据包拆分时,拆分规则可以是多种,例如可以等分,可以不等分。
[0029]S3.分别利用第一密钥对若干个原始文件中的各个原始文件进行加密得到分别与各个原始文件--对应的加密文件。加密文件包括用于索引与其对应的原始文件的索引信息。在具体的实施例中,对随机变换后的可执行程序数据包拆分后得到的若干个原始文件分别生成随机密钥,例如可以利用AES(Advanced Encrypt1n Standard高级加密标准)加密算法拆分得到的若干个原始文件生成随机密钥。
[0030]在解密得到加密前的可执行程序数据包加密时:
[0031]S4.接收加密后的若干加密文件。加密文件包括用于索引与其对应的原始文件的索引信息,具体的,在接收所有加密文件的同时,也将各个加密文件的索引信息同时接收。
[0032]S5.分别利用与第一密钥对应的第二密钥对若干个加密文件进行解密,得到与加密文件一一对应的若干个原始文件。通过调用解密库利用与第一密钥对应的第二密钥分别对所有的加密文件一一进行解密。在具体的实施例中,每一个第二密钥都对应着相对应的第一密钥,第二密钥是第一密钥的逆运算,利用加密算法生成第一密钥,将若干原始文件加密,再利用第一密匙的逆运算生成第二密匙,为加密文件进行解密。
[0033]S6.分别利用原始文件的索引信息重组若干个原始文件,得到可执行程序数据包。 在具体的实施例中,可以利用加密文件中的标识信息,即在将可执行程序数据包拆分为若干个原始文件时存入拆分后的各个原始文件的位置信息,在将各个原始文件重组时,利用各个原始文件的位置信息,将各个原始文件重组在一起得到可执行可执行程序数据包。
[0034]通过对可执行程序数据包拆分成若干个原始文件,分别对这些原始文件进行加密,得到与这些原始文件对应的加密后的文件;由于将可执行程序数据包拆分成多个原始文件并分别加密,而后分别解密各个文件,根据各个文件的索引信息可以重组得到原可执行程序数据包,从而,能够防止因为可执行程序数据包中的单个密钥被窃取后而导致的可执行程序数据包遭到恶意破解,继而,减小应用程序遭恶意破解的概率,提高应用程序数据安全性。能有效的确保可执行数据包的机密性,从而能够减小应用程序被篡改和被窃取源代码的概率,大大提高了应用程序的破解难度。
[0035]为了进一步提高可执行程序数据包的机密性,在优选的实施例中,在执行步骤S1 之后,还包括如下步骤:
[0036]S7.对获取的可执行程序数据包中的数据进行随机变换得到随机变换后的可执行程序数据包。在获取可执行程序数据包后,对可执行数据包中的数据进行随机变换,经过随机变换处理后可执行程序数据包可以是由标准格式的可执行文件变换为普通的二进制文件。通过数据随机变换可以将原文件中的各种元素变换成难于阅读和理解的数据形式,例如,可以将变量或函数变换成无意义简短的数据组合。这样可以在程序被破解或反编译后增大其阅读难度,对可执行程序数据包中的数据具有一定的保护性。在执行步骤S2时,基于预设规则将可执行的程序数据包拆分成若干原始文件中基于预设规则拆分的是数据随机变换后的可执行程序数据包。
[0037]在对若干个原始文件加密后得到的加密文件,为保证每一个加密文件都是完整的,在优选的实施例中在执行步骤S3后,还可以包括如下步骤:
[0038]S8.分别生成与若干加密文件中各个加密文件一一对应的第一校验码。第一校验码用于表征与该第一校验码对应的加密文件是否完整。在拆分的文件进行加密后为保证分块加密的文件的完整性,要对分块加密文件生成完整性校验码,例如可以通过利用完整性哈希算法计算文件的完整性哈希值,或通过CRC(循环冗余校验码)算法计算文件的校验码。 所有加密文件都有一一对应的校验码,用于校验所有的分块的加密文件是否完整。
[0039]在具体的实施例中,上述S3步骤中的加密文件包括用于索引与其对应的原始文件的索引信息,具体的,原始文件的索引信息可以包括:用于标识可执行程序数据包在拆分时的拆分的位置的标识信息,即所有拆分后的文件都含有位置信息,以便在重组的时候能不出错的组成拆分前的文件,在具体的实施例中加密文件的标识信息可以是一个随机数;拆分后的文件的数据部分;用于校验各个加密文件是否完整的校验码。
[0040]在生成校验码之后,执行步骤S4时,获取的若干加密文件中的各个文件均包含有校验码、标识信息和数据部分等,为保证将要被解密的加密文件都是完整的,在优选的实施例中,执行步骤S5对其解密之前,还可以包括如下步骤:
[0041]S9.分别利用各个第一校验码判断与其对应的加密文件是否完整。在具体的实施例中,同时获取各个加密文件的第一校验码和数据部分,调用完整性校验数据库利用加密文件的数据部分再次生成加密文件数据部分的校验码,校验码的生成方法例如可以是通过利用完整性哈希算法计算加密文件数据部分的完整性哈希值,或通过CRC(循环冗余校验码)算法计算加密文件数据部分的校验码,再一一验证各个加密文件数据部分的校验码与各个第一校验码是否相同,如果数据部分的校验码和第一校验码相同,则执行步骤S10。
[0042]S10.判断是否存在未校验的加密文件。如果存在未校验的加密文件,则执行步骤 S9,如果不存在未校验的加密文件,即直到所有的加密文件校验完成后,并且在确保所有的文件都是完整的之后进入步骤S5。[〇〇43]在优选的实施例中,在步骤S5利用原始文件的索引信息重组若干个原始文件,得到重组后的可执行程序数据包后,还可以包括如下步骤:
[0044]S11.调用预设函数解析得到的可执行程序数据包。在具体的实施例中,可以通过 hook在系统文件中的动态库,例如libdvm.数据获取固定的函数例,如函数“opeenDexFile ()”,调用该函数,其中函数的参数为重组后的可执行程序数据包中的数据,通过hook技术到动态库的固定的函数需要dlopen打开动态库文件,再通过slsym()获取固定函数指针,即可调用该固定函数。函数调用完成后,例如android虚拟机或手机就可以解析重组后的可执行程序数据。
[0045]S12.利用自定义类加载器对解析后的可执行程序数据包进行类加载。在具体的实施例中,首先,自定义生成类加载器,例如可以生成DynamicDexClassLoder类加载器,调用类加载器中的例如defineClassO函数,将可执行程序数据包对应的类加载。
[0046]在对可执行程序进行加解密/解密,保证了可执行程序数据包的是安全的,为了进一步保证应用程序的数据安全,在优选的实施例中,还可以进一步对安装程序包中的文件进行数据安全监测,可执行程序数据包加密/解密方法还可以包括如下步骤:
[0047]S13.获取程序安装包文件。在具体的实施例中,程序安装包文件可以包括重组后的可执行程序数据包、资源目录、libs目录和AndroidManifest.xml等所有的应用程序所需要的文件。在对可执行程序进行加解密/解密,保证了可执行程序数据包的是安全的,为了进一步保证应用程序的数据安全,在优选的实施例中,还可以进一步对安装程序包中的文件进行数据安全监测,
[0048]S14.生成程序安装包文件的第二校验码。在获取安装程序包中的文件后,分别对程序安装包中的各个文件生成与各个文件一一对应的第二校验码,例如可以通过利用完整性哈希算法计算文件的完整性哈希值,或通过CRC (循环冗余校验码)算法计算文件的校验码。所有程序安装包中的文件都有与之一一对应的第二校验码,用于校验所有程序安装包文件是否完整。优选地,在生成与程序安装包中的各个文件一一对应的第二校验码后,可以利用第二校验码生成校验数据库,并将生成的第二校验码在相应的文件中进行随机插粧, 以便运行程序时可以不确定时机的校验各个文件的完整性。
[0049]S15.利用第二校验码校验所述程序安装包文件得到所述程序安装包文件是否完整的校验结果;根据所述校验结果执行相应的操作。在具体的实施例中,由于上述步骤S14中将第二校验码随机在相应的文件中随机插粧,程序在运行过程中会执行到第二校验码的插粧代码,再通调用底层的文件校验数据库计算运行中的文件的完整行校验码,与本地保存的文件的完整性校验码进行比较,判断二者是否相同,当比较结果相同时,则说明可以正常运行程序安装包文件。当比较结果不同时,则说明锁定该程序安装包文件,终止运行该程序安装包文件。,优选地,还可以进一步输出程序被篡改的提示信息。为保证校验结果的正确性,优选的,在本地校验完成后,还可以通过反射调用Java层代码进行远程校验,具体的, 将文件完整性校验码、应用程序的来源信息、用户信息等请求参数发送至服务器端。服务器端接收到这些请求参数后,比较客户端传递的完整性校验码与服务器端保存的完整性校验码是否相同,当比较结果相同时,正常响应客户端下一次请求。当比较结果不同时,则对该客户端其他API请求(认证权)进行封堵,防止被篡改的应用程序继续使用服务器提供服务。
[0050]对校验程序安装包文件的完整性进行校验能准确发现被篡改的程序安装包文件, 从而有效的隔离被篡改的应用软件,防止被篡改的应用程序继续使用服务器端提供服务。 [〇〇51 ] 实施例2
[0052]本实施例提供了一种可执行程序数据包加密/解密装置。如图2所示,该可执行程序数据包加密/解密装置包括:第一获取单元111、拆分单元112、加密单元113、接收单元 114、解密单元115和重组单元116其中,
[0053]第一获取单元111用于获取可执行程序数据包;
[0054]拆分单元112,用于基于预设规则将可执行程序数据报拆分成若干个原始文件;
[0055]加密单元113,用于分别利用第一密钥对若干个原始文件中的各个原始文件进行加密得到分别与各个原始文件---对应的加密文件;
[0056]接收单元114,用于接收加密后的若干个加密文件;
[0057]解密单元115,用于分别利用第一密钥对应的第二密匙对若干个加密文件进行解密;
[0058]重组单元116,用于分别利用原始文件的索引信息将若干个原始文件重组。根据可执行程序数据包加密/解密装置,通过获取单元获取可执行程序数据包,再通过拆分单元将可执行程序数据包拆分加密单元对拆分后文件进行加密,解密单元对加密文件解密,重组单元重组解密后的文件,这样就能够有效地确保可执行程序数据包的完整性与机密性,使应用程序被破解或被篡改的困难大大增加。
[0059]在优选的实施例中,该可执行程序数据包加密/解密装置还可以包括:
[0060] 第一校验码生成单元,用于分别生成与若干加密文件各加密文件-对应的第一文件校验码;
[0061]第一校验单元,用于分别利用第一文件完整行校验码校验若干加密文件。
[0062]在优选的实施例中,该可执行程序数据包加密/解密装置还可以包括:
[0063]解析单元,用于调用预设函数解析得到可执行程序数据包;
[0064]类加载单元,用于利用自定义类加载器对可执行程序数据包进行类加载。
[0065]在优选的实施例中,该可执行程序数据包加密/解密装置还可以包括:
[0066]第二获取单元,用于获取程序安装包文件;
[0067]第二校验码生成单元,用于生成程序安装包文件的第二校验码;
[0068]第二校验单元,用于利用第二文件校验码校验程序安装包文件得到程序安装包文件是否完整的校验结果。
[0069]在优选的实施例中,该可执行程序数据包加密/解密装置还可以包括:
[0070]数据随机变换单元,用于对获取的可执行程序数据包中的数据进行随机变换得到随机变换后的可执行程序数据包;
[0071]逆数据随机变换单元,对可执行程序数据包中的数据进行与随机变换相对应的逆运算,得到随机变换前的可执行程序数据包。
[0072]本领域内的技术人员还应理解,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0073]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的,应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0074]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0075]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0076]虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
【主权项】
1.一种可执行程序数据包加密/解密方法,其特征在于,包括如下步骤:获取可执行程序数据包;基于预设规则将所述可执行程序数据包拆分成若干个原始文件;分别利用第一密钥对所述若干个原始文件中的各个原始文件进行加密得到分别与各 个原始文件—对应的加密文件,所述加密文件包括用于索引与其对应的原始文件的索引 信息;接收所述加密后的若干个加密文件,所述加密文件包括用于索引与其对应的原始文件 的索引彳目息;分别利用与所述第一密钥对应的第二密钥对所述若干个加密文件进行解密,得到与所 述加密文件—对应的所述若干个原始文件;分别利用所述原始文件的索引信息重组所述若干个原始文件,得到所述可执行程序数 据包。2.根据权利要求1所述的可执行程序数据包加密/解密方法,其特征在于,所述分别利 用第一密钥对所述若干个原始文件中的各个原始文件进行加密得到分别与各个原始文件 ---对应的加密文件之后,还包括:分别生成与所述若干加密文件中各个加密文件一一对应的第一校验码,所述第一校验 码用于表征与该第一校验码对应的加密文件是否完整;在所述接收加密后的若干个加密文件和所述分别利用与所述第一密钥对应的第二密 钥对所述若干个加密文件进行解密之间还包括:分别利用各个所述第一校验码判断各自对应的加密文件是否完整;如果所述若干加密文件均完整,则利用与所述第一密钥对应的第二密钥对所述若干个 加密文件进行解密。3.根据权利要求1或2所述的可执行程序数据包加密/解密方法,其特征在于,在所述分 别利用所述原始文件的索引信息重组所述若干个原始文件,得到所述可执行程序数据包之 后,还包括:调用预设函数解析得到的所述可执行程序数据包;利用自定义类加载器对解析后的所述可执行程序数据包进行类加载。4.根据权利要求1所述的可执行程序数据包加密/解密方法,其特征在于,在所述分别 利用所述原始文件的索引信息重组所述若干个原始文件,得到所述可执行程序数据包之 后,还包括:获取程序安装包文件,所述程序安装包文件包括重组后的所述可执行程序数据包;生成所述程序安装包文件的第二校验码,所述第二校验码用于表征所述程序安装包文 件是否完整;利用第二校验码校验所述程序安装包文件得到所述程序安装包文件是否完整的校验 结果;根据所述校验结果执行相应的操作。5.根据权利要求1或2所述的可执行程序数据包加密/解密方法,其特征在于,在所述获 取可执行程序数据包之后,还包括:对获取的所述可执行程序数据包中的数据进行随机变换得到随机变换后的可执行程序数据包;所述基于预设规则将所述可执行程序数据包拆分成若干个原始文件包括:基于预设规 则将所述随机变换后的可执行程序数据包拆分成若干个原始文件;在所述分别利用所述原始文件的索引信息重组所述若干个原始文件,得到所述可执行 程序数据包之后,还包括:对所述可执行程序数据包中的数据进行与所述随机变换相对应的逆运算,得到随机变 换前的可执行程序数据包。6.—种可执行程序数据包加密/解密装置,其特征在于,包括:第一获取单元,用于获取可执行程序数据包;拆分单元,用于基于预设规则将所述可执行程序数据报拆分成若干个原始文件;加密单元,用于分别利用第一密钥对所述若干个原始文件中的各个原始文件进行加密得到分别与各个原始文件 对应的加密文件;接收单元,用于接收所述加密后的若干个加密文件;解密单元,用于分别利用所述第一密钥对应的第二密匙对所述若干个加密文件进行解 密;重组单元,用于分别利用所述原始文件的索引信息将所述若干个原始文件重组。7.根据权利要求6所述的可执行程序数据包加密/解密装置,其特征在于,还包括: 第一校验码生成单元,用于分别生成与所述若干加密文件各加密文件 对应的第一文件校验码;第一校验单元,用于分别利用所述第一文件完整行校验码校验所述若干加密文件。8.根据权利要求6或7所述的可执行程序数据包加密/解密装置,其特征在于,还包括:解析单元,用于调用预设函数解析得到所述可执行程序数据包;类加载单元,用于利用自定义类加载器对所述可执行程序数据包进行类加载。9.根据权利要求6所述的可执行程序数据包加密/解密装置,其特征在于,还包括: 第二获取单元,用于获取程序安装包文件;第二校验码生成单元,用于生成所述程序安装包文件的第二校验码;第二校验单元,用于利用第二文件校验码校验程序安装包文件得到所述程序安装包文 件是否完整的校验结果。10.根据权利要求6或7所述的可执行程序数据包加密/解密装置,其特征在于,还包括: 数据随机变换单元,用于对获取的所述可执行程序数据包中的数据进行随机变换得到随机变换后的可执行程序数据包;数据随机逆变换单元,对所述可执行程序数据包中的数据进行与所述随机变换相对应 的逆运算,得到随机变换前的可执行程序数据包。
【文档编号】G06F21/64GK106055936SQ201610334722
【公开日】2016年10月26日
【申请日】2016年5月18日
【发明人】蔡树彬, 明仲, 黄荣杰
【申请人】深圳大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1