首页> 中国专利> 一种基于安卓系统的APP说明书的软件安全加固方法

一种基于安卓系统的APP说明书的软件安全加固方法

摘要

本发明公开了一种基于安卓系统的APP说明书的软件安全加固方法,通过读取说明书文档、对说明书进行关键字的提取、对关键字所对应的功能代码进行混淆得新的DEX文件、对新的DEX文件进行加壳处理从而实现软件的安全加固,本发明的基于安卓系统的APP说明书的软件安全加固方法利用了说明书文档里面大量的文本信息,对软件安全进行有选择性的加固,从而提高了代码运行效率,且加固技术中进行了混淆和加壳,降低了逆向工程的入侵记录,同时降低了源文件的可读性,在代码进行加固后,没有影响代码的运行效率,且提高了安卓软件APP的使用安全性又保护了用户的隐私安全。

著录项

  • 公开/公告号CN108932436A

    专利类型发明专利

  • 公开/公告日2018-12-04

    原文格式PDF

  • 申请/专利权人 四川长虹电器股份有限公司;

    申请/专利号CN201810737851.2

  • 发明设计人 胡敏;

    申请日2018-07-06

  • 分类号

  • 代理机构四川省成都市天策商标专利事务所;

  • 代理人李洁

  • 地址 621000 四川省绵阳市高新区绵兴东路35号

  • 入库时间 2023-06-19 07:34:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-28

    授权

    授权

  • 2018-12-28

    实质审查的生效 IPC(主分类):G06F21/60 申请日:20180706

    实质审查的生效

  • 2018-12-04

    公开

    公开

说明书

技术领域

本发明涉及移动互联网中安卓软件的安全技术领域,特别涉及一种基于安卓系统的APP说明书的软件安全加固方法。

背景技术

随着智能手机的快速发展,安卓软件的大量运用方便了人类的生活。安卓软件的说明书文档中又包含着大量的有用信息。随着安卓软件的大量使用,各种恶意软件对用户的隐私(如:电话,邮箱)进行窃取,对财产进行窃取,造成极大的安全隐患。如何在用户使用安卓软件的过程中,结合软件说明书,提高软件使用的安全性,保护用户各种信息,但又不影响软件运行效率成为急需解决的问题。

发明内容

本发明的目的是克服上述背景技术中不足,提供一种基于安卓系统的APP说明书的软件安全加固方法,通过读取说明书中的有用信息,进行分类再调用加固技术来实现软件安全加固,可在不影响软件运行效率的情况下,提高软件使用的安全性。

为了达到上述的技术效果,本发明采取以下技术方案:

一种基于安卓系统的APP说明书的软件安全加固方法,具体包含以下步骤:

A.解压软件的APK文件得到DEX文件并解析DEX文件;

B.采用提取算法提取DEX文件代码中的关键字;

C.对关键字进行混淆处理得到加密的源APK文件;

D.运用碎片化加壳技术将加密的源APK文件加密在壳APK文件上从而得到加密的DEX文件;

E.用加密的DEX文件替换壳程序中的DEX文件得到加密的APK文件从而完成软件加固;

本发明的基于安卓系统的APP说明书的软件安全加固方法通过读取说明书文档、对说明书进行关键字的提取、对关键字所对应的功能代码进行混淆得新的DEX文件、对新的DEX文件进行加壳处理从而实现软件的安全加固,其利用了说明书文档里面大量的文本信息,对软件安全进行有选择性的加固,从而提高了代码运行效率,且加固技术中进行了混淆和加壳,降低了逆向工程的入侵记录,同时降低了源文件的可读性,同时,在代码进行加固后,没有影响代码的运行效率,且提高了安卓软件APP的使用安全性又保护了用户的隐私安全。

进一步地,所述步骤B中具体采用TF-IDF方法提取关键字且包含以下步骤:

B1.将DEX文件的所有文档进行分词,创建词次字典用于保存每个词出现的次数;

B2.遍历所有的词,得到单个词在DEX文件中的逆向文件频率,然后计算每个词的词频,其中,所述逆向文件频率的计算方法是文件集包含的文件总数除以测定文件中的出现选定词语的文件数,所述词频的计算方法是选定的词语出现的次数除以DEX文件包含的总词语个数;

B3.创建词信字典保存所有的词信息,计算每个词的权重并保存至词信字典,再按照权重由大至小的排名顺序选取排名靠前的多个词作为需要提取的关键词,其中,所述词的权重为该词的逆向文件频率与该词的词频的乘积。

进一步地,所述步骤C具体为:对提取出的DEX文件代码中的关键字代码名称使用生僻的词或简单而无意义的英文字符进行重命名从而生成加密的源APK文件。

进一步地,所述步骤C中在对关键字代码名称进行重命名后还可在关键字代码末端加上一串无效代码,增加无效代码可进一步提升DEX文件的混淆效果保障加密处理的安全性。

进一步地,所述步骤D分为两个阶段分别为APK预处理阶段和DEX文件运行阶段;

所述APK预处理阶段具体包含以下步骤:

第一步:将经过步骤C混淆处理后的DEX文件分为多个独立的片段;

第二步:运用加密算法并使用不同的密钥对各DEX文件片断分别进行加密;

所述DEX文件运行阶段具体包含以下步骤:

第一步:将各DEX文件片段分别解密后映射入内存中;

第二步:利用热补丁动态修复技术对DEX文件片段进行修复;

第三步:完成软件中资源的拷贝及Manifest配置;

第四步:执行分片运行,其中,当程序跨片时执行上下文切换工作从而完整地运行整个DEX文件。

进一步地,在所述APK预处理阶段中具体将DEX文件分为8个独立的片段。

进一步地,在对各DEX文件片断分别进行加密时所使用的加密算法为异或加密算法或AES加密算法。

进一步地,所述步骤E具体包含以下步骤:

E1.删除原有DEX文件将步骤D中的加密的DEX文件写入数据区;

E2.当前字段在数据区和索引区的位置,更新文件头中字段的偏移位置;

E3.对加密的DEX文件进行CRC校验,更新文件头中的checksum值;

E4.在加密的DEX文件背后拷贝加密的源APK文件内容,最终生成加密的APK文件。

本发明与现有技术相比,具有以下的有益效果:

本发明的基于安卓系统的APP说明书的软件安全加固方法,通过读取说明书文档、对说明书进行关键字的提取、对关键字所对应的功能代码进行混淆得新的DEX文件、对新的DEX文件进行加壳处理从而实现软件的安全加固,其利用了说明书文档里面大量的文本信息,对软件安全进行有选择性的加固,从而提高了代码运行效率,且加固技术中进行了混淆和加壳,降低了逆向工程的入侵记录,同时降低了源文件的可读性,在代码进行加固后,没有影响代码的运行效率,且提高了安卓软件APP的使用安全性又保护了用户的隐私安全。

附图说明

图1是本发明的基于安卓系统的APP说明书的软件安全加固方法的总体流程示意图。

图2是本发明的一个实施例的基于安卓系统的APP说明书的软件安全加固方法中进行碎片化加壳处理的流程示意图。

具体实施方式

下面结合本发明的实施例对本发明作进一步的阐述和说明。

实施例:

如图1所示,一种基于安卓系统的APP说明书的软件安全加固方法,具体包含以下步骤:

A.解压软件的APK文件得到DEX文件并解析DEX文件;

B.采用提取算法提取DEX文件代码中的关键字;

具体的,本实施例中,具体采用TF-IDF方法提取关键字且包含以下步骤:

B1.将DEX文件的所有文档进行分词,创建词次字典用于保存每个词出现的次数;

B2.遍历所有的词,得到单个词在DEX文件中的逆向文件频率,然后计算每个词的词频,其中,所述逆向文件频率的计算方法是文件集包含的文件总数除以测定文件中的出现选定词语的文件数,所述词频的计算方法是选定的词语出现的次数除以DEX文件包含的总词语个数;

B3.创建词信字典保存所有的词信息,计算每个词的权重并保存至词信字典,再按照权重由大至小的排名顺序选取排名靠前的多个词作为需要提取的关键词,其中,所述词的权重为该词的逆向文件频率与该词的词频的乘积。

具体的,本实施例中在词信字典内权重由大至小的排名中排名前四的词分别为“付款”、“密码”、“打电话”、“读取短信”,且在本实施例中具体是提取前4个词作为关键词。

C.对提取出的DEX文件代码中的关键字代码名称使用生僻的词或简单而无意义的英文字符进行重命名从而生成加密的源APK文件;

在本实施中具体为对“付款”、“密码”、“打电话”、“读取短信”4个关键词进行字节混淆,具体是用F对“付款”重命名,M对“密码”重命名,D对“打电话”重命名,ME对“读取短信”重命名。

同时,为了增加无效代码可进一步提升DEX文件的混淆效果保障加密处理的安全性,还可在对关键字代码名称进行重命名后在关键字代码末端加上一串无效代码。

D.运用碎片化加壳技术将加密的源APK文件加密在壳APK文件上从而得到加密的DEX文件;

具体分为APK预处理阶段和DEX文件运行阶段;

所述APK预处理阶段具体包含以下步骤:

第一步:将经过步骤C混淆处理后的DEX文件分为多个独立的片段;

第二步:运用加密算法并使用不同的密钥对各DEX文件片断分别进行加密;

所述DEX文件运行阶段具体包含以下步骤:

第一步:将各DEX文件片段分别解密后映射入内存中;

第二步:利用热补丁动态修复技术对DEX文件片段进行修复;

第三步:完成软件中资源的拷贝及Manifest配置;

第四步:执行分片运行,其中,当程序跨片时执行上下文切换工作从而完整地运行整个DEX文件。

本实施例中具体为APK预处理时,基于混淆得到DEX文件中,将DEX文件分为8个独立的片段,并用AES算法且使用不同的密钥对各片断分别进行加密。

而DEX文件运行阶段时主要是完成加载工作和上下文切换工作。具体是首先将DEX文件片分别解密后映射入内存中,然后为了确保正确的解释并执行碎片化的DEX文件,需要利用热补丁动态修复技术进行技术修复工作做一些修复工作,然后再完成资源的拷贝工作和Manifest配置工作,具体如图2所示,将资源文件Manifest.xml,images,Libraries等拷贝到数据区,通过设置安卓文件中的manifest.json文件,在“项目管理器”中双击打开设置文件的“可视化视图”,配置应用的基本信息。

接着,在分片运行中当程序跨片时执行上下文切换工作,即从当前进程进入下一进程时,用DEXCClassLoader文件进行替换,从而得到加密的DEX文件并完整地运行整个DEX文件

E.用加密的DEX文件替换壳程序中的DEX文件得到加密的APK文件从而完成软件加固。具体为:

E1.删除原有DEX文件将步骤D中的加密的DEX文件写入数据区;

E2.当前字段在数据区和索引区的位置,更新文件头中字段的偏移位置;

E3.对加密的DEX文件进行CRC校验,更新文件头中的checksum值;

E4.在加密的DEX文件背后拷贝加密的源APK文件内容,最终生成加密的APK文件。

具体的,在本实施例中所使用的加密算法为在对各DEX文件片断分别进行加密时所使用的加密算法为AES加密算法,实际中还可选用其他加密算法,如采用异或加密算法对每个字节进行异或处理等。

因此,本发明的基于安卓系统的APP说明书的软件安全加固方法利用了说明书文档里面大量的文本信息,对软件安全进行有选择性的加固,从而提高了代码运行效率,且加固技术中进行了混淆和加壳,降低了逆向工程的入侵记录,同时降低了源文件的可读性,在代码进行加固后,没有影响代码的运行效率,且提高了安卓软件APP的使用安全性又保护了用户的隐私安全。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号