应用程序的混淆方法、装置和服务器制造方法及图纸

技术编号:20160876 阅读:26 留言:0更新日期:2019-01-19 00:13
本发明专利技术提供了一种应用程序的混淆方法、装置和服务器,其中该方法包括解析应用程序的APK文件,得到dex文件;该dex文件中包含至少一个class文件;采用预设的代码,对class文件的指定区域进行混淆处理,得到处理后的class文件;封装处理后的class文件,得到更新的dex文件;打包更新后的dex文件,得到更新的APK文件。本发明专利技术以可执行文件dex文件进行混淆,提高了应用程序混淆算法的通用性,同时也提高了应用软件的安全性。

【技术实现步骤摘要】
应用程序的混淆方法、装置和服务器
本专利技术涉及软件安全
,尤其是涉及一种应用程序的混淆方法、装置和服务器。
技术介绍
现有的混淆技术,只能针对某一种或某一类特殊的代码,混淆目标有限,且通用性较差。而近年来,应用商店所维护的移动应用逐年递增,在海量应用的背景下,应用数量增长的同时,一批不法分子趁机窃取应用代码进行篡改、仿造、添加恶意代码等操作,给应用开发者及应用用户的财产安全带来损失,隐私安全造成了极大的威胁,因此这种方式无法满足大规模移动应用的安全防护。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种应用程序的混淆方法、装置和服务器,以提高应用程序混淆算法的通用性和应用软件的安全性。第一方面,本专利技术实施例提供了一种应用程序的混淆方法,该方法包括:解析应用程序的APK文件,得到dex文件;dex文件中包含至少一个class文件;采用预设的代码,对class文件的指定区域进行混淆处理,得到处理后的class文件;封装处理后的class文件,得到更新的dex文件;打包更新后的dex文件,得到更新的APK文件。进一步地,上述解析应用程序的APK文件,得到dex文件的步骤,包括:对应用程序的APK文件进行解压处理,得到class.dex文件;将class.dex文件转换为class.jar包;class.jar包中包括至少一个class文件。进一步地,上述采用预设的代码,对class文件的指定区域进行混淆处理的步骤,包括:识别class文件的java代码的方法部分;采用预设的代码,对方法部分的指定位置进行混淆处理。进一步地,上述方法部分的指定位置包括方法部分的开头部分和/或结尾部分;采用预设的代码,对方法部分的指定位置进行混淆处理的步骤,还包括:将伪指令序列插入至方法部分的指定位置。进一步地,上述封装处理后的class文件,得到更新的dex文件的步骤之后,方法还包括:更新dex文件中的总和校验码和文件签名。进一步地,上述打包更新后的dex文件,得到更新的APK文件的步骤,包括:打包更新后的dex文件、总和校验码和签名文件,得到更新的APK文件;对更新的APK文件进行签名处理,得到签名后的APK文件。进一步地,上述方法还包括:在应用程序的执行过程中,通过不透明谓词判断dex文件中的当前代码是否是伪序列指令;如果否,执行当前代码。第二方面,本专利技术实施例提供了一种应用程序的混淆的装置,该装置包括:解析模块用于解析应用程序的APK文件,得到dex文件;dex文件中包含至少一个class文件;混淆模块用于采用预设的代码,对class文件的指定区域进行混淆处理,得到处理后的class文件;封装模块用于封装处理后的class文件,得到更新的dex文件;打包模块用于打包更新后的dex文件,得到更新的APK文件。进一步地,上述解析模块还用于:对应用程序的APK文件进行解压处理,得到class.dex文件;将class.dex文件转换为class.jar包;class.jar包中包括至少一个class文件。第三方面,本专利技术实施例提供了一种服务器,包括存储器和处理器;存储器用于存储支持处理器执行上述方法的程序,处理器被配置为用于执行存储器中存储的程序。本专利技术实施例带来了以下有益效果:本专利技术提供了一种应用程序的混淆方法、装置和服务器,通过解析应用程序的APK文件,得到包含class文件的dex文件;采用预设的代码,对class文件的指定区域进行混淆处理,再封装混淆处理后的class文件,得到更新的dex文件;最后打包更新后的dex文件,得到更新的APK文件。该方式以可执行文件dex文件进行混淆,提高了应用程序混淆算法的通用性,同时也提高了应用软件的安全性。本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种应用程序的混淆方法的流程图;图2为本专利技术实施例提供另一种应用程序的混淆方法的流程图;图3为本专利技术实施例提供的插入垃圾代码后,数据流向示意图;图4为本专利技术实施例提供的一种应用程序的混淆方法的数据流向示意图;图5为本专利技术实施例提供的一种应用程序的混淆装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。混淆算法属于软件安全保护中的一个方法,而对APK应用的保护有以下几种方式:完整性校验、源码加壳、白盒加密、代码混淆;其中完整性校验是在保证APK应用完整性的基础上,防止代码被人非法篡改;而源码加壳是指对代码部分加上所谓的“外壳”,以此来防止程序被跟踪和调试;白盒加密用于替换软件中传统密码算法的黑盒实现方式,实现无密钥泄露的密码算法运算,使得攻击者无法获得任何密钥数据;代码混淆主要针对字符串或者某一小段代码进行混淆,使得处理后的代码与处理前代码完成相同的功能,而代码混淆后很难被反编译。从软件安全保护的角度而言,完整性校验、源码加壳、白盒加密的发挥的作用巨大,但代码混淆同样必不可少。现有的代码混淆技术作用范围太小,只能针对某一种或某一类特殊的代码,缺乏广泛性,且没有混淆目标是整个APK应用或者APK应用中某个文件的混淆算法。考虑到现有的混淆技术的混淆目标有限,且通用性较差的问题,本专利技术实施例提供了一种应用程序的混淆方法、装置和服务器,该技术可以应用于Android系统的应用程序或其他相关系统下的应用程序,该技术可以采用相关的软件或硬件实现,下面通过实施例进行描述。参见图1所示的一种应用程序的混淆方法的流程图;该方法包括如下步骤:步骤S102,解析应用程序的APK(AndroidPackage,Android安装包)文件,得到dex文件;该dex文件中包含至少一个class文件;由于Android系统的大部分程序都是java编写而成,Android的应用必须使用java来开发,因此应用程序的代码混淆需要应用于java代码。上述APK文件是AndroidPackage的缩写,即Android安装包,将APK文件直接上传到Android模拟器或Android手机中执行即可安装。APK文件经过解析后,拆分成如下述表1所示的结构:表1文件含义assets目录存放需要打包到APK中的静态文件lib目录程序依赖的native库res目录存放应用程序的资源META-INF目录存放应用程序签名和证书AndroidManifest.xml应用程序的配置文件classes本文档来自技高网...

【技术保护点】
1.一种应用程序的混淆方法,其特征在于,所述方法包括:解析应用程序的APK文件,得到dex文件;所述dex文件中包含至少一个class文件;采用预设的代码,对所述class文件的指定区域进行混淆处理,得到处理后的class文件;封装处理后的class文件,得到更新的dex文件;打包更新后的dex文件,得到更新的APK文件。

【技术特征摘要】
2018.08.09 CN 20181090809211.一种应用程序的混淆方法,其特征在于,所述方法包括:解析应用程序的APK文件,得到dex文件;所述dex文件中包含至少一个class文件;采用预设的代码,对所述class文件的指定区域进行混淆处理,得到处理后的class文件;封装处理后的class文件,得到更新的dex文件;打包更新后的dex文件,得到更新的APK文件。2.根据权利要求1所述的方法,其特征在于,所述解析应用程序的APK文件,得到dex文件的步骤,包括:对应用程序的APK文件进行解压处理,得到class.dex文件;将所述class.dex文件转换为class.jar包;所述class.jar包中包括至少一个class文件。3.根据权利要求1所述的方法,其特征在于,所述采用预设的代码,对所述class文件的指定区域进行混淆处理的步骤,包括:识别所述class文件的java代码的方法部分;采用预设的代码,对所述方法部分的指定位置进行混淆处理。4.根据权利要求3所述的方法,其特征在于,所述方法部分的指定位置包括所述方法部分的开头部分和/或结尾部分;所述采用预设的代码,对所述方法部分的指定位置进行混淆处理的步骤,还包括:将所述伪指令序列插入至所述方法部分的指定位置。5.根据权利要求1所述的方法,其特征在于,所述封装处理后的class文件,得到更新的dex文件的步骤...

【专利技术属性】
技术研发人员:郭燕慧余冰涛张淼徐国爱
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京,11

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

1