一种APK数据加密处理方法、智能终端及存储介质与流程

文档序号:17928166发布日期:2019-06-15 00:34阅读:230来源:国知局
一种APK数据加密处理方法、智能终端及存储介质与流程

本发明涉及计算机应用技术领域,尤其涉及一种apk数据加密处理方法、智能终端及存储介质。



背景技术:

目前市面上的app本地sharepreference(sharepreference是android平台上一个轻量级的存储辅助类,用来保存应用的一些常用软件配置参数,最终数据是以xml形式进行存储)数据都是采用明文存储或者使用简单的算法对重要数据字段进行加密,当破解人员(不法分子)通过某种方式获取到app的本地sharepreference数据时,app的个人账号信息以及历史记录就会存在泄漏的风险。

因此,现有技术还有待于改进和发展。



技术实现要素:

本发明的主要目的在于提供一种apk数据加密处理方法、智能终端及存储介质,旨在通过使用国密算法对apk数据进行加密后,在app本地sharepreference数据泄露之后,破解者使用相应的编辑工具是无法查看到真实数据,数据被加密存储,破解者无法从中得到任何关于app的信息,方便有效地防止apk本地sharepreference数据泄露问题,使数据能够得到更好的保护。

为实现上述目的,本发明提供一种apk数据加密处理方法,所述apk数据加密处理方法包括如下步骤:

对系统存储类数据进行存储,读取相关的函数进行内联hook,在运行apk时拦截本进程的读写操作;

判断读写操作为存储类写数据且为存储类文件数据时,替换存储相关函数,对字节进行加密,将加密后的所有数据使用系统存储函数进行存储;

判断读写操作为存储类读数据且为存储类文件数据时,替换读取相关函数,对数据进行相应的解密操作,使用读取相关函数对解密后的数据进行读取。

可选地,所述对系统存储类数据进行存储,读取相关的函数进行内联hook,在运行apk时拦截本进程的读写操作之后还包括:

判断读写操作为存储类写数据还是存储类读数据。

可选地,所述判断读写操作为存储类写数据且为存储类文件数据时,替换存储相关函数,对字节进行加密,将加密后的所有数据使用系统存储函数进行存储具体包括:

当读写操作的是sharepreference写数据时,进程拦截到写数据相关函数;

通过文件描述符判断是否为sharepreference文件数据,当是时自动替换存储相关函数;

在替换函数中使用国密算法对数据每预设个数字节进行加密一次,最后将加密后的所有数据使用系统存储函数进行存储。

可选地,所述判断读写操作为存储类读数据且为存储类文件数据时,替换读取相关函数,对数据进行相应的解密操作,使用读取相关函数对解密后的数据进行读取具体包括:

当读写操作的是sharepreference读数据时,进程拦截到读数据相关函数;

通过文件描述符判断是否为sharepreference文件数据,当是时自动替换读取相关函数;

在的替换函数中使用国密算法对数据进行相应的解密操作,最后使用读取相关函数对解密后的数据进行读取。

可选地,所述通过文件描述符判断是否为sharepreference文件数据之后还包括:

当读写操作的不为sharepreference写数据时,则不作操作。

可选地,所述国密算法为符合国家密码管理规范的密码算法。

可选地,所述内联hook为通过改变目标函数头部的代码来使改变后的代码跳转到预先设置的一个函数中,用于产生hook。

可选地,所述预设个数为16个。

此外,为实现上述目的,本发明还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的apk数据加密处理程序,所述apk数据加密处理程序被所述处理器执行时实现如上所述的apk数据加密处理方法的步骤。

此外,为实现上述目的,本发明还提供一种存储介质,其中,所述存储介质存储有apk数据加密处理程序,所述apk数据加密处理程序被处理器执行时实现如上所述的apk数据加密处理方法的步骤。

本发明公开了一种apk数据加密处理方法、智能终端及存储介质,所述方法包括:对系统存储类数据进行存储,读取相关的函数进行内联hook,在运行apk时拦截本进程的读写操作;判断读写操作为存储类写数据且为存储类文件数据时,替换存储相关函数,对字节进行加密,将加密后的所有数据使用系统存储函数进行存储;判断读写操作为存储类读数据且为存储类文件数据时,替换读取相关函数,对数据进行相应的解密操作,使用读取相关函数对解密后的数据进行读取。本发明通过使用国密算法对apk数据进行加密后,在app本地sharepreference数据泄露之后,破解者使用相应的编辑工具是无法查看到真实数据,数据被加密存储,破解者无法从中得到任何关于app的信息,方便有效地防止apk本地sharepreference数据泄露问题,使数据能够得到更好的保护。

附图说明

图1是本发明apk数据加密处理方法的较佳实施例的流程图;

图2是本发明apk数据加密处理方法的较佳实施例中步骤s20的流程图;

图3是本发明apk数据加密处理方法的较佳实施例中步骤s30的流程图;

图4为本发明智能终端的较佳实施例的运行环境示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明较佳实施例所述的apk数据加密处理方法,如图1所示,所述apk数据加密处理方法包括以下步骤:

步骤s10、对系统存储类数据进行存储,读取相关的函数进行内联hook,在运行apk时拦截本进程的读写操作。

具体地,对系统sharepreference数据进行存储,sharepreference是android平台上一个轻量级的存储类,sharepreference是android提供的数据持久化的一种手段,适合单进程、小批量的数据存储与访问,用来存储少量数据;其中,使用sharepreference写入的步骤为:获得使用sharepreference对象,获得editor,通过editor对象的putxxx函数,设置写入数据,通过editor对象的commit提交写入。

然后,读取相关的函数进行内联hook,hook是windows中提供的一种用以替换dos下“中断”的系统机制,中文译为“挂钩”或“钩子”,在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会收到系统的通知,这时程序就能在第一时间对该事件做出响应。

hook就像是代码中放下的一个“钩子”,它在静静地等待捕获系统中的某个消息或动作。在编程技术中,钩子技术在dos时代就已经存在了。在windows下,钩子按照实现技术的不同和挂钩位置的不同,其种类也是越来越多,但是设置钩子的本质却是始终不变的。

内联hook(inlinehook)实际上就是指通过改变目标函数头部的代码来使改变后的代码跳转到我们自己设置的一个函数里,产生hook。内联hook是对目标函数挂钩,使得挂钩点的指令发生变化,一般使用跳转指令跳到伪造的函数处,而为了实现隐藏,还需要在伪造函数处解钩,等到函数返回前再次挂钩。

最后,在运行apk时拦截本进程的io操作(读写操作)。

进一步地,在所述步骤s10之后还包括:判断读写操作为存储类写数据还是存储类读数据。

其中,存储类写数据即为sharepreference写数据,存储类读数据即为sharepreference读数据。

步骤s20、判断读写操作为存储类写数据且为存储类文件数据时,替换存储相关函数,对字节进行加密,将加密后的所有数据使用系统存储函数进行存储。

具体的过程请参阅图2,其为本发明提供的apk数据加密处理方法中步骤s20的流程图。

如图2所示,所述步骤s20包括:

s21、当读写操作的是sharepreference写数据时,进程拦截到写数据相关函数;

s22、通过文件描述符判断是否为sharepreference文件数据,当是时自动替换存储相关函数;

s23、在替换函数中使用国密算法对数据每预设个数字节进行加密一次,最后将加密后的所有数据使用系统存储函数进行存储。

具体地,当io操作的是sharepreference写数据(app开发者使用android的sharepreference来保存数据的时候就会产生些操作)时,进程会拦截到写数据相关函数(例如open、read、write等函数),并通过文件描述符判断是否为sharepreference文件数据,自动替换存储相关函数。

在上述的替换函数中会使用国密算法对数据每16个字节进行加密一次,最后将加密后的所有数据使用系统存储函数(此处的系统储存函数也就是前面说的io相关函数,比如open之类的)进行存储。

其中,所述国密算法即国家密码局认定的国产密码算法,即商用密码,符合国家密码管理规范的密码算法。国密算法是国家密码局制定标准的一系列算法,例如包括对称加密算法,椭圆曲线非对称加密算法,杂凑算法。商用密码,是指能够实现商用密码算法的加密、解密和认证等功能的技术。

步骤s30、判断读写操作为存储类读数据且为存储类文件数据时,替换读取相关函数,对数据进行相应的解密操作,使用读取相关函数对解密后的数据进行读取。

具体的过程请参阅图3,其为本发明提供的apk数据加密处理方法中步骤s30的流程图。

如图3所示,所述步骤s30包括:

s31、当读写操作的是sharepreference读数据时,进程拦截到读数据相关函数;

s32、通过文件描述符判断是否为sharepreference文件数据,当是时自动替换读取相关函数;

s33、在的替换函数中使用国密算法对数据进行相应的解密操作,最后使用读取相关函数对解密后的数据进行读取。

具体地,当io操作的是sharepreference读数据(用户app在使用sharepreference的时候,如果需要获取以前存储在手机里面的信息,就会触发读操作)时,进程会拦截到读数据相关函数,并通过文件描述符判断是否为sharepreference文件数据,自动替换读取相关函数;在上述的替换函数中会使用国密算法对数据进行相应的解密操作,最后使用读取相关函数对解密后的数据进行读取。

本发明使用了基于国密算法的apk数据加密技术后,在app本地sharepreference数据泄露之后,破解者使用相应的编辑工具是无法查看到真实数据,数据被加密存储,破解者无法从中得到任何关于app的信息。

对androidapp本地sharepreference文件进行加密存储,防止appsharepreference文件泄露之后,用户的app信息(比如:账号信息、app的设置信息、app的初始化信息等)也跟随着泄露。本发明可以方便有效地防止apk本地sharepreference数据泄露问题,采用国密加密算法,使数据能够得到更好的保护。

进一步地,如图4所示,基于上述apk数据加密处理方法,本发明还相应提供了一种智能终端,所述智能终端包括处理器10、存储器20及显示器30。图4仅示出了智能终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器20在一些实施例中可以是所述智能终端的内部存储单元,例如智能终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述智能终端的外部存储设备,例如所述智能终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器20还可以既包括所述智能终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述智能终端的应用软件及各类数据,例如所述安装智能终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有apk数据加密处理程序40,该apk数据加密处理程序40可被处理器10所执行,从而实现本申请中apk数据加密处理方法。

所述处理器10在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述apk数据加密处理方法等。

所述显示器30在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器30用于显示在所述智能终端的信息以及用于显示可视化的用户界面。所述智能终端的部件10-30通过系统总线相互通信。

在一实施例中,当处理器10执行所述存储器20中apk数据加密处理程序40时实现以下步骤:

对系统存储类数据进行存储,读取相关的函数进行内联hook,在运行apk时拦截本进程的读写操作;

判断读写操作为存储类写数据且为存储类文件数据时,替换存储相关函数,对字节进行加密,将加密后的所有数据使用系统存储函数进行存储;

判断读写操作为存储类读数据且为存储类文件数据时,替换读取相关函数,对数据进行相应的解密操作,使用读取相关函数对解密后的数据进行读取。

所述对系统存储类数据进行存储,读取相关的函数进行内联hook,在运行apk时拦截本进程的读写操作之后还包括:

判断读写操作为存储类写数据还是存储类读数据。

所述判断读写操作为存储类写数据且为存储类文件数据时,替换存储相关函数,对字节进行加密,将加密后的所有数据使用系统存储函数进行存储具体包括:

当读写操作的是sharepreference写数据时,进程拦截到写数据相关函数;

通过文件描述符判断是否为sharepreference文件数据,当是时自动替换存储相关函数;

在替换函数中使用国密算法对数据每预设个数字节进行加密一次,最后将加密后的所有数据使用系统存储函数进行存储。

所述判断读写操作为存储类读数据且为存储类文件数据时,替换读取相关函数,对数据进行相应的解密操作,使用读取相关函数对解密后的数据进行读取具体包括:

当读写操作的是sharepreference读数据时,进程拦截到读数据相关函数;

通过文件描述符判断是否为sharepreference文件数据,当是时自动替换读取相关函数;

在的替换函数中使用国密算法对数据进行相应的解密操作,最后使用读取相关函数对解密后的数据进行读取。

所述通过文件描述符判断是否为sharepreference文件数据之后还包括:

当读写操作的不为sharepreference写数据时,则不作操作。

其中,所述国密算法为符合国家密码管理规范的密码算法;所述内联hook为通过改变目标函数头部的代码来使改变后的代码跳转到预先设置的一个函数中,用于产生hook;所述预设个数为16个。

本发明还提供一种存储介质,其中,所述存储介质存储有apk数据加密处理程序,所述apk数据加密处理程序被处理器执行时实现如上所述的apk数据加密处理方法的步骤。

综上所述,本发明提供一种apk数据加密处理方法、智能终端及存储介质,所述方法包括:对系统存储类数据进行存储,读取相关的函数进行内联hook,在运行apk时拦截本进程的读写操作;判断读写操作为存储类写数据且为存储类文件数据时,替换存储相关函数,对字节进行加密,将加密后的所有数据使用系统存储函数进行存储;判断读写操作为存储类读数据且为存储类文件数据时,替换读取相关函数,对数据进行相应的解密操作,使用读取相关函数对解密后的数据进行读取。本发明通过使用国密算法对apk数据进行加密后,在app本地sharepreference数据泄露之后,破解者使用相应的编辑工具是无法查看到真实数据,数据被加密存储,破解者无法从中得到任何关于app的信息,方便有效地防止apk本地sharepreference数据泄露问题,使数据能够得到更好的保护。

当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1