虚拟机字节码文件的保护方法、设备及可读存储介质技术

技术编号:21572136 阅读:36 留言:0更新日期:2019-07-10 15:33
本发明专利技术公开了一种虚拟机字节码文件的保护方法,该方法包括步骤:提取虚拟机中字节码文件的关键字段到第一文件中;加密关键字段;保护加密关键字段的密钥;将加密后的关键字段放入字节码文件的目录下;重新打包放入加密后的关键字段的目录文件,以生成所述虚拟机可执行的压缩包。此外,本发明专利技术还提供了一种设备及可读存储介质,与现有技术相比,本发明专利技术达到了保护内存中的虚拟机字节码不被攻击者所提取的效果。

Protection Method, Equipment and Readable Storage Medium of Byte Code File in Virtual Machine

【技术实现步骤摘要】
虚拟机字节码文件的保护方法、设备及可读存储介质
本专利技术涉及软件安全
,尤其涉及一种虚拟机字节码文件的保护方法、设备及可读存储介质。
技术介绍
安卓(Android)系统自从登陆市场以来,发展迅速,得到广大开发者以及许多厂商的支持。作为目前智能手机市场占有率最高的操作系统,Android系统的安全性备受瞩目。虽然Android平台采用了多层次的安全保护机制,但由于Android平台使用了易于反编译的java语言,使其软件容易受到逆向攻击。Android平台上的每个应用程序安装包(AndroidPackage,简称APK)中都有虚拟机可执行文件,它包含了该应用程序的源代码,如果出现攻击者,攻击者可以通过反编译虚拟机可执行文件,就能够得到虚拟机字节码,进而破解应用程序,所以,对虚拟机可执行文件的保护是非常必要的。在现有技术中,针对虚拟机可执行文件的保护最初是使用将真实虚拟机可执行文件隐藏起来的加壳技术。然而,不管如何隐藏文件,最终在运行时都必须加载虚拟机字节码到内存,攻击者通过交互式反汇编器(InteractiveDisassembler,IDA)、ZJDroid等工具就可以将虚拟机字节码从内存中提取出来进而破解APK,给终端用户带来巨大的安全隐患。
技术实现思路
本专利技术的主要目的在于提出一种虚拟机字节码文件的保护方法、设备及可读存储介质,旨在解决内存中存在虚拟机的字节码可被攻击者提取和用来破解应用程序的问题。为实现上述目的,本专利技术提供的一种虚拟机字节码文件的保护方法,所述方法包括步骤:提取虚拟机中字节码文件的关键字段到第一文件中;加密所述关键字段;保护加密所述关键字段的密钥;将加密后的关键字段放入所述字节码文件的目录下;重新打包放入所述加密后的关键字段的目录文件,以生成所述虚拟机可执行的压缩包。此外,为实现上述目的,本专利技术还提出一种虚拟机字节码文件的保护方法,所述方法包括步骤:当检测虚拟机中运行置零的字节码文件时,加载所述字节码文件至内存;获取字节码文件的目录中加密的关键字段;解密所述加密的关键字段;动态还原解密后的关键字段到内存中。此外,为实现上述目的,本专利技术还提出一种设备,所述设备包括处理器、以及存储器;所述处理器用于执行存储器中存储的虚拟机字节码文件的保护程序,以实现上述的方法。此外,为实现上述目的,本专利技术还提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的方法。本专利技术提出的本实施例提供的虚拟机字节码文件的保护方法、设备及可读存储介质,通过提取虚拟机中字节码文件的关键字段到第一文件中,加密所述关键字段,保护加密所述关键字段的密钥,将加密后的关键字段放入所述字节码文件的目录下,重新打包放入加密后的关键字段的目录文件,以生成所述虚拟机可执行的压缩包。达到了保护内存中的虚拟机字节码不被攻击者所提取的效果,同时也隐藏了密钥信息,提高了安全性。附图说明图1为本申请第一实施例提供的虚拟机字节码文件的保护方法的流程示意图;图2为本申请第一实施例提供的虚拟机字节码文件的保护方法的子流程示意图;图3为本申请第一实施例提供的虚拟机字节码文件的保护方法的另一流程示意图;图4为本申请第一实施例提供的虚拟机字节码文件的保护方法的示例流程图一;图5为本申请第一实施例提供的虚拟机字节码文件的保护方法的示例流程图二;图6为本申请第二实施例提供的虚拟机字节码文件的保护方法的流程示意图;图7为本申请第二实施例提供的虚拟机字节码文件的保护方法的子流程示意图一;图8为本申请第二实施例提供的虚拟机字节码文件的保护方法的子流程示意图二;图9为本申请第二实施例提供的示例三流程图;图10为本申请第二实施例提供的示例四流程图;图11为本申请第三实施例提供的设备硬件架构的示意图;图12为图11中虚拟机字节码文件的保护程序的模块示意图;图13为本申请第四实施例提供的设备硬件架构的示意图;图14为图13中虚拟机字节码文件的保护程序的模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本专利技术的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。第一实施例如图1所示,为本申请第一实施例提供的虚拟机字节码文件的保护方法的流程示意图。在图1中,所述虚拟机字节码文件的保护方法,包括:步骤110,提取虚拟机中字节码文件的关键字段到第一文件中;步骤120,加密所述关键字段;步骤130,保护加密所述关键字段的密钥;步骤140,将加密后的关键字段放入所述字节码文件的目录下;步骤150,重新打包放入加密后的关键字段的目录文件,以生成所述虚拟机可执行的压缩包。具体的,提取虚拟机字节码文件中的关键字段,并生成密钥。通过密钥加密该关键字段,再保护该密钥,以对密钥进行隐藏。将加密后的关键字段放入字节码文件的目录下,并重新打包更新后的目录文件,以生成所述虚拟机可执行的压缩包。可选的,在步骤110之前,所述方法还包括:解析所述虚拟机中可执行文件的压缩包,以得到所述字节码文件,如图2所示,该步骤具体包括:步骤210,解压缩所述可执行文件的压缩包,得到所述字节码文件;步骤220,从所述字节码文件中读取类的信息。具体的,在本实施例中,类的信息至少包括:类的个数、类名、方法的个数以及关键字段偏移和长度。可选的,如图3所示,在步骤110之后,所述方法还包括:步骤310,将提取后的字节码文件中的关键字段指令置零;步骤320,将提取前的字节码文件中的关键字段指令的元数据以及在所述第一文件中的元数据写入到第二文件中。具体的,将提取之前的字节码文件作为原字节码文件,将提取之后的字节码文件作为新字节码文件。当从字节码文件中提取关键字段之后,将原字节码文件中的关键字段置零。可选的,步骤130具体包括:通过白盒算法和所述密钥生成两个查找表保护所述密钥,相应的,所述字节码文件的目录包括所述两个查找表、所述第一文件和所述第二文件。具体的,白盒加密算法是指能够在白盒环境下抵御攻击的一种特殊的加密方法。白盒攻击指攻击者对设备终端拥有完全的控制能力,可以对程序运行的二进制进行追踪、读取内存中的密钥观察程序执行的中间结果以及改变计算的结果等。在本实施例中,白盒加密算法将算法和密钥紧密捆绑在了一起,由算法和密钥生成两个用于解密的查找表,这两个查找表分别是T表和M表,其中,T表用于进行文字替换,M表用于查找对应的明文。由于算法和密钥的合并,密钥信息不会直接出现在内存中,所以可以有效隐藏密钥,与此同时也混淆了加密逻辑,攻击者不能直接从内存中直接提取到密钥信息。可选的,本实施例的虚拟机字节码文件的保护方法还可以包括:对提取后的字节码文件进行加壳处理。为了使本实施例的虚拟机字节码文件的保护方法更加清楚易懂,以如下两个示例对所述虚拟机字节码文件的保护方法的工作过程加以说明:示例一本示例应用于安卓(Android)平台的虚拟机Dalvik。Dalvik虚拟机运行的是Dalvik字节码,可以支持已转换为.dex(即Dal本文档来自技高网...

【技术保护点】
1.一种虚拟机字节码文件的保护方法,其特征在于,所述方法包括步骤:提取虚拟机中字节码文件的关键字段到第一文件中;加密所述关键字段;保护加密所述关键字段的密钥;将加密后的关键字段放入所述字节码文件的目录下;重新打包放入所述加密后的关键字段的目录文件,以生成所述虚拟机可执行的压缩包。

【技术特征摘要】
1.一种虚拟机字节码文件的保护方法,其特征在于,所述方法包括步骤:提取虚拟机中字节码文件的关键字段到第一文件中;加密所述关键字段;保护加密所述关键字段的密钥;将加密后的关键字段放入所述字节码文件的目录下;重新打包放入所述加密后的关键字段的目录文件,以生成所述虚拟机可执行的压缩包。2.根据权利要求1所述的虚拟机字节码文件的保护方法,其特征在于,在提取虚拟机中字节码文件的关键字段之后,所述方法还包括:将提取后的所述字节码文件中的关键字段指令置零;将提取前的所述字节码文件中的关键字段指令的元数据以及在所述第一文件中的元数据写入到第二文件中。3.根据权利要求2所述的虚拟机字节码文件的保护方法,其特征在于,保护加密所述关键字段的密钥,包括:通过白盒算法和所述密钥生成两个查找表保护所述密钥,相应的,所述字节码文件的目录包括所述两个查找表、所述第一文件和所述第二文件。4.根据权利要求1所述的虚拟机字节码文件的保护方法,其特征在于,在提取虚拟机中字节码文件的关键字段之前,所述方法还包括:解析所述虚拟机中可执行文件的压缩包,以得到所述字节码文件。5.根据权利要求4所述的虚拟机字节码文件的保护方法,其特征在于,解析所述虚拟机中可执行文件的压缩包,包括:解压缩所述可执行文件的压缩包,得到所述字节码文件;从所述字节码文件中读取类的信息。6.一种虚拟机字节码文件...

【专利技术属性】
技术研发人员:王蔚董振江戎宇李晖张文
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

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

1