CN103577747A - 移动设备隐私保护装置及方法 - Google Patents

移动设备隐私保护装置及方法 Download PDF

Info

Publication number
CN103577747A
CN103577747A CN201310484613.2A CN201310484613A CN103577747A CN 103577747 A CN103577747 A CN 103577747A CN 201310484613 A CN201310484613 A CN 201310484613A CN 103577747 A CN103577747 A CN 103577747A
Authority
CN
China
Prior art keywords
application
file
installation kit
privacy
described application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310484613.2A
Other languages
English (en)
Inventor
刘亚奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201310484613.2A priority Critical patent/CN103577747A/zh
Publication of CN103577747A publication Critical patent/CN103577747A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种移动设备隐私保护装置,包括:搜索模块,其适于搜索移动设备中的应用及其使用的隐私权限;逻辑更改模块,其适于将所述应用的所述隐私权限的逻辑修改为预设逻辑;控制模块,其适于在所述应用的所述隐私权限被用户触发时,根据所述预设逻辑来控制所述应用的执行。本发明还公开了一种移动设备隐私保护方法。利用本发明的装置和方法,可以解决Android系统过于开放而带来的安全问题,在不用ROOT权限的情况下实现对用户隐私权限的更好控制。

Description

移动设备隐私保护装置及方法
技术领域
本发明涉及移动通信技术领域,特别地涉及一种移动设备隐私保护装置和方法。
背景技术
随着手机安卓Android系统使用用户的增加,Android系统的隐私安全问题受到了广泛的关注,Android系统强调开放自主,该开放性实质上是一把双刃剑,在带给用户更多自由空间的同时并没有对用户数据进行严格保护,例如,任何第三方应用都可以方便地访问到通讯录,短信等隐私数据。
经过对当前比较热门的数百款Android系统的手机软件进行监测,监测结果表明58%以上都存在着隐私信息泄密的问题,大部分是把信息送回到了软件开发商、广告商,还有一部分是送到不知名的第三方网站。可见,由于Android系统下的隐私信息保护问题没有得到很好的解决,这将给用户造成更多的风险及危害,严重的情况下可能会成为不法分子的偷窥工具。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的移动设备隐私保护装置和方法。
依据本发明的一个方面,提供了一种移动设备隐私保护装置,包括:搜索模块,其适于搜索移动设备中的应用及其使用的隐私权限;逻辑更改模块,其适于将所述应用的所述隐私权限的逻辑修改为预设逻辑;控制模块,其适于在所述应用的所述隐私权限被用户触发时,根据所述预设逻辑来控制所述应用的执行。
进一步地,所述逻辑更改模块还可以包括:查找模块,其适于查找所述应用的当前安装包文件在移动设备中所在的目录;修改模块,其适于修改所述应用的当前安装包文件中的对于相关隐私权限操作的接口,设置对所述应用的所述隐私权限的触发后的操作,生成新的安装包文件;以及替换模块,其适于用所述新的安装包文件替换所述应用的当前安装包文件。
其中,所述修改模块对所述应用的所述隐私权限设置的控制方式包括:允许和拒绝执行所述应用的某项隐私权限的操作、和/或提醒是否执行所述应用的某项隐私权限的操作。
更进一步地,所述装置还可以包括:提示模块,其适于提示用户是否安装新的安装包文件;当接收到同意安装新的安装包文件时,所述替换模块用所述新的安装包文件替换所述应用的当前安装包文件。
更进一步地,所述修改模块还包括:解压缩单元,其适于解压缩所述应用的当前安装包文件以获取其中包含的该应用的所有源代码编译生成的二进制源代码文件;反编译单元,其适于对所述二进制源代码文件进行反编译以生成包含多个程序源文件的反编译后的源代码目录;修改单元,其适于扫描反编译后的源代码目录中的所有程序源文件,确定隐私权限使用时调用的系统标准接口API,将该系统标准接口API修改为用户自定义的对应的接口,所述用户自定义包括用户对所述应用的所述隐私权限设置的控制方式;编译单元,其适于将包含所述修改的系统标准接口API的所有程序源文件放入反编译后的源代码目录内,以及对修改过的反编译后的源代码目录进行编译以生成新的二进制源代码文件;以及压缩单元,其适于用新的二进制源代码文件替换所述解压缩的安装包文件中的以前的二进制源代码文件,并将包含新的二进制源代码文件的解压缩的所述应用的安装包文件压缩成新的安装包文件。
进一步地,所述装置还可以包括:监听模块,其适于监听移动设备中所述应用的所述隐私权限被用户触发的隐私操作。其中,所述控制模块在所述监听模块监听到所述应用被用户触发时,从所述监听模块接收到所述应用发出的所述隐私操作是否允许的请求,并根据该请求从所述逻辑更改模块获得所述隐私权限的预设逻辑,所述监听模块将所述预设逻辑返回给所述应用。
依据本发明的另一个方面,提供一种移动设备隐私保护方法,包括:搜索移动设备中的应用及其使用的隐私权限;将所述应用的所述隐私权限的逻辑修改为预设逻辑;在所述应用的所述隐私权限被用户触发时,根据所述预设逻辑来控制所述应用的执行。
进一步地,将所述应用的所述隐私权限的逻辑修改为预设逻辑的步骤还可以包括:查找所述应用的当前安装包文件在移动设备中所在的目录;修改所述应用的当前安装包文件中的对于相关隐私权限操作的接口,并设置对所述应用的所述隐私权限的触发以后的操作,以生成新的安装包文件;用所述新的安装包文件替换所述应用的当前安装包文件。
更进一步地,所述对所述应用的所述隐私权限的控制方式包括:允许和拒绝执行所述应用的某项隐私权限的操作、和/或提醒是否执行所述应用的某项隐私权限的操作。
更进一步地,在用所述新的安装包文件替换所述应用的当前安装包文件的步骤之前还可以包括:提示用户是否安装新的安装包文件;其中,当接收到同意安装新的安装包文件时,执行用所述新的安装包文件替换所述应用的当前安装包文件的步骤。
更进一步地,所述方法中,所述修改所述应用的当前安装包文件中的隐私权限的应用程序接口、并设置对所述应用的所述隐私权限的控制方式、以生成新的安装包文件的步骤还可以包括:解压缩所述应用的当前安装包文件以获取其中包含的该应用的所有源代码编译生成的二进制源代码文件;对所述二进制源代码文件进行反编译以得到包含多个程序源文件的反编译后的源代码目录;扫描反编译后的源代码目录中的所有程序源文件,确定隐私权限使用时调用的系统标准接口API,将该系统标准接口API修改为用户自定义的对应的接口,所述用户自定义包括用户对所述应用的所述隐私权限设置的控制方式;将包含所述修改的系统标准接口API的所有程序源文件放入反编译后的源代码目录内;反编译后的源代码目录转换成新的二进制源代码文件;用新的二进制源代码文件替换安装包文件中的以前的二进制源代码文件,将包含新的二进制源代码文件的解压缩的所述应用的安装包文件压缩成新的安装包文件。
进一步地,在所述应用的所述隐私权限被用户触发时根据所述预设逻辑来控制所述应用的执行的步骤之前还可以包括:监听移动设备中所述应用的所述隐私权限被用户触发的隐私操作;所述在所述应用的所述隐私权限被用户触发时根据对所述应用的所述隐私权限的逻辑的修改来控制所述应用的执行的步骤进一步包括:接收到所述应用发出的所述隐私操作是否允许的请求;根据该请求调取所述隐私权限的预设逻辑;将所述预设逻辑返回给应用。
利用本发明的移动设备隐私保护装置和方法,能够解决Android系统过于开放而带来的安全问题,在不用ROOT权限的情况下可以实现对用户隐私权限的更好控制。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的附图标记表示相同的部件。在附图中:
图1示出了根据本发明的一种实施方式的移动设备隐私保护装置的结构框图;
图2示出了本发明的一种实施方式的用户界面示意图;
图3示出了根据本发明的一种实施方式的移动设备隐私保护方法流程图;
图4示出了本发明的方法中将应用的隐私权限的逻辑修改为预设逻辑的一种具体实现方法的流程图;
图5示出了本发明的方法中修改应用的当前安装包文件中的隐私权限的应用程序接口的一种具体实现方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了更好地对本发明的实施例进行说明,首先对以下概念做如下说明:
1、ROOT
ROOT指的是获取安卓所在的linux系统的根权限(最高权限),有了根权限,你才能对linux做出任何修改。
2、Android权限(Permission)
Android把各种对象(包括各类数据,通讯录,短信,联系人,通话记录,打电话,传感器等)的访问权限进行了细分,分出来100多条,每条权限形如“android.permission.*”。应用程序在运行前要向系统声明它将要有可能用到的权限,如果不声明,将会拒绝应用程序对于该权限的许可。
例如,一个第三方的短信应用,为了实现发短信的功能,便需要向系统声明它要用“android.permission.SEND_SMS”这一权限。
3、AndroidManifest.xml
Android应用都是以.apk扩展名结尾的文件,实际上是zip的文件。它里面包含一个叫做AndroidManifest.xml的文件,该文件描述了这个应用的概要信息,其中声明了所有该应用即将有可能要访问的权限列表。
图1示出了根据本发明的一种实施方式的移动设备隐私保护装置的结构框图。本发明所涉及的移动设备使用的是Android系统,可以安装有各种适于Android系统的应用。如图1所示,本发明的移动设备隐私保护装置100装置包括:搜索模块110,逻辑更改模块120和控制模块130。
其中,搜索模块110适于搜索移动设备中的应用及其使用的隐私权限。通常,用户会在自己的移动设备中安装自己喜欢或者需要的多个应用,但是这些应用会涉及到用户的哪些权限,哪些权限涉及到用户的隐私,用户在安装时并不一定知晓。而且有些应用的权限种类是隐藏的。通过搜索模块110对移动设备中使用的应用及其涉及的隐私权限进行搜索,可以将移动设备中使用的应用及其涉及的隐私权限以列表的形式显示在用户界面UI上。如图2所示,其示出了一个包含移动设备所使用的所有应用的条目以及每个应用可能用到的一个或多个隐私权限的列表的例子,其显示出了移动设备使用的应用包括:NFC服务、图库、时钟、和地图等,另外,在每一应用的条目下都显示出了其所涉及到的隐私权限数目,例如,NFC服务这一应用涉及3项隐私权限,图库这一应用涉及3项隐私权限,时钟这一应用涉及1项隐私权限,等等。当用户点击进入所述列表中一个应用的条目时,会相应地显示该应用会用到的所有的具体隐私权限。例如当用户点击图2中所示的NFC服务这一应用的条目时,在右侧会相应地弹出一个窗口,显示出其具体涉及的3项隐私权限,分别为:读取短信记录(允许获取短信内容及号码)、读取位置信息(允许定位地理信息)、以及使用话筒录音(允许使用话筒录音)。
逻辑更改模块120适于将应用的隐私权限的逻辑修改为预设逻辑。对于一个应用,在由上述搜索模块110搜索到其涉及到用户的几种具体的隐私权限后,为了控制该应用的隐私权限,通常需要将该应用的被调用的接口(例如系统标准接口API)修改为自己定义的一套对应的接口,这样,可以使得该应用被启动时提醒用户是否启用其涉及的某种隐私权限、或者直接设定在该应用被启动时允许或拒绝启用其涉及的某种隐私权限,从而可以达到用户能够控制该应用的隐私权限的目的。
例如,在移动设备的安卓Android系统中,应用的系统标准接口API通常包含于应用的安装包文件即apk文件中,apk文件是AndroidPackage的缩写,即Android安装包,他实际上是zip格式,但后缀名被修改为apk,手机中的每一个应用都对应一个apk文件存在于手机文件系统中。因此要修改应用的系统标准接口API,需要找到该应用的apk文件。为此,逻辑更改模块120可以进一步地包括查找模块121、修改模块122、以及替换模块124。
查找模块121查找该应用的当前安装包文件在移动设备中所在的目录。具体地,对于安卓Android系统,可以根据android.content.pm.ApplicationInfo类中封装的sourcedir属性进行查找,在查找到该应用的当前安装包文件所在的目录后,就可以查找到该应用的当前安装包文件,即apk文件。
修改模块122修改应用的当前安装包文件中的对于相关隐私权限的操作的接口,在所述接口中设置对该应用的隐私权限的触发后的操作,所述该应用的隐私权限的触发后的操作例如可以包括:允许和拒绝执行所述应用的某项隐私权限的操作、和/或提醒是否执行所述应用的某项隐私权限的操作,然后生成新的安装包文件。对于安卓Android系统,应用的当前安装包文件中的对于相关隐私权限的操作的接口为应用程序接口API。由于每个应用的隐私权限的使用主要体现在该应用的应用程序接口API中,如果修改了该应用的应用程序接口API,则修改了该应用的调用逻辑,从而可以达到控制该应用所涉及的隐私权限的作用。
替换模块123用修改模块122生成的所述新的安装包文件替换所述应用的当前安装包文件并安装。由于新的安装包文件中设置了对该应用的隐私权限的触发后的操作,在用新的安装包文件替换所述应用的当前安装包文件并安装之后,用户便能根据自己的意愿控制该应用的每项隐私权限了。
可选地,逻辑更改模块120还可以包括提示模块124。提示模块124在替换模块123用所述应用的新的安装包文件替换所述应用的当前安装包文件之前,提示用户是否安装新的安装包文件,当替换模块123接收到同意安装新的安装包文件时,用所述新的安装包文件替换所述应用的当前安装包文件并安装。例如,在修改模块122生成新的安装包文件后,在移动设备的用户界面上弹出一个窗口,询问用户是否安装新的安装包文件,如果用户点击用户界面上的“是”,则替换模块123替换并安装新的安装包文件。
另外,逻辑更改模块120还可以包括一个撤销模块,该撤销模块可以提供撤销保护功能,即,可以将以前旧的apk文件重新安装,从而还原用户的移动设备的操作系统(例如安卓Android)的以前的状态。
控制模块130在所述应用的所述隐私权限被用户触发时,根据所述预设逻辑来控制所述应用的执行。当搜索模块120搜索到所述应用涉及有隐私权限时,每当所述应用被启动,其所涉及的隐私权限就被用户触发。当逻辑更改模块120将所述应用的隐私权限的逻辑修改为预设逻辑并用所述应用的新的安装包文件覆盖所述应用的当前安装包文件之后,用户就可以对所述应用的隐私权限按照预设逻辑进行控制。例如,当在预设逻辑中设置允许该隐私权限时,则在用户启动该应用时,自动对本次触发的该应用的该隐私权限的操作放行;当在预设逻辑中拒绝该隐私权限时,则在用户启动该应用时,自动对本次触发的该应用的该隐私权限的操作拒绝;而当在预设逻辑中设置提醒是否允许该隐私权限时,则在用户启动该应用时,弹出一个窗口询问用户是否放行此隐私权限,由用户根据自己的情况选择允许或拒绝。
另外,如图1所示,修改模块122还可以进一步包括解压缩单元1221、反编译单元1222、修改单元1223、编译单元1224、以及压缩单元1225。
解压缩单元1221解压缩所述应用的当前安装包文件,以获取安装包文件中包含的该应用的所有源代码编译生成的二进制源代码文件。具体地,对于安卓系统,每个应用的apk文件实际上就是一个压缩包,在apk文件内部包含一个classes.dex文件,该classes.dex文件是由应用的源代码编译而生成的,所有程序逻辑都记载在这里。解压缩单元1221解压缩应用的apk文件,是为了获得这个二进制源代码文件classes.dex。
反编译单元1222对所述二进制源代码文件进行反编译以生成包含多个程序源文件的反编译后的源代码目录。具体地,对于安卓系统,用反编译工具baksmali把二进制源代码文件classes.dex转换生成一个classout文件夹,classout文件夹即为反编译后的源代码目录,其中包含很多程序源文件,即smali文件,可以把这些文件理解为源码,从中可以找到代码调用关系和方法实现等。
修改单元1223扫描反编译后的源代码目录中的所有程序源文件,确定隐私权限使用时调用的系统标准接口API(Application Programming Interface,应用程序编程接口),将该系统标准接口API修改为用户自定义的对应的接口。这里,所述用户自定义的对应的接口包括用户对所述应用的所述隐私权限设置的控制方式。具体地,对于安卓系统,修改单元1223扫描classout文件夹中的所有smali文件,寻找哪里有调用该隐私权限的系统标准接口API的行为,将该系统标准接口API修改为用户自定义的对应的接口,由于用户自定义的接口中包含了用户对应用的隐私权限设置的控制方式,由此达到控制该应用对其所涉及的隐私权限的使用。
例如,当用户通过移动设备上的网络视图(WebView)访问网络的接口时,先寻找到WebView访问网络的API接口为:
invoke-virtual{vθ,v1},Landroid/webkit/webView;→
loadUrl(Ljava/lang/String;)V
基于该API接口的上述设置,当用户通过WebView访问网络时,会触发WebView的loadUrl方法。
如果将WebView访问网络的上述API接口修改为用户自定义的如下的一套对应的API接口:
invoke-static{v0,v1},La/b/c;→
webviewloadurl(Ljava/lang/String;)V
基于上述修改后的API接口的设置,当用户通过WebView访问网络时,则会触发a.b.c的webview_loadurl方法。
利用上述类似的方式可以将所有敏感隐私权限接口修改为用户自定义的对应的API接口。
编译单元1224将包含所述修改的系统标准接口API的所有程序源文件放入反编译后的源代码目录内,以及对修改过的反编译后的源代码目录进行编译以生成新的二进制源代码文件。具体地,对安卓系统,编译单元1224将修改单元1223修改后的用户自定义的对应的API接口以smali的格式放入classout文件夹中。并用smali工具将修改后的classout文件夹还原成classes.dex文件。
压缩单元1225用新的二进制源代码文件替换所述解压缩的安装包文件中的以前的二进制源代码文件,并将包含新的二进制源代码文件的解压缩的所述应用的安装包文件压缩成新的安装包文件。具体地,对于安卓系统,压缩单元1225用新的classes.dex文件替换所述解压缩的apk文件中的以前的classes.dex文件,并将包含新的classes.dex文件的解压缩的所述应用的apk文件压缩成新的apk文件。
在上面所述中,如果修改单元1223按照规则正确修改了baksmali工具生成的源代码,然后编译单元1224再用smali工具将其还原成新的classes.dex,再由压缩单元1225将新的classes.dex替换进apk文件里原有的classes.dex文件,这相当于修改了原来应用的逻辑。
替换模块123用压缩单元1225压缩得到的新的apk文件替换所述应用的当前apk文件并安装,从而可以使得所述应用按照修改的逻辑被启动和运行。
在上面所述的修改模块122的具体描述中,主要以采用smali的反编译技术为例进行描述的,实际上也可以采用一些其它算法来实现修改模块122的功能。
此外,所述移动设备隐私保护装置还可以包括监听模块140。监听模块140例如可以由socket server(套接字服务器)来实现,随时监听移动设备中修改过的应用的被用户触发的隐私操作。
例如,在前面所述的例子中,在WebView访问网络的API接口修改之后,当用户通过移动设备上的应用WebView访问网络时,原本触发WebView的loadUrl方法会变更为触发a.b.c的webview_loadurl方法,webview_loadurl的实现会由例如socket server通过socket通讯告诉服务器,该应用正在访问网络,请求是否继续访问还是阻止访问。控制模块130从所述监听模块140接收到这个请求,根据该请求从所述逻辑更改模块120获得隐私权限的预设逻辑,由于逻辑更改模块120已经将该隐私权限的接口修改成用户自定义的对应的接口,即用户已经指定对该隐私权限的控制方式,允许或拒绝该隐私权限的触发,或者设置成该隐私权限被触发时提醒用户选择。根据用户指定的控制方式,通过socket server将所述隐私权限的预设逻辑返回所述应用。所述应用在收到该返回的预设逻辑后根据其做出相应的处理,如果预设逻辑为允许访问网络,则所述应用会调用标准的API的WebView的loadUrl方法,如果禁止访问网络,则所述应用不做任何事。这样,用户便可以控制应用的隐私权限的使用了。
图3示出了根据本发明的一种实施方式的移动设备隐私保护方法的流程图。所述移动设备安装的是Android系统,可以安装各种Android系统的应用。利用本发明的移动设备隐私保护方法,可以控制各应用的隐私权限,具体地,在步骤S310,搜索移动设备中的应用及其使用的隐私权限。通常,用户会在自己的移动设备中安装自己喜欢或者需要的多个应用,但是这些应用会涉及到用户的哪些权限,哪些权限涉及到用户的隐私,用户在安装时并不一定知晓。而且有些应用的权限种类是隐藏的。通过执行步骤S310,可以将移动设备中使用的应用及其涉及的隐私权限以列表的形式显示在用户界面UI上。如图2所示,其示出了一个包含移动设备所使用的所有应用的条目以及每个应用可能用到的一个或多个隐私权限的列表的例子。
接下来,在步骤S320中,将所述应用的所述隐私权限的逻辑修改为预设逻辑。对于一个应用,在搜索到其涉及到用户的几种具体的隐私权限后,为了控制该应用的隐私权限,需要将该应用的被调用的接口(例如系统标准接口API)修改为自己定义的一套对应的接口,这样,可以使得该应用被启动时提醒用户是否启用其涉及的某种隐私权限、或者直接设定在该应用被启动时允许或拒绝启用其涉及的某种隐私权限,从而可以达到用户能够控制该应用的隐私权限的目的。
在移动设备的安卓Android系统中,应用的系统标准接口API通常包含于应用的安装包文件即apk文件中,因此要修改应用的系统标准接口API,需要找到该应用的apk文件。
图4示出了本发明的方法中步骤S320的一种具体实现方法的流程图。如图4所示,步骤S320可以通过如下步骤来具体实现:
首先,在步骤S321,查找所述应用的当前安装包文件在移动设备中所在的目录。具体地,对于安卓Android系统,可以根据android.content.pm.ApplicationInfo类中封装的sourceDir属性进行查找,在查找到该应用的当前安装包文件所在的目录后,就可以查找到该应用的当前安装包文件,即apk文件。
接下来,在步骤S322,修改所述应用的当前安装包文件中的对于相关隐私权限操作的接口,并设置对所述应用的所述隐私权限触发后的操作,以生成新的安装包文件;所述对所述应用的所述隐私权限触发以后的操作例如可以包括:允许和拒绝执行所述应用的相关隐私权限的操作、和/或提醒是否执行所述应用的相关隐私权限的操作,然后生成新的安装包文件。由于每个应用的隐私权限的使用主要体现在该应用的应用程序接口API中,如果修改了该应用的应用程序接口API,则修改了该应用的调用逻辑,从而可以达到控制该应用所涉及的隐私权限的作用。
接下来,在步骤S323中,用在步骤S322中生成的新的安装包文件替换所述应用的当前安装包文件并安装。由于新的安装包文件中设置了对该应用的隐私权限触发后的操作,在用新的安装包文件替换所述应用的当前安装包文件并安装之后,用户便能根据自己的意愿控制该应用的某项隐私权限了。
可选地,在所述步骤S323之前,还可以包括步骤S324,即,提示用户是否安装新的安装包文件。当接收到同意安装新的安装包文件时,则执行步骤S323,用所述新的安装包文件替换所述应用的当前安装包文件并安装。例如,在步骤S322中生成新的安装包文件后,在移动设备的用户界面弹出一个窗口,询问用户是否安装新的安装包文件,如果用户点击用户界面上的“是”,则安装新的装包文件。
另外,本发明的移动设备隐私保护方法还可以包括如下步骤:撤销步骤S323中新的安装包文件,即,可以将以前旧的apk文件重新安装,从而还原用户的移动设备的操作系统(例如安卓Android系统)的以前的状态。
进一步地,图5示出了本发明的移动设备隐私保护方法中步骤S322的一种具体实现方法的流程图。如图5所示,上述步骤S322具体地可以通过如下步骤来实现:
首先,在步骤S3221,解压缩所述应用的当前安装包文件以获取其中包含的该应用的所有源代码编译生成的二进制源代码文件。具体地,对于安卓系统,每个应用的apk文件实际上就是一个压缩包,在apk文件内部包含一个classes.dex文件,该classes.dex文件是由应用的源代码编译而生成的,所有程序逻辑都记载在这里。解压缩单元1221解压缩应用的apk文件,是为了获得这个二进制源代码文件classes.dex。
接下来,在步骤S3222,对所述二进制源代码文件进行反编译以得到包含多个程序源文件的反编译后的源代码目录。具体地,对于安卓系统,用反编译工具baksmali把二进制源代码文件classes.dex转换生成一个classout文件夹,classout文件夹即为反编译后的源代码目录,其中包含很多程序源文件,即smali文件,可以把这些文件理解为源码,从中可以找到代码调用关系和方法实现等。
接下来,在步骤S3223,扫描反编译后的源代码目录中的所有程序源文件,确定隐私权限使用时调用的接口,将该接口修改为用户自定义的对应的接口。这里,所述用户自定义包括用户对所述应用的所述隐私权限设置的操作。具体地,对于安卓系统,扫描classout文件夹中的所有smali文件,寻找哪里有调用该隐私权限的系统标准接口API的行为,将该系统标准接口API修改为用户自定义的对应的接口,由于用户自定义的接口中包含了用户设置的对应用的隐私权限触发后的操作,由此达到控制该应用对其所涉及的隐私权限的使用。
例如,当用户通过移动设备上的网络视图(WebView)访问网络的接口时,先寻找到WebView访问网络的API接口为:
invoke-virtual{vθ,v1},Landroid/webkit/webView;→
loadUrl(Ljava/lang/String;)V
基于该API接口的上述设置,当用户通过WebView访问网络时,会触发WebView的loadUrl方法。
如果将WebView访问网络的上述API接口修改为用户自定义的如下的一套对应的API接口:
invoke-static{v0,v1},a/b/c;→
webviewloadurl(Ljava/lang/String;)V
基于上述修改后的API接口的设置,当用户通过WebView访问网络时,则会触发a.b.c的webview_1oadurl方法。
利用上述类似的方式可以将所有敏感隐私权限接口修改为用户自定义的对应的API接口。
接下来,在步骤S3224,将包含所述修改的接口的所有程序源文件放入反编译后的源代码目录内,以及对修改后的反编译后的源代码目录转换成新的二进制源代码文件。具体地,对安卓系统,将修改单元1223修改后的用户自定义的对应的API接口以smali的格式放入classout文件夹中。并用smali工具将修改后的classout文件夹还原成classes.dex文件。
接下来,在步骤S3225,用新的二进制源代码文件替换安装包文件中的以前的二进制源代码文件,将包含新的二进制源代码文件的解压缩的所述应用的安装包文件压缩成新的安装包文件。具体地,对于安卓系统,用新的classes.dex文件替换所述解压缩的apk文件中的以前的classes.dex文件,并将包含新的classes.dex文件的解压缩的所述应用的apk文件压缩成新的apk文件。
在上面所述中,如果在步骤S3223按照规则正确修改了baksmali工具生成的源代码,然后在步骤S3224中用smali工具将所述源代码还原成新的classes.dex,再在步骤S3225中用新的classes.dex替换apk文件中原有的classes.dex文件,这相当于修改了原来应用的逻辑。
在上述步骤S323中,用步骤S3225中压缩得到的新的apk文件替换所述应用的当前apk文件并安装,从而可以使得所述应用按照修改的逻辑被启动和运行。
在上面关于所述步骤S322的具体描述中,主要以采用smali的反编译技术为例进行描述的,实际上也可以采用一些其它算法来实现修改模块122的功能。
在执行上述步骤S320之后,执行步骤S330,即,在所述应用的所述隐私权限被用户触发时,根据所述预设逻辑来控制所述应用的执行。当步骤S310搜索到所述应用涉及有隐私权限时,每当所述应用被启动,其所涉及的隐私权限就被用户触发。然而,在步骤S320中将所述应用的隐私权限的逻辑修改为预设逻辑并用所述应用的新的安装包文件覆盖所述应用的当前安装包文件之后,用户就可以对所述应用的隐私权限按照预设逻辑进行控制。例如,当在预设逻辑中设置允许该隐私权限时,则在用户启动该应用时,自动对本次触发的该应用的该隐私权限的操作放行;当在预设逻辑中拒绝该隐私权限时,则在用户启动该应用时,自动对本次触发的该应用的该隐私权限的操作拒绝;而当在预设逻辑中设置提醒是否允许该隐私权限时,则在用户启动该应用时,弹出一个窗口询问用户是否放行此隐私权限,由用户根据自己的情况选择允许或拒绝。
另外,在执行步骤S330之前还可以执行步骤S340的监听操作,在步骤S340,监听移动设备中所述应用的所述隐私权限被用户触发的隐私操作,这可以通过例如socket server(套接字服务器)来实现。
例如,在前面所述的例子中,在WebView访问网络的API接口修改之后,当用户通过移动设备访问网络时,原本触发WebView的loadUrl方法会变更为触发a.b.c的webview_loadurl方法,webview_loadurl的实现会由例如socketserver通过socket通讯告诉服务器,该应用正在访问网络,请求是否允许该应用继续访问网络还是阻止该应用访问网络。相应地,在步骤S330中,接收这个请求,并根据该请求获得在步骤S320中设定的隐私权限的预设逻辑,由于在步骤S320中已经将该隐私权限的接口修改成用户自定义的对应的接口,即用户已经设置对该隐私权限触发后的操作,允许或拒绝该隐私权限的触发,或者设置成该隐私权限被触发时提醒用户选择。根据用户设置的对该隐私权限触发后的操作,通过socket server将所述隐私权限的预设逻辑返回所述应用。所述应用在收到该返回的预设逻辑后根据其做出相应的处理,如果预设逻辑为允许访问网络,则所述应用会调用标准的API的WebVi ew的loadUrl方法,如果禁止访问网络,则所述应用不做任何事。这样,用户便可以控制应用的隐私权限的使用了。
本发明的移动设备隐私保护装置及方法,利用包装系统应用接口API和修改apk文件的方式解决了Android系统过于开放带来的安全问题,能够在不用ROOT权限的情况下实现对用户隐私权限的更好控制。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器客户端中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种移动设备隐私保护装置,包括:
搜索模块,其适于搜索移动设备中的应用及其使用的隐私权限;
逻辑更改模块,其适于将所述应用的所述隐私权限的逻辑修改为预设逻辑;以及
控制模块,其适于在所述应用的所述隐私权限被用户触发时,根据所述预设逻辑来控制所述应用的执行。
2.根据权利要求1所述的装置,其中,所述逻辑更改模块进一步包括:
查找模块,其适于查找所述应用的当前安装包文件在移动设备中所在的目录;
修改模块,其适于修改所述应用的当前安装包文件中的对于相关隐私权限操作的接口,设置对所述应用的所述隐私权限的触发后的操作,生成新的安装包文件;以及
替换模块,其适于用所述新的安装包文件替换所述应用的当前安装包文件并安装。
3.根据权利要求2所述的装置,其中,所述修改模块设置的对所述应用的所述隐私权限的触发后的操作包括:
允许和拒绝执行所述应用的某项隐私权限的操作、和/或提醒是否执行所述应用的某项隐私权限的操作。
4.根据权利要求2或3所述的装置,所述逻辑更改模块还包括:
提示模块,其适于提示用户是否安装新的安装包文件;
当所述替换模块接收到同意安装新的安装包文件时,用所述新的安装包文件替换所述应用的当前安装包文件并安装。
5.根据权利要求2-4中任何一项所述的装置,其中,所述修改模块还包括:
解压缩单元,其适于解压缩所述应用的当前安装包文件以获取其中包含的该应用的所有源代码编译生成的二进制源代码文件;
反编译单元,其适于对所述二进制源代码文件进行反编译以生成包含多个程序源文件的反编译后的源代码目录;
修改单元,其适于扫描反编译后的源代码目录中的所有程序源文件,确定隐私权限使用时调用的接口,将该接口修改为用户自定义的对应的接口,所述用户自定义包括用户对所述应用的所述隐私权限设置的控制方式;
编译单元,其适于将包含所述修改的接口的所有程序源文件放入反编译后的源代码目录内,以及对修改过的反编译后的源代码目录进行编译以生成新的二进制源代码文件,以及
压缩单元,其适于用新的二进制源代码文件替换所述解压缩的安装包文件中的以前的二进制源代码文件,并将包含新的二进制源代码文件的解压缩的所述应用的安装包文件压缩成新的安装包文件。
6.根据权利要求1-5中任何一项所述的装置,还包括:
监听模块,其适于监听移动设备中所述应用的所述隐私权限被用户触发的隐私操作,
其中,所述控制模块在所述监听模块监听到所述应用被用户触发时,从所述监听模块接收到所述应用发出的所述隐私操作是否允许的请求,并根据该请求从所述逻辑更改模块获得所述隐私权限的预设逻辑,所述监听模块将所述预设逻辑返回给所述应用。
7.一种移动设备隐私保护方法,包括:
搜索移动设备中的应用及其使用的隐私权限;
将所述应用的所述隐私权限的逻辑修改为预设逻辑;以及
在所述应用的所述隐私权限被用户触发时,根据所述预设逻辑来控制所述应用的执行。
8.根据权利要求7所述的方法,其中,将所述应用的所述隐私权限的逻辑修改为预设逻辑的步骤包括:
查找所述应用的当前安装包文件在移动设备中所在的目录;
修改所述应用的当前安装包文件中的对于相关隐私权限操作的接口,并设置对所述应用的所述隐私权限触发后的操作,以生成新的安装包文件;以及
用所述新的安装包文件替换所述应用的当前安装包文件并安装。
9.根据权利要求8所述的方法,其中,所述对所述应用的所述隐私权限触发后的操作包括:
允许和拒绝执行所述应用的某项隐私权限的操作、和/或提醒是否执行所述应用的某项隐私权限的操作。
10.根据权利要求8或9所述的方法,在用所述新的安装包文件替换所述应用的当前安装包文件的步骤之前还包括:
提示用户是否安装新的安装包文件;
其中,当接收到同意安装新的安装包文件时,执行用所述新的安装包文件替换所述应用的当前安装包文件并安装的步骤。
CN201310484613.2A 2013-10-16 2013-10-16 移动设备隐私保护装置及方法 Pending CN103577747A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310484613.2A CN103577747A (zh) 2013-10-16 2013-10-16 移动设备隐私保护装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310484613.2A CN103577747A (zh) 2013-10-16 2013-10-16 移动设备隐私保护装置及方法

Publications (1)

Publication Number Publication Date
CN103577747A true CN103577747A (zh) 2014-02-12

Family

ID=50049510

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310484613.2A Pending CN103577747A (zh) 2013-10-16 2013-10-16 移动设备隐私保护装置及方法

Country Status (1)

Country Link
CN (1) CN103577747A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104079584A (zh) * 2014-05-12 2014-10-01 芮琨 一种安卓平台应用权限云端过滤方法
CN104318171A (zh) * 2014-10-09 2015-01-28 中国科学院信息工程研究所 基于权限标签的Android隐私数据保护方法及系统
CN104408366A (zh) * 2014-11-26 2015-03-11 清华大学 基于插装技术的安卓应用程序权限使用行为跟踪方法
CN104484597A (zh) * 2014-12-22 2015-04-01 联想(北京)有限公司 一种信息处理方法和电子设备
CN105094819A (zh) * 2015-07-15 2015-11-25 成都中科创达软件有限公司 一种本地、远程设备控制方法及装置
CN107066878A (zh) * 2017-01-19 2017-08-18 国网江苏省电力公司电力科学研究院 一种面向安卓平台的移动应用安全防护方法
CN107124400A (zh) * 2017-04-01 2017-09-01 中国科学院信息工程研究所 基于安全策略的入侵防御装置及方法
CN107463420A (zh) * 2016-06-02 2017-12-12 深圳市慧动创想科技有限公司 一种在Android APK中植入代码的便捷方法
CN109711154A (zh) * 2018-12-29 2019-05-03 上海上讯信息技术股份有限公司 一种基于Android应用apk文件的钩子框架技术
CN110769008A (zh) * 2019-11-05 2020-02-07 长沙豆芽文化科技有限公司 一种数据安全防护方法、装置及服务设备
CN112016057A (zh) * 2020-08-13 2020-12-01 支付宝(杭州)信息技术有限公司 代码文件的隐私保护方法、评估方法及装置及电子设备
CN112379890A (zh) * 2020-12-04 2021-02-19 深圳麦风科技有限公司 Whatsapp的数据拷贝方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102917346A (zh) * 2012-10-17 2013-02-06 浙江大学城市学院 一种基于Android的应用程序运行时安全策略管理系统及方法
CN103139391A (zh) * 2013-02-27 2013-06-05 广东欧珀移动通信有限公司 对手机安装或卸载应用程序进行权限验证的方法及装置
US20130174047A1 (en) * 2011-10-14 2013-07-04 StarMobile, Inc. View virtualization and transformations for mobile applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130174047A1 (en) * 2011-10-14 2013-07-04 StarMobile, Inc. View virtualization and transformations for mobile applications
CN102917346A (zh) * 2012-10-17 2013-02-06 浙江大学城市学院 一种基于Android的应用程序运行时安全策略管理系统及方法
CN103139391A (zh) * 2013-02-27 2013-06-05 广东欧珀移动通信有限公司 对手机安装或卸载应用程序进行权限验证的方法及装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104079584A (zh) * 2014-05-12 2014-10-01 芮琨 一种安卓平台应用权限云端过滤方法
CN104318171A (zh) * 2014-10-09 2015-01-28 中国科学院信息工程研究所 基于权限标签的Android隐私数据保护方法及系统
CN104318171B (zh) * 2014-10-09 2017-11-07 中国科学院信息工程研究所 基于权限标签的Android隐私数据保护方法及系统
CN104408366A (zh) * 2014-11-26 2015-03-11 清华大学 基于插装技术的安卓应用程序权限使用行为跟踪方法
CN104484597A (zh) * 2014-12-22 2015-04-01 联想(北京)有限公司 一种信息处理方法和电子设备
CN105094819A (zh) * 2015-07-15 2015-11-25 成都中科创达软件有限公司 一种本地、远程设备控制方法及装置
CN107463420A (zh) * 2016-06-02 2017-12-12 深圳市慧动创想科技有限公司 一种在Android APK中植入代码的便捷方法
CN107066878B (zh) * 2017-01-19 2019-06-11 国网江苏省电力公司电力科学研究院 一种面向安卓平台的移动应用安全防护方法
CN107066878A (zh) * 2017-01-19 2017-08-18 国网江苏省电力公司电力科学研究院 一种面向安卓平台的移动应用安全防护方法
CN107124400A (zh) * 2017-04-01 2017-09-01 中国科学院信息工程研究所 基于安全策略的入侵防御装置及方法
CN109711154A (zh) * 2018-12-29 2019-05-03 上海上讯信息技术股份有限公司 一种基于Android应用apk文件的钩子框架技术
CN110769008A (zh) * 2019-11-05 2020-02-07 长沙豆芽文化科技有限公司 一种数据安全防护方法、装置及服务设备
CN112016057A (zh) * 2020-08-13 2020-12-01 支付宝(杭州)信息技术有限公司 代码文件的隐私保护方法、评估方法及装置及电子设备
CN112379890A (zh) * 2020-12-04 2021-02-19 深圳麦风科技有限公司 Whatsapp的数据拷贝方法

Similar Documents

Publication Publication Date Title
CN103577747A (zh) 移动设备隐私保护装置及方法
US10104123B2 (en) Fetching a policy definition library from a policy server at mobile device runtime of an application package to control access to mobile device resources
CN102200922B (zh) 应用程序安装方法和终端
CN104731625B (zh) 一种加载插件的方法、装置和移动终端
CN104854561A (zh) 用于应用程序管理框架的应用程序封装
CN105683988A (zh) 管理软件补救
CN103761472A (zh) 基于智能终端设备的应用程序访问方法与装置
CN105893839B (zh) 一种安卓应用的广播的代理处理方法和装置
CN104199703A (zh) 静默安装的管理方法及装置
CN104484599A (zh) 一种基于应用程序的行为处理方法和装置
CN103761471A (zh) 基于智能终端设备安装应用程序的方法与装置
CN103677527A (zh) 适于移动终端的悬浮问题交互控件显示方法和装置
CN103839000A (zh) 基于智能终端设备安装应用程序的方法与装置
CN103870306A (zh) 基于智能终端设备安装应用程序的方法与装置
CN104199711A (zh) 建立root权限的方法和装置
CN102981915A (zh) 一种应用程序间通信方法及装置
CN110059456A (zh) 代码保护方法、代码保护装置、存储介质与电子设备
CN106557669A (zh) 一种应用程序安装过程的权限控制方法及装置
CN103713902A (zh) 一种基于Android系统的BOA编译方法和系统
CN106326691B (zh) 加解密功能的实现方法、装置及服务器
CN105765533A (zh) 用于固件虚拟化的方法和装置
CN103034546A (zh) iOS系统中应用程序间通信的方法及装置
CN105094791A (zh) 状态栏通知的存储方法及装置
CN103617055A (zh) 一种在浏览器中启动应用程序的方法、装置和浏览器
CN107895120B (zh) 跨平台应用中数据处理方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20140212

RJ01 Rejection of invention patent application after publication