基于文本水印的安卓应用程序信息隐藏与软件保护方法

文档序号:9810897阅读:374来源:国知局
基于文本水印的安卓应用程序信息隐藏与软件保护方法
【技术领域】
[0001]本发明涉及移动互联网安全,与信息隐藏和软件保护领域相关,尤其一种涉及安卓系统下基于文本水印的的信息隐藏与软件保护方法。
【背景技术】
[0002]Android系统的APP格式为APK,APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和si s—样,把android sdk编译的工程打包成一个安装程序文件,格式为apLAPK文件其实是zip格式,但后缀名被修改为apk,通过Google公司的反编译软件apktoo I反编译后,可以看到AndroidManifest.xml文件,Dex是DalvikVM executes的简称,即Android Dalvik执行程序。
[0003]利用APP进行信息隐藏目前是一个崭新的课题,例如,用户可以在APP中隐藏某些信息,然后提交给应用商店,其他用户可以下载该应用,然后恢复出APP中隐藏的信息。这种隐藏通信可以实现一对多(海量)的通信方式,且十分隐秘。另外,通过信息隐藏的基本技术,还可以进行安卓APP应用软件的版权保护。通常APP的软件保护方法包括加密、加壳、反逆向以及反编译等,但这些方法速度慢,操作复杂,容易被攻破。

【发明内容】

[0004]本发明的发明目的在于,提供一种操作简单,不易被发现的信息隐藏方法,实现隐秘通信、版权保护以及恶意软件来源检测和监视。
[0005]为达到上述目的,本发明提供一种基于文本水印的安卓应用程序信息隐
[0006]藏方法,包括以下步骤:
[0007]S1、将需要隐藏的信息M进行加密处理,并按照规定格式保存到数组B[l,...,N_1]中,得到密文数组,其中N为整数;
[0008]S2、分析出AndroidManifest.xml文件中可以利用的位置,按照规定的格式将密文数组隐藏到相应位置中,并生成APK文件;
[0009]S3、从 APK 文件中提取 Androi dManifest.xml 文件,并从AndroidManif est.xml 文件中解密隐藏的信息M。
[0010]本发明所述的信息隐藏方法中,步骤S2具体包括以下步骤:
[0011 ] S2.1、扫描AndroidManifest.xml文件,直到扫描到符合隐藏条件的语句为止;在符合隐藏要求的AndroidManif est.xml文件语句后,根据当前语句特征,按照规定格式将密文数组隐藏到当前语句的相应位置,隐藏完成后继续向文件后方扫描,以此类推;
[0012]S2.2、完成密文数组的隐藏后,生成新的AndroidManif est.xml文件,与DEX文件打包生成APK文件。
[0013]步骤S3具体包括以下步骤:
[0014]S3.1、从APK文件中提取AndroidManifes.xml文件;
[0015]S3.2、依次从头扫描AndroidManifest.xml文件中符合隐藏特征的语句,并从中逐单位提取密文数组中的值,形成密文C ;
[0016]S3.3、将密文C解密,得到隐藏的信息M,完成信息提取。
[0017]本发明所述的信息隐藏方法中,步骤SI中将需要隐藏的信息M进行加密处理,具体包括:将需要隐藏的信息M加密,得到密文C,并将密文C转化为长度为N的二进制信息,N为整数。
[0018]本发明所述的信息隐藏方法中,AndroidManifest.xml文件中具备隐藏信息特征的字段包括:〈appl icat1nX/appl icat1n〉结构中具备隐藏信息特征的字段;〈/>结构中具备隐藏信息特征的字段。
[0019]本发明所述的信息隐藏方法中,步骤S2“按照规定的格式将密文数组隐藏到相应位置中”具体为:选取一个随机数T,且0〈T〈10,需要隐藏的信息为B[i],i为整数,若B[i]为O则选取T为偶数,若B[i]为I则选取T为奇数,并将B[i]信息隐藏在文本文件中:
[0020]I)若将信息隐藏在〈applicat1nX/applicat1n〉结构中,则在〈applicat1nX/appl icat1n〉结构的结尾后方加上B[i]*K个空〈appl icat1nX/appl icat1n〉结构,K为整数;
[0021 ] 2)若将信息隐藏在〈/activity〉结构中,则在〈/activity〉结构的结尾后方加上〈activity>android: name = 〃com.number.T〃〈/activity〉结构;
[0022]3)若将信息隐藏在〈/>结构中,则在〈/>结构的结尾后方加上注释符//和B[i]*K个字符,K为整数。
[0023]本发明所述的信息隐藏方法中,步骤SI中按照规定的单位进行编号,具体包括:以比特为单位,或以字节为单位,或以双字节为单位进行编号。
[0024]本发明所述的信息隐藏方法中,对隐藏的信息M进行加密方式具体包括:古典密码体制、对称密钥密码体制或者非对称钥密码体制。
[0025]本发明还提供一种安卓系统下基于文本水印的隐秘通信方法,包括以下步骤:
[0026](I)发送方利用上述信息隐藏方法,将待传递的信息隐藏到AndroidManif est.xml文件的相应位置中,并生成APK文件;
[0027 ] (2)发送方将APK文件提交到某个网上应用商店;
[0028](3)接收方从该网上应用商店下载APK文件;
[0029](4)接收方从APK文件中提取出AndroidManif est.xml文件;
[0030 ] (5)接收方从Andro i dMan ifest.xml文件中提取出隐藏信息。
[0031]本发明还提供一种安卓系统下基于文本水印的版权保护方法,其特征在于,包括以下步骤:
[0032I (I)开发方利用上述信息隐藏方法将版权保护信息隐藏到AndroidManifest.xml文件的相应位置中,并生成APK文件;
[0033](2)开发方将APK文件提交到网上应用商店;
[0034](3)软件使用方从该网上应用商店下载APK文件;
[0035](4)软件使用方从APK文件中提取出AndroidManifest.xml文件;
[0036](5)软件使用方从AndroidManifest.xml文件中提取隐藏的版权保护信息,并检验版权信息是否真实有效,从而确定是否为重打包的盗版APK文件。
[0037]本发明还提供一种安卓系统下基于文本水印的恶意软件来源检测和追踪方法,其特征在于,该方法具体包括以下步骤:
[0038](I)网上应用商店从上传的APK文件中分解出AndroidManifest.xml文件;
[0039](2)网上应用商店利用上述信息隐藏方法将APK文件上传者的身份标识信息和/或该网上应用商店的标识信息隐藏到AndroidManifest.xml文件的相应位置中,并重新生成APK文件并再该网上应用商店中发布以供他人下载;
[0040]( 3)在病毒检测机构检测到该APK文件为恶意软件时,从该APK文件中提取出AndroidManifest.xml文件,并从Androi dManifest.xml文件中提取出隐藏的APK文件上传者的身份标识信息,从而确定该恶意软件的制作者。
[0041]本发明的有益技术效果:本发明利用信息隐藏技术将需要隐藏的信息嵌入到APP中的XML文本文件中,与APP直接交付,且不影响APP的运行,使软件保护具有更好的性能,如发布的APK文件总体大小不变,比加密加壳等保护方式的APK文件大小小,软件下载的延迟少,以及更好的用户体验,启动APK文件时比起加密加壳等软件保护方式的等待时间更短。此外,通过本发明的信息隐藏方法可以实现隐秘通信、版权保护以及恶意软件来源检测和监视。
【附图说明】
[0042]下面将结合附图及实施例对本发明作进一步说明,附图中:
[0043]图1是本发明实施例基于文本水印的安卓应用程序信息隐藏方法流程图;
[0044]图2是图1中步骤S2的具体流程图;
[0045]图3是图1中步骤S3的具体流程图;
[0046]图4是本发明实施例安卓系统下基于文本水印的隐秘通信方法流程图;
[0047]图5是本发明实施例安卓系统下基于文本水印的版权保护方法流程图;
[0048]图6是本发明实施例安卓系统下基于文本水印的恶意软件来源检测和追踪方法流程图。
【具体实施方式】
[0049]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0050]本发明实施例一种安卓系统下基于文本水印的安卓应用程序保护方法,如图1所示,包括以下步骤:
[0051]S1、将需要隐藏的信息M进行加密处理,并按照规定格式保存到数组B[l,...,N-1],N为整数;
[0〇52] S2、分析出AndroidManifest.xml文件中可以利用的位置,按照规定的格式密文(即保存了密文的数组)隐藏到相应位置中,并生成APK文件;
[0053]S3、从 APK 文件中提取 Androi dManifest.xml 文件,并从AndroidManif est.xml 文件中解密隐藏的信息M。
[0054]本发明的一个实施例中,在步骤SI中,将需要隐藏的信息M进行加密,并对加密后的信息转化为二进制数,例如:当进行信息隐藏时,将需要隐藏的有意义的明文信息M1,例如隐藏文本文件或一张图片,使用某种加密方式如流密码RC4加密为密文信息Cl,并将信息转化为二进制数;或当信息隐藏用于软件保护时,将软件的保护信息,例如:包含软件版权信息、软件密钥、开发者信息的明文信息M2,使用流密码RC4加密为密文信息C2,并将信息转化为二进制数;转化完成后,将得出的二进制数,例如:11010100,并
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1