应用程序的代码混淆方法及装置制造方法及图纸

技术编号:14416453 阅读:65 留言:0更新日期:2017-01-12 09:27
本发明专利技术提供了应用程序的代码混淆方法,该方法包括:基于预定的字符串类型来确定应用程序代码中需混淆加密的字符串;通过预定的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作,并对混淆加密后的应用程序代码执行编译操作;当运行应用程序,确定待执行的混淆加密后的字符串;通过与待执行的混淆加密后的字符串相应的解密方式对其进行解密操作,以执行相应的应用程序代码。本发明专利技术还提供了应用程序的代码混淆装置。通过本发明专利技术,实现了在不修改应用程序原有代码的基础上对各字符串进行混淆加密操作,同时实现了高效精确地对待执行的混淆加密后的字符串进行解密,保证了应用程序的正常运行。

【技术实现步骤摘要】

本专利技术涉及代码加密
,具体而言,本专利技术涉及一种应用程序的代码混淆方法,及一种应用程序的代码混淆装置。
技术介绍
随着软件相关技术的飞速发展,人们的生活和工作对应用程序的依赖度也随之提高,其安全意识也逐渐增强。一方面,应用程序在发布后,容易被反编译而暴露其源代码,导致该应用程序的相关核心技术被窃取,给开发者造成巨大的经济损失,同时,也存在被破解后被植入恶意代码的风险,使得用户的个人隐私的安全性受到威胁;另一方面,各大应用程序的下载平台,由于不同产商在同类型应用产品中存在竞争,导致其它同类型应用程序在下载平台提交下载包的审核时,下载平台对该应用程序的下载包使用静态扫描等技术获取应用程序内部的相关信息,一旦确认该应用程序与下载平台中已存在的其它同类型应用程序存在竞争关系时,下载平台将拒绝该应用程序提交的审核,用户将无法在该下载平台上下载该应用程序。现有技术的应用程序代码的安全处理方式一般采用对应用程序代码编译后的机器码进行加密操作,或是通过执行脚本进行加密处理操作,经过上述处理后的应用程序,很容易被逆向工程破解,通过利用反编译器得到相应的高级语言表达形式,从而获取具有很强可读性的源代码。
技术实现思路
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:本专利技术的实施例提出了一种应用程序的代码混淆方法,包括:基于预定的字符串类型来确定应用程序代码中需混淆加密的字符串;通过预定的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作,并对混淆加密后的应用程序代码执行编译操作;当运行应用程序,确定待执行的混淆加密后的字符串;通过与待执行的混淆加密后的字符串相应的解密方式对其进行解密操作,以执行相应的应用程序代码。优选地,基于预定的字符串类型来确定应用程序代码中需混淆加密的字符串的步骤,包括:遍历应用程序代码中的字符串以确定各字符串的类型;将与预定的字符串类型相匹配的字符串确定为需混淆加密的字符串。可选地,该方法还包括:根据预定混淆加密级别的确定规则,确定应用程序代码中需混淆加密的字符串的混淆加密级别;确定与需混淆加密的字符串的混淆加密级别对应的混淆加密方式;其中,通过预定的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作的步骤,包括:通过与混淆加密级别对应的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作。优选地,通过预定的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作的步骤之后,还包括:利用混淆加密后的字符串通过宏方法替换需混淆加密的字符串,以确定混淆加密后的应用程序代码。优选地,通过与待执行的混淆加密后的字符串相应的解密方式对其进行解密操作的步骤,包括:当运行所述应用程序,确定待执行的混淆加密后的字符串的混淆加密方式;通过已确定的解密方式对待执行的混淆加密后的字符串进行解密操作。可选地,该方法还包括:应用程序代码编译完成后,获取应用程序代码中已执行混淆加密操作的各字符串;确定已执行混淆加密操作的各字符串的混淆加密方式及相应的解密方式;通过相应的解密方式对已执行混淆加密操作的各字符串执行相应的解密操作。优选地,预定的字符串类型包括以下至少一项:应用程序代码中直接使用的字符串;应用程序中定义的宏字符串;应用程序中程序块外部定义的字符串;国际化本地文件中存储的字符串。本专利技术的另一实施例提出了一种应用程序的代码混淆装置,包括:第一确定模块,用于基于预定的字符串类型来确定应用程序代码中需混淆加密的字符串;加密及编译模块,用于通过预定的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作,并对混淆加密后的应用程序代码执行编译操作;第二确定模块,用于当运行应用程序,确定待执行的混淆加密后的字符串;第一解密模块,用于通过与待执行的混淆加密后的字符串相应的解密方式对其进行解密操作,以执行相应的应用程序代码。优选地,第一确定模块,包括:遍历单元,用于遍历应用程序代码中的字符串以确定各字符串的类型;第一确定单元,用于将与预定的字符串类型相匹配的字符串确定为需混淆加密的字符串。可选地,该装置还包括:第三确定模块,用于根据预定混淆加密级别的确定规则,确定应用程序代码中需混淆加密的字符串的混淆加密级别;第四确定模块,用于确定与需混淆加密的字符串的混淆加密级别对应的混淆加密方式;其中,加密及编译模块用于通过与混淆加密级别对应的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作。可选地,该装置还包括:替换模块,用于利用混淆加密后的字符串通过宏方法替换需混淆加密的字符串,以确定混淆加密后的应用程序代码。优选地,第一解密模块,包括:第二确定单元,用于当运行应用程序,确定待执行的混淆加密后的字符串的混淆加密方式;解密单元,用于通过已确定的解密方式对待执行的混淆加密后的字符串进行解密操作。可选地,该装置还包括:获取模块,用于应用程序代码编译完成后,获取应用程序代码中已执行混淆加密操作的各字符串;第五确定模块,用于确定已执行混淆加密操作的各字符串的混淆加密方式及相应的解密方式;第二解密模块,用于通过相应的解密方式对已执行混淆加密操作的各字符串执行相应的解密操作。优选地,预定的字符串类型包括以下至少一项:应用程序代码中直接使用的字符串;应用程序中定义的宏字符串;应用程序中程序块外部定义的字符串;国际化本地文件中存储的字符串。本专利技术的实施例中,基于预定的字符串类型来确定应用程序代码中需混淆加密的字符串,可精确快速地判断应用程序代码中的字符串是否需要进行混淆加密,且实现了对不同类型的字符串进行混淆加密;通过预定的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作,并对混淆加密后的应用程序代码执行编译操作,实现了在不修改应用程序原有的代码的基础上对各字符串采用预定的混淆加密方式进行混淆加密操作,保证了应用程序的相关代码混淆加密处理的效率;当运行应用程序,确定待执行的混淆加密后的字符串,通过与待执行的混淆加密后的字符串相应的解密方式对其进行解密操作,以保证后续执行相应应用程序代码,实现了高效精确地对待执行的混淆加密后的字符串进行解密,保证了应用程序的正常运行。进一步地,由于不修改应用程序原有的代码,减少了开发人员对应用程序代码的处理步骤,从而提高了开发效率。本专利技术附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本专利技术中一个实施例的应用程序的代码混淆方法的流程图;图2为本专利技术中一个优选实施例的应用程序的代码混淆方法的流程图;图3为本专利技术中另一实施例的应用程序的代码混淆装置的结构示意图;图4为本专利技术中另一优选实施例的应用程序的代码混淆装置的结构示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201610695997.html" title="应用程序的代码混淆方法及装置原文来自X技术">应用程序的代码混淆方法及装置</a>

【技术保护点】
一种应用程序的代码混淆方法,其特征在于,包括:基于预定的字符串类型来确定所述应用程序代码中需混淆加密的字符串;通过预定的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作,并对混淆加密后的应用程序代码执行编译操作;当运行所述应用程序,确定待执行的混淆加密后的字符串,通过与待执行的混淆加密后的字符串相应的解密方式对其进行解密操作,以执行相应的应用程序代码。

【技术特征摘要】
1.一种应用程序的代码混淆方法,其特征在于,包括:基于预定的字符串类型来确定所述应用程序代码中需混淆加密的字符串;通过预定的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作,并对混淆加密后的应用程序代码执行编译操作;当运行所述应用程序,确定待执行的混淆加密后的字符串,通过与待执行的混淆加密后的字符串相应的解密方式对其进行解密操作,以执行相应的应用程序代码。2.根据权利要求1所述的方法,其中,所述基于预定的字符串类型来确定所述应用程序代码中需混淆加密的字符串的步骤,包括:遍历所述应用程序代码中的字符串以确定各字符串的类型;将与预定的字符串类型相匹配的字符串确定为需混淆加密的字符串。3.根据权利要求1所述的方法,其特征在于,还包括:根据预定混淆加密级别的确定规则,确定所述应用程序代码中需混淆加密的字符串的混淆加密级别;确定与需混淆加密的字符串的混淆加密级别对应的混淆加密方式;其中,所述通过预定的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作的步骤,包括:通过与所述混淆加密级别对应的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作。4.根据权利要求1所述的方法,其特征在于,所述通过预定的混淆加密方式对已确定需混淆加密的字符串执行相应的混淆加密操作的步骤之后,还包括:利用混淆加密后的字符串通过宏方法替换需混淆加密的字符串,以确定混淆加密后的应用程序代码。5.根据权利要求1所述的方法,其中,所述通过与待执行的混淆加密后的字符串相应的解密方式对其进行解密操作的步骤,包括:当运行所述应用程序,确定待执行的混淆加密后的字符串的混淆加密方式;通过已确定的解密方式对待执行的混淆加密后的字符串进行解密操作。6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:所述应用程序代码编译完成后,获取所述应用程序代码中已执行混淆加密操作的各字符串;确定已执行混淆加密操作的各字符串的混淆加密方式及相应的解密方式;通过相应的解密方式对已执行混淆加密操作的各字符串执行相应的解密操作。7.根据权利要求1-5任一项所述的方法,其特征在于,所述预定的字符串类型包括以下至少一项:应用程序代码中直接使用的字符串;应用程序中定义的宏字符串;应用程序中程序块外部定义的字符串;国际化本地文件中存储的字...

【专利技术属性】
技术研发人员:徐慧书
申请(专利权)人:广州优视网络科技有限公司
类型:发明
国别省市:广东;44

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

1