CN103679029A - 一种修复山寨应用程序的方法及装置 - Google Patents

一种修复山寨应用程序的方法及装置 Download PDF

Info

Publication number
CN103679029A
CN103679029A CN201310674728.8A CN201310674728A CN103679029A CN 103679029 A CN103679029 A CN 103679029A CN 201310674728 A CN201310674728 A CN 201310674728A CN 103679029 A CN103679029 A CN 103679029A
Authority
CN
China
Prior art keywords
application program
installation kit
file
cloud server
list
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
CN201310674728.8A
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 CN201310674728.8A priority Critical patent/CN103679029A/zh
Publication of CN103679029A publication Critical patent/CN103679029A/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种修复山寨应用程序的方法及装置,该方法包括:扫描终端设备上已安装的应用程序,并根据扫描得到的信息生成应用程序列表;判断应用程序列表中的应用程序是否在预设的应用程序白名单中;如果应用程序在预设的应用程序白名单中,判断应用程序的安装包中的至少部分文件是否被篡改;如果应用程序的安装包中的至少部分文件被篡改,则卸载终端设备上的应用程序;从云端服务器中下载应用程序的官方安装包并在终端设备上安装。通过本发明的实施例可以帮助用户将终端设备上的山寨应用程序替换成官方版本的应用程序,有效防止山寨应用程序中的恶意代码给用户带来安全问题,提高了终端设备的操作系统的安全性。

Description

一种修复山寨应用程序的方法及装置
技术领域
本发明属于计算机技术领域,尤其涉及一种修复山寨应用程序的方法及装置。
背景技术
近年来安卓系统因其开放性得到了广泛的应用,适用于安卓系统的应用程序的数量也呈爆炸式增长,但也因安卓系统的开放性导致应用程序易于被篡改或伪造,通常将篡改或伪造已有应用程序而产生的应用程序称为山寨应用程序。基于安全性方面的考虑,山寨应用程序通常包含木马、病毒、广告、泄露隐私等危害用户的恶意代码。
然而,目前还没有一种有效的方式对山寨应用程序进行识别并修复。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的修复山寨应用程序的方法及装置。
依据本发明的一个方面,提供了一种修复山寨应用程序的方法,其包括:
扫描终端设备上已安装的应用程序,并根据扫描得到的信息生成应用程序列表,所述应用程序列表包括应用程序的特征信息;
判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;
如果所述应用程序在所述预设的应用程序白名单中,判断所述应用程序的安装包中的至少部分文件是否被篡改;
如果所述应用程序的安装包中的至少部分文件被篡改,则卸载所述终端设备上的所述应用程序;
从云端服务器中下载所述应用程序的官方安装包并在所述终端设备上安装。
可选地,所述判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中的步骤包括:
在所述终端设备侧判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;或者
在所述终端设备侧将所述应用程序列表发送至云端服务器,并接收由所述云端服务器判断所述应用程序列表中的应用程序是否在预设的应用程序白名单的结果。
可选地,判断所述应用程序的安装包中的至少部分文件是否被篡改的步骤包括:
在所述终端设备侧根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改;或者
在所述终端设备侧将已安装应用程序的特征信息发送至云端服务器,由云端服务器根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改。
可选地,所述应用程序的特征信息至少包括以下中的任意一种:应用程序的安装包的包名、版本号、开发者签名、Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串和安装包目录下各文件的校验值。
可选地,如果所述应用程序不在所述预设的应用程序白名单中,所述方法还包括:
在终端设备侧将应用程序的特征信息发送至云端服务器,由云端服务器根据安全识别库进行识别;所述安全识别库中的特征信息包括以下中的一种或几种组合:各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes.dex文件,扩展名为.jar的文件,以及,Dex格式的文件;其中,所述样本Android安装包包括各种安全级别下的Android安装包;
在所述终端设备接收所述云端服务器发送的卸载建议,所述卸载建议包括:建议卸载、不建议卸载和谨慎卸载。
可选地,从云端服务器中下载所述应用程序的官方安装包并在所述终端设备上安装的步骤包括:
在所述终端设备侧向所述云端服务器发送下载请求,所述下载请求中包括应用程序的安装包的包名和版本号,由所述云端服务器根据所述应用程序的安装包的包名和版本号匹配得到所述应用程序的官方安装包;
在所述终端设备侧从所述云端服务器中下载并安装所述应用程序的官方安装包。
可选地,在所述终端设备侧向所述云端服务器发送下载请求的步骤之前,还包括:
在所述终端设备侧提示用户可以下载所述应用程序的官方安装包;
如果用户选择下载所述应用程序的官方安装包,则执行在所述终端设备侧向所述云端服务器发送下载请求的步骤。
可选地,卸载所述终端设备上的应用程序的步骤包括:
在所述终端设备侧提示用户可以卸载所述应用程序;
在所述终端设备侧接收卸载命令;
在所述终端设备侧根据所述卸载命令卸载所述应用程序。
依据本发明的另一个方面,还提供了一种修复山寨应用程序的装置,其包括:
扫描模块,用于扫描终端设备上已安装的应用程序,并根据扫描得到的信息生成应用程序列表,所述应用程序列表包括应用程序的特征信息;
白名单判断模块,用于判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;
篡改判断模块,用于如果所述应用程序在所述预设的应用程序白名单中,判断所述应用程序的安装包中的至少部分文件是否被篡改;
卸载模块,用于如果所述应用程序的安装包中的至少部分文件被篡改,则卸载所述终端设备上的所述应用程序;
自动安装模块,用于从云端服务器中下载所述应用程序的官方安装包并在所述终端设备上安装。
可选地,所述白名单判断模块进一步用于在所述终端设备侧判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;或者在所述终端设备侧将所述应用程序列表发送至云端服务器,并接收由所述云端服务器判断所述应用程序列表中的应用程序是否在预设的应用程序白名单的结果。
可选地,所述篡改判断模块进一步用于在所述终端设备侧根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改;或者在所述终端设备侧将已安装应用程序的特征信息发送至云端服务器,由云端服务器根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改。
可选地,所述应用程序的特征信息至少包括以下中的任意一种:应用程序的安装包的包名、版本号、开发者签名、Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串和安装包目录下各文件的校验值。
可选地,所述自动安装模块包括:
下载请求发送单元,用于在所述终端设备侧向所述云端服务器发送下载请求,所述下载请求中包括应用程序的描述信息,由所述云端服务器根据所述应用程序的描述信息匹配得到所述应用程序的官方安装包;
下载单元,用于在所述终端设备侧从所述云端服务器中下载所述应用程序的官方安装包;
安装单元,用于在所述终端设备侧安装所述应用程序的官方安装包。
可选地,所述自动安装模块还包括:
下载提示单元,用于在所述终端设备侧提示用户可以下载所述应用程序的官方安装包;如果用户选择下载所述应用程序的官方安装包,则触发所述下载请求发送单元。
可选地,所述卸载模块包括:
卸载提示单元,用于在所述终端设备侧提示用户可以卸载所述应用程序;
卸载命令接收单元,用于在所述终端设备侧接收卸载命令,所述卸载命令包括应用程序的描述信息;
卸载单元,用于在所述终端设备侧根据所述卸载命令卸载所述应用程序。
可选地,所述装置还包括:
识别请求模块,用于在终端设备侧将应用程序的特征信息发送至云端服务器,由云端服务器根据安全识别库进行识别;所述安全识别库中的特征信息包括以下中的一种或几种组合:各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes.dex文件,扩展名为.jar的文件,以及,Dex格式的文件;其中,所述样本Android安装包包括各种安全级别下的Android安装包;
卸载建议接收模块,用于在所述终端设备接收所述云端服务器发送的卸载建议,所述卸载建议包括:建议卸载、不建议卸载和谨慎卸载。
由上述技术方案可知,本发明的实施例具有如下有益效果:通过判断应用程序的安装包中的至少部分文件是否被篡改,来识别终端设备中已安装的应用程序是否为山寨应用程序,如果该应用程序为山寨应用程序,则可以提示用户卸载该应用程序,并引导用户从云端服务器中下载并安装应用程序的官方安装包,从而实现帮助用户将山寨应用程序替换成官方版本的应用程序,有效防止山寨应用程序中的木马、病毒、广告、泄露隐私等危害用户的恶意代码给用户带来安全问题,提高了终端设备的操作系统的安全性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明的一个实施例中修复山寨应用程序的方法的流程图;以及
图2示出了根据本发明的另一个实施例中修复山寨应用程序的装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明的实施例中提供了一种修复山寨应用程序的方法,该方法100包括:
步骤S101、扫描已安装的应用程序,并根据扫描得到的信息生成应用程序列表,应用程序列表包括应用程序的特征信息。
具体地,步骤S101中包括如下两种情形:
在本发明的一个实施例中,终端设备侧可以扫描本地已安装的应用程序,并根据扫描得到的信息生成应用程序列表,该应用程序列表在终端设备侧显示。
在本发明的另一个实施例中,终端设备侧也可以扫描与其建立连接的其他终端设备中已安装的应用程序。例如计算设备与移动设备建立连接,然后计算设备扫描移动设备中已安装的应用程序,并根据扫描得到的信息生成应用程序列表,其中该应用程序列表在计算设备侧显示。
在具体实现中,所述移动设备侧通过无线的方式接入所述计算设备,可以包括如下情况:
1.有无线路由
这种方式是移动设备通过WIFI连到路由,计算设备通过WIFI或网线连到路由,在移动设备上用websharing、虚拟数据线、文件大师等软件开通ftp服务,在计算设备上用浏览器打开ftp后,进行文件传输。
2.没有无线路由,计算设备有无线网卡
2.1无线网卡支持mywifi技术
把计算设备设为wifi热点(xp下手工设置,win7下手工设置或用connectify软件),移动设备通过wifi连到计算设备;在移动设备上用websharing、虚拟数据线、文件大师等软件开通ftp服务,计算设备上用浏览器打开ftp后进行文件传输。
2.2无线网卡不支持mywifi技术
把移动设备的wifi热点打开,计算设备通过wifi连到移动设备,在移动设备上用websharing、虚拟数据线、文件大师等软件开通ftp服务,计算设备上用浏览器打开ftp后进行文件传输。
所述移动设备侧可以通过上述任一种无线连接方式或其他无线连接方式连接至计算设备,本发明实施例对移动设备无线连接计算设备的具体连接方式无需加以限制。
在本发明的实施例中,终端设备可以是计算设备或移动设备,其中,计算设备可以是具有操作系统的智能设备,如台式电脑,笔记本电脑等。计算设备可以有线方式连接网络,也可以无线方式连接网络,所连接的网络可以是因特网,也可以是局域网。可设置为无线热点的网卡具体可以是计算设备内置的无线网卡或者是可设置为无线热点的USB无线网卡。将所述无线网卡设置成为共享所述计算设备所连接的网络的无线热点后,接入该无线热点的手机、PAD等移动设备就可以通过该无线网卡访问该计算设备所连接的网络。
在本发明的实施例中,该应用程序的特征信息至少包括以下中的任意一种:应用程序的安装包的包名、版本号、开发者签名、Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,安装包目录下各文件的MD5值,其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes.dex文件,扩展名为.jar的文件,以及,Dex格式的文件。
1)安装包的包名
Android操作系统通过APK的包名(package name)对各个安装的APK进行管理。“包名”源自于Java的package的概念,按照Java的package的命名风格,例如某个Android安装包的包名是com.qihoo360.mobilesafe。Android系统要求每个应用程序都声明一个唯一的安装包的包名。如果要安装的APK的包名和当前手机上某个已有的应用程序的安装包的包名重复了,那么Android系统会拒绝安装。Android平台下的山寨应用程序也需要声明一个包名,因此,包名就可以作为识别山寨应用程序的一个特征。
2)开发者签名
出于安全性的目的,Android系统要求每个APK都要包含开发者签名(digital signature)。Android系统在安装APK文件的时候会检查APK内部各文件的开发者签名是否与其预先设定的开发者签名一致,如果不一致,或者没有开发者签名,则认为文件已被篡改,拒绝该APK的安装和运行。Android平台下的山寨应用程序也不例外,所以APK文件的开发者签名也可以作为识别山寨应用程序的一个特征。
上述应用程序的开发者签名,也可称为代码签名,是在应用程序上附加一个防伪和防篡改的开发者签名来保护应用程序不被恶意修改。如果已安装的应用程序的开发者签名与应用程序的官方的开发者签名不一致,则可以认为已安装的应用程序可能被恶意修改过,该应用程序是山寨应用程序。在提取开发者签名时,对于安卓应用而言,可以从程序安装包中的元信息(META-INF)目录下提取,META-INF目录用于存储包和扩展的配置数据,例如安全性信息和版本信息,其中开发者签名就存储于此。META-INF目录如下表所示:
Figure BDA0000435211130000081
3)AndroidManifest.xml中列出的各模块的入口信息
AndroidManifest.xml是每个APK文件所必需的全局描述文件,里面列出了Android安装包中应用的每个模块的入口信息。在Android系统中,只有在AndroidManifest.xml中列出了的模块,才能够被系统调用。Android平台下的木马,往往会伪装成正常的应用或游戏来诱骗用户安装,其中有很多木马就是寄生在一个正常的应用或游戏中,用户运行它的时候,看上去是原来的软件或游戏,但寄生在其中的木马模块在合适的时机就被激活,从而感染用户的手机。而因为Android系统要求所有的模块都要在AndroidManifest.xml中列出,这就为寻找寄生的木马提高了重要线索。因此,AndroidManifest.xml中列出的各模块的信息,也是识别山寨应用程序的重要特征。
4)Dex文件和ELF文件
在Android系统的架构设计中,Android应用通常是用Java语言开发的,它用Android开发工具编译之后变成了二进制的字节码(byte code),这些字节码被打包成classes.dex文件,由Android平台的Dalvik虚拟机来解释执行。为了能够调用Android系统功能,Android系统提供了一套运行环境(AndroidFramework),Android应用调用系统各功能都是通过调用Android Framework的库来实现的。
另一方面,Android系统也支持应用程序通过JNI或者native executable直接运行。此时应用执行的是直接在CPU上运行的二进制机器码,不需要经过虚拟机解释,可以直接调用Android库如libc、WebKit、SQLite、OpenGL/ES等来调用系统各功能。如果Android应用要通过JNI或者nativeexecutable运行,就需要将要执行的代码编译成ELF文件格式。ELF是Executable and Linkable Format的缩写,是Android/Linux操作系统中可执行程序、共享库的文件格式。
Android上的山寨应用程序要想在Android系统中运行起来,也要遵循上述架构规范。因此,在识别山寨应用程序的过程中,可以分别从Dex文件(即字节码文件)和ELF文件提取相应的特征。
此外,除上述列举之外,应用程序的安装包的版本号、应用程序的安装包目录下各文件的校验值等信息,也可以作为识别山寨应用程序的重要特征。
上述应用程序的安装包目录下各文件的校验值,是对安装包中所有文件利用现有的校验算法(例如MD5算法)计算产生的一个校验值(例如MD5值),该校验值可以用于验证安装包目录下文件的完整性,文件的完整性保护主要是关注安装包中某个文件或对象是否被篡改。如果应用程序的安装包目录下各文件的校验值与应用程序的官方安装包中各文件的校验值不一致,则可以认为应用程序的安装包中的某个文件被篡改,该应用程序是山寨应用程序。
步骤S103、判断应用程序列表中的应用程序是否在预设的应用程序白名单中。
在本发明的一个实施例中,终端设备可以根据应用程序的特征信息判断应用程序列表中的应用程序是否在预设的应用程序白名单中。因为终端设备通常可以从云端服务器下载或从PC机安装预设的应用程序白名单,所以可以优先使用终端设备本地进行识别。
在本发明的另一个实施例中,终端设备侧将应用程序列表发送至云端服务器,并接收由云端服务器判断应用程序列表中的应用程序是否在预设的应用程序白名单的结果。实际应用中,终端设备中可能安装上百个应用程序,但是由于终端设备本地容量有限,一般只能识别出20个左右的应用程序,对于剩余的将近80款软件应用程序未能识别,此时的配置可以是在本地查找完后,全部上传云端服务器再次复查,或者直接将应用程序列表上传云端服务器识别。
在本发明的又一个实施例中,首先提示用户选择在终端设备本地识别还是上传到云端服务器由云端服务器识别,然后根据用户的选择执行终端设备根据应用程序的特征信息判断应用程序列表中的应用程序是否在预设的应用程序白名单中,或者执行终端设备侧将应用程序列表发送至云端服务器,并接收由云端服务器判断应用程序列表中的应用程序是否在预设的应用程序白名单的结果。这种情况下,需要由用户参与选择,终端设备提取出应用程序的特征信息后,在终端设备的用户界面显示提示信息,提示用户选择在终端设备本地识别还是上传到云端服务器,由云端服务器识别。通常,如果用户终端设备有包月的上网流量,则可以选择上传云端服务器,由云端服务器识别,以提高白名单识别的准确率;如果上网流量用完,又不想额外耗费更多流量,则可以选择仅在终端设备本地识别,或者优先在终端设备本地识别,如果终端设备本地识别的结果不全,还可以将剩余未识别的特征信息上传云端服务器,由云端服务器识别。
由于山寨应用程序的安装包的包名通常会伪装成与官方应用程序的安装包的包名一样,因此仅从安装包的包名无法识别出该应用程序是否为山寨应用程序,但是可以首先根据安装包的包名来识别该应用程序是否为受信任的应用程序。
具体地,在步骤S103中可以利用应用程序列表中记录的应用程序的安装包的包名判断应用程序列表中的应用程序是否在预设的应用程序白名单中。
如果该应用程序在该预设的应用程序白名单中,则说明该应用程序的名称是属于受信任的应用程序的名称。如果该应用程序不在该预设的应用程序白名单中,则说明该应用程序不受信任,可以进一步由云端服务器根据安全识别库进行识别。
在本发明的一个实施例中,可以在终端设备或云端服务器上设置一预先定义的安全识别库,所述预先定义的安全识别库可以包含应用程序白名单、应用程序黑名单、以及应用程序特征数据。所述白名单可以包含已知的受信任的应用程序的名称(包括应用程序的UID(唯一标识符)和应用程序的安装包的包名),所述应用程序黑名单可以包含已知的恶意应用程序的名称(包括应用程序的UID(唯一标识符)和应用程序的安装包的包名),所述应用程序特征数据可以包含已知的恶意特征(例如山寨应用特征)的数据。
云端服务器存储的特征信息包括以下中的一种或几种组合:Android安装包的包名,版本号,开发者签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes.dex文件,扩展名为.jar的文件,以及,Dex格式的文件。
如果应用程序在预设的应用程序白名单中,只能说明该应用程序具有受信任的应用程序的名称,考虑到山寨应用程序通常是通过篡改安装包中的文件来将该山寨应用程序的安装包伪装成官方应用程序的安装包,因此有必要进一步判断该应用程序的安装包中的文件是否被篡改。
具体地,在步骤S103中如果判断出应用程序在预设的应用程序白名单中,则进入步骤S105,在步骤S105中,判断应用程序的安装包中的至少部分文件是否被篡改。
在本发明的一个实施例中,在终端设备侧判断应用程序的安装包中的至少部分文件是否被篡改。
具体地,在所述终端设备侧根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改;或者在所述终端设备侧将已安装应用程序的特征信息发送至云端服务器,由云端服务器根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改。
优选地,在终端设备侧判断应用程序列表中的应用程序的开发者签名或应用程序的安装包目录下各文件的校验值与预设的官方应用程序库中的应用程序的官方开发者签名或应用程序的官方安装包目录下各文件的校验值是否相同。
也就是,在终端设备侧判断应用程序列表中的应用程序的开发者签名与预设的官方应用程序库中的应用程序的官方开发者签名是否相同,如果应用程序列表中的应用程序的开发者签名与预设的官方应用程序库中的应用程序的官方开发者签名不相同,则可以认为应用程序的安装包中的部分文件被篡改。
或者,在终端设备侧判断应用程序列表中的应用程序的安装包目录下各文件校验值与预设的官方应用程序库中应用程序的官方安装包目录下各文件的校验值是否相同,如果应用程序列表中的应用程序的安装包目录下各文件的校验值与预设的官方应用程序库中应用程序的官方安装包目录下各文件的官方校验值不相同,则可以认为应用程序的安装包中的部分文件被篡改。
上述预设的官方应用程序库中存储有多种不同版本的官方应用程序的安装包。
在本发明的另一个实施例中,也可以由云端服务器根据终端设备上传的应用程序的特征信息判断应用程序的安装包中的至少部分文件是否被篡改。
如果应用程序的安装包中的至少部分文件被篡改,则说明已安装的应用程序属于山寨应用程序,而不是官方版本的应用程序。考虑到山寨应用程序中可能设置有木马、病毒、广告、泄露隐私等危害用户的恶意代码,因此有必要引导用户卸载该山寨应用程序,并安装官方版本的应用程序,从而完成对山寨应用程序的修复。
具体地,如果在步骤S105中判断出应用程序的安装包中的至少文件被篡改,则可以进入步骤S107。在步骤S107中,卸载终端设备上已安装的应用程序。
在本发明的一个实施例中,当终端设备在本地判断应用程序的安装包中的至少文件被篡改时,在终端设备侧可以提示用户可以卸载该应用程序;在终端设备侧接收卸载命令之后,在终端设备侧根据卸载命令卸载该应用程序。
在本发明的另一个实施例中,当云端服务器判断该应用程序的安装包中的至少文件被篡改时,终端设备可以从云端服务器中获取该应用程序的卸载建议,该卸载建议包括:可卸载、不可卸载和谨慎卸载。由用户根据卸载建议选择是否卸载该应用程序,如果用户选择卸载该应用程序,则根据用户的卸载命令,卸载该应用程序。
若云端服务器通过安全服务检测出应用程序内包含恶意病毒,则确定该应用程序属于可卸载的应用程序,标识为可卸载;若云端服务器检测出应用程序内包含广告、弹窗、收费等,则做标注,将该应用程序归类并标识为可卸载;若云端服务器判断应用程序为移动终端系统自身的应用,卸载可能会对系统自身的运行造成严重影响,则归类并标识为不可卸载;若云端服务器判断应用程序为移动终端系统自身的应用,卸载对系统自身的运行没有严重影响,但是可能损失功能,归类并标识为谨慎卸载。
随后,在步骤S109中,从云端服务器中下载应用程序的官方安装包,并在终端设备上安装。
上述应用程序的官方安装包,是指由该应用程序的开发者发布的官方版本的安装包。
可选地,在本发明的另一个实施例中可以采用以下方式下载并安装应用程序的官方安装包,即步骤S109包括:
S1091、在终端设备侧向云端服务器发送下载请求,该下载请求中包括应用程序的安装包的包名和版本号,由云端服务器根据应用程序的安装包的包名和版本号匹配得到应用程序的官方安装包。
在本发明的一个实施例中,如果应用程序的安装包中的至少部分文件被篡改,在终端设备侧可以自动向云端服务器发送下载请求。
在本发明的另一个实施例中,如果应用程序的安装包中的至少部分文件被篡改,在终端设备侧可以自动向云端服务器发送下载请求之前,在终端设备侧提示用户可以下载应用程序的官方安装包;如果用户选择下载应用程序的官方安装包,则执行步骤S1091。
步骤S1093、在终端设备侧根据下载请求从云端服务器中下载并安装应用程序的官方安装包。
在本发明的另一个实施例中,如果应用程序不在预设的应用程序白名单中,可以将该应用程序的描述信息发送至云端服务器,由云端服务器根据应用程序黑名单对该应用程序进行识别,其中应用程序黑名单包括病毒库,如果该应用程序在应用程序黑名单中,则该应用程序可能是病毒、木马等具有危害的程序。
具体地,在步骤S103中,如果应用程序不在预设的应用程序白名单中,方法100还包括:在终端设备侧将应用程序的特征信息发送至云端服务器,由云端服务器根据安全识别库进行识别,然后在终端设备接收云端服务器发送的卸载建议,该卸载建议包括:可卸载、不可卸载和谨慎卸载。
若云端服务器通过安全识别库检测应用程序的安装包中包含恶意病毒,则确定该应用程序属于可卸载的应用程序,标识为可卸载;若云端服务器检测出应用程序内包含广告、弹窗、收费等,则做标注,将该应用程序归类并标识为可卸载;若云端服务器判断应用程序为移动终端系统自身的应用,卸载可能会对系统自身的运行造成严重影响,则归类并标识为不可卸载;若云端服务器判断应用程序为移动终端系统自身的应用,卸载对系统自身的运行没有严重影响,但是可能损失功能,归类并标识为谨慎卸载。
优选地,所述安全识别库中的特征信息包括以下中的一种或几种组合:各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes.dex文件,扩展名为.jar的文件,以及,Dex格式的文件;其中,所述样本Android安装包包括各种安全级别下的Android安装包。
云端服务器的安全规则库的策略主要包括:安全、危险、谨慎和木马四个安全级别。其中,各种安全级别的定义如下:
安全:该应用程序是一个正常的应用程序,没有任何威胁用户移动设备手机安全的行为;
危险:该应用程序存在安全风险,有可能该应用程序本身就是恶意软件;也有可能该应用程序本来是正规公司发布的正常软件,但是因为存在安全漏洞,导致用户的隐私、手机安全受到威胁;
谨慎:该应用程序是一个正常的应用程序,但是存在一些问题,例如会让用户不小心被扣费,或者有不友好的广告遭到投诉等;当发现这类应用程序之后,会提示用户谨慎使用并告知该应用程序可能的行为,但是由用户自行决定是否清除该应用程序;
木马:该应用是病毒、木马或者其他恶意软件,此处为了简单统称为木马,但并不表示该应用程序仅仅是木马。
由上述技术方案可知,本发明的实施例具有如下有益效果:通过判断应用程序的安装包中的至少部分文件是否被篡改,来识别终端设备中已安装的应用程序是否为山寨应用程序,如果该应用程序为山寨应用程序,则可以提示用户卸载该应用程序,并引导用户从云端服务器中下载并安装应用程序的官方安装包,从而实现帮助用户将山寨应用程序替换成官方版本的应用程序,有效防止山寨应用程序中的木马、病毒、广告、泄露隐私等危害用户的恶意代码给用户带来安全问题,提高了终端设备的操作系统的安全性。
如图2所示,在本发明的另一个实施例中提供了一种修复山寨应用程序的装置,该装置200包括:
扫描模块201,用于扫描终端设备上已安装的应用程序,并根据扫描得到的信息生成应用程序列表;
白名单判断模块203,用于判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;
篡改判断模块205,用于如果所述应用程序在所述预设的应用程序白名单中,判断所述应用程序的安装包中的至少部分文件是否被篡改;
卸载模块207,用于如果所述应用程序的安装包中的至少部分文件被篡改,卸载终端设备上的应用程序;
自动安装模块209,用于从云端服务器中下载应用程序的官方安装包并在终端设备上安装。
可选地,在本发明的一个实施例中,所述白名单判断模块203进一步用于在所述终端设备侧判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;或者在所述终端设备侧将所述应用程序列表发送至云端服务器,并接收由所述云端服务器判断所述应用程序列表中的应用程序是否在预设的应用程序白名单的结果。
可选地,在本发明的一个实施例中,所述篡改判断模块205进一步用于在所述终端设备侧根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改;或者在所述终端设备侧将已安装应用程序的特征信息发送至云端服务器,由云端服务器根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改。
可选地,在本发明的一个实施例中,所述应用程序的特征信息至少包括以下中的任意一种:应用程序的安装包的包名、版本号、开发者签名、Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串和安装包目录下各文件的校验值。
可选地,在本发明的一个实施例中,所述自动安装模块209包括:
下载请求发送单元,用于在所述终端设备侧向所述云端服务器发送下载请求,所述下载请求中包括应用程序的描述信息,由所述云端服务器根据所述应用程序的描述信息匹配得到所述应用程序的官方安装包;
下载单元,用于在所述终端设备侧从所述云端服务器中下载所述应用程序的官方安装包;
安装单元,用于在所述终端设备侧安装所述应用程序的官方安装包。
可选地,在本发明的一个实施例中,所述自动安装模块209还包括:
下载提示单元,用于在所述终端设备侧提示用户可以下载所述应用程序的官方安装包;如果用户选择下载所述应用程序的官方安装包,则触发所述下载请求发送单元。
可选地,在本发明的一个实施例中,所述卸载模块包括:
卸载提示单元,用于在所述终端设备侧提示用户可以卸载所述应用程序;
卸载命令接收单元,用于在所述终端设备侧接收卸载命令,所述卸载命令包括应用程序的描述信息;
卸载单元,用于在所述终端设备侧根据所述卸载命令卸载所述应用程序。
可选地,在本发明的一个实施例中,所述装置200还包括:
识别请求模块,用于在终端设备侧将应用程序的特征信息发送至云端服务器,由云端服务器根据安全识别库进行识别;所述安全识别库中的特征信息包括以下中的一种或几种组合:各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes.dex文件,扩展名为.jar的文件,以及,Dex格式的文件;其中,所述样本Android安装包包括各种安全级别下的Android安装包;
卸载建议接收模块,用于在所述终端设备接收所述云端服务器发送的卸载建议,所述卸载建议包括:建议卸载、不建议卸载和谨慎卸载。
由上述技术方案可知,本发明的实施例具有如下有益效果:通过判断应用程序的安装包中的至少部分文件是否被篡改,来识别终端设备中已安装的应用程序是否为山寨应用程序,如果该应用程序为山寨应用程序,则可以提示用户卸载该应用程序,并引导用户从云端服务器中下载并安装应用程序的官方安装包,从而实现帮助用户将山寨应用程序替换成官方版本的应用程序,有效防止山寨应用程序中的木马、病毒、广告、泄露隐私等危害用户的恶意代码给用户带来安全问题,提高了终端设备的操作系统的安全性。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干设备的单元权利要求中,这些设备中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明还公开了A1、一种修复山寨应用程序的方法,其包括:
扫描终端设备上已安装的应用程序,并根据扫描得到的信息生成应用程序列表,所述应用程序列表包括应用程序的特征信息;
判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;
如果所述应用程序在所述预设的应用程序白名单中,判断所述应用程序的安装包中的至少部分文件是否被篡改;
如果所述应用程序的安装包中的至少部分文件被篡改,则卸载所述终端设备上的所述应用程序;
从云端服务器中下载所述应用程序的官方安装包并在所述终端设备上安装。
A2、根据A1所述的方法,其中,所述判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中的步骤包括:
在所述终端设备侧判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;或者
在所述终端设备侧将所述应用程序列表发送至云端服务器,并接收由所述云端服务器判断所述应用程序列表中的应用程序是否在预设的应用程序白名单的结果。
A3、根据A1所述的方法,其中,判断所述应用程序的安装包中的至少部分文件是否被篡改的步骤包括:
在所述终端设备侧根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改;或者
在所述终端设备侧将已安装应用程序的特征信息发送至云端服务器,由云端服务器根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改。
A4、根据A1所述的方法,其中,所述应用程序的特征信息至少包括以下中的任意一种:应用程序的安装包的包名、版本号、开发者签名、Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串和安装包目录下各文件的校验值。
A5、根据A1所述的方法,其中,如果所述应用程序不在所述预设的应用程序白名单中,所述方法还包括:
在终端设备侧将应用程序的特征信息发送至云端服务器,由云端服务器根据安全识别库进行识别;所述安全识别库中的特征信息包括以下中的一种或几种组合:各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes.dex文件,扩展名为.jar的文件,以及,Dex格式的文件;其中,所述样本Android安装包包括各种安全级别下的Android安装包;
在所述终端设备接收所述云端服务器发送的卸载建议,所述卸载建议包括:建议卸载、不建议卸载和谨慎卸载。
A6、根据A1所述的方法,其中,从云端服务器中下载所述应用程序的官方安装包并在所述终端设备上安装的步骤包括:
在所述终端设备侧向所述云端服务器发送下载请求,所述下载请求中包括应用程序的安装包的包名和版本号,由所述云端服务器根据所述应用程序的安装包的包名和版本号匹配得到所述应用程序的官方安装包;
在所述终端设备侧从所述云端服务器中下载并安装所述应用程序的官方安装包。
A7、根据A6所述的方法,其中,在所述终端设备侧向所述云端服务器发送下载请求的步骤之前,还包括:
在所述终端设备侧提示用户可以下载所述应用程序的官方安装包;
如果用户选择下载所述应用程序的官方安装包,则执行在所述终端设备侧向所述云端服务器发送下载请求的步骤。
A8、根据A1所述的方法,其中,卸载所述终端设备上的应用程序的步骤包括:
在所述终端设备侧提示用户可以卸载所述应用程序;
在所述终端设备侧接收卸载命令;
在所述终端设备侧根据所述卸载命令卸载所述应用程序。
B9、一种修复山寨应用程序的装置,其包括:
扫描模块,用于扫描终端设备上已安装的应用程序,并根据扫描得到的信息生成应用程序列表,所述应用程序列表包括应用程序的特征信息;
白名单判断模块,用于判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;
篡改判断模块,用于如果所述应用程序在所述预设的应用程序白名单中,判断所述应用程序的安装包中的至少部分文件是否被篡改;
卸载模块,用于如果所述应用程序的安装包中的至少部分文件被篡改,则卸载所述终端设备上的所述应用程序;
自动安装模块,用于从云端服务器中下载所述应用程序的官方安装包并在所述终端设备上安装。
B10、根据B9所述的装置,其中,所述白名单判断模块进一步用于在所述终端设备侧判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;或者在所述终端设备侧将所述应用程序列表发送至云端服务器,并接收由所述云端服务器判断所述应用程序列表中的应用程序是否在预设的应用程序白名单的结果。
B11、根据B9所述的装置,其中,所述篡改判断模块进一步用于在所述终端设备侧根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改;或者在所述终端设备侧将已安装应用程序的特征信息发送至云端服务器,由云端服务器根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改。
B12、根据B9所述的装置,其中,所述应用程序的特征信息至少包括以下中的任意一种:应用程序的安装包的包名、版本号、开发者签名、Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串和安装包目录下各文件的校验值。
B13、根据B9所述的装置,其中,所述自动安装模块包括:
下载请求发送单元,用于在所述终端设备侧向所述云端服务器发送下载请求,所述下载请求中包括应用程序的描述信息,由所述云端服务器根据所述应用程序的描述信息匹配得到所述应用程序的官方安装包;
下载单元,用于在所述终端设备侧从所述云端服务器中下载所述应用程序的官方安装包;
安装单元,用于在所述终端设备侧安装所述应用程序的官方安装包。
B14、根据B13所述的装置,其中,所述自动安装模块还包括:
下载提示单元,用于在所述终端设备侧提示用户可以下载所述应用程序的官方安装包;如果用户选择下载所述应用程序的官方安装包,则触发所述下载请求发送单元。
B15、根据B9所述的装置,其中,所述卸载模块包括:
卸载提示单元,用于在所述终端设备侧提示用户可以卸载所述应用程序;
卸载命令接收单元,用于在所述终端设备侧接收卸载命令,所述卸载命令包括应用程序的描述信息;
卸载单元,用于在所述终端设备侧根据所述卸载命令卸载所述应用程序。
B16、根据B9所述的装置,所述装置还包括:
识别请求模块,用于在终端设备侧将应用程序的特征信息发送至云端服务器,由云端服务器根据安全识别库进行识别;所述安全识别库中的特征信息包括以下中的一种或几种组合:各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes.dex文件,扩展名为.jar的文件,以及,Dex格式的文件;其中,所述样本Android安装包包括各种安全级别下的Android安装包;
卸载建议接收模块,用于在所述终端设备接收所述云端服务器发送的卸载建议,所述卸载建议包括:建议卸载、不建议卸载和谨慎卸载。

Claims (10)

1.一种修复山寨应用程序的方法,其包括:
扫描终端设备上已安装的应用程序,并根据扫描得到的信息生成应用程序列表,所述应用程序列表包括应用程序的特征信息;
判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;
如果所述应用程序在所述预设的应用程序白名单中,判断所述应用程序的安装包中的至少部分文件是否被篡改;
如果所述应用程序的安装包中的至少部分文件被篡改,则卸载所述终端设备上的所述应用程序;
从云端服务器中下载所述应用程序的官方安装包并在所述终端设备上安装。
2.根据权利要求1所述的方法,其中,所述判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中的步骤包括:
在所述终端设备侧判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;或者
在所述终端设备侧将所述应用程序列表发送至云端服务器,并接收由所述云端服务器判断所述应用程序列表中的应用程序是否在预设的应用程序白名单的结果。
3.根据权利要求1所述的方法,其中,判断所述应用程序的安装包中的至少部分文件是否被篡改的步骤包括:
在所述终端设备侧根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改;或者
在所述终端设备侧将已安装应用程序的特征信息发送至云端服务器,由云端服务器根据已安装应用程序的特征信息与官方版本的应用程序的特征信息,判断所述应用程序的安装包中的至少部分文件是否被篡改。
4.根据权利要求1所述的方法,其中,所述应用程序的特征信息至少包括以下中的任意一种:应用程序的安装包的包名、版本号、开发者签名、Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串和安装包目录下各文件的校验值。
5.根据权利要求1所述的方法,其中,如果所述应用程序不在所述预设的应用程序白名单中,所述方法还包括:
在终端设备侧将应用程序的特征信息发送至云端服务器,由云端服务器根据安全识别库进行识别;所述安全识别库中的特征信息包括以下中的一种或几种组合:各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes.dex文件,扩展名为.jar的文件,以及,Dex格式的文件;其中,所述样本Android安装包包括各种安全级别下的Android安装包;
在所述终端设备接收所述云端服务器发送的卸载建议,所述卸载建议包括:建议卸载、不建议卸载和谨慎卸载。
6.根据权利要求1所述的方法,其中,从云端服务器中下载所述应用程序的官方安装包并在所述终端设备上安装的步骤包括:
在所述终端设备侧向所述云端服务器发送下载请求,所述下载请求中包括应用程序的安装包的包名和版本号,由所述云端服务器根据所述应用程序的安装包的包名和版本号匹配得到所述应用程序的官方安装包;
在所述终端设备侧从所述云端服务器中下载并安装所述应用程序的官方安装包。
7.根据权利要求6所述的方法,其中,在所述终端设备侧向所述云端服务器发送下载请求的步骤之前,还包括:
在所述终端设备侧提示用户可以下载所述应用程序的官方安装包;
如果用户选择下载所述应用程序的官方安装包,则执行在所述终端设备侧向所述云端服务器发送下载请求的步骤。
8.根据权利要求1所述的方法,其中,卸载所述终端设备上的应用程序的步骤包括:
在所述终端设备侧提示用户可以卸载所述应用程序;
在所述终端设备侧接收卸载命令;
在所述终端设备侧根据所述卸载命令卸载所述应用程序。
9.一种修复山寨应用程序的装置,其包括:
扫描模块,用于扫描终端设备上已安装的应用程序,并根据扫描得到的信息生成应用程序列表,所述应用程序列表包括应用程序的特征信息;
白名单判断模块,用于判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;
篡改判断模块,用于如果所述应用程序在所述预设的应用程序白名单中,判断所述应用程序的安装包中的至少部分文件是否被篡改;
卸载模块,用于如果所述应用程序的安装包中的至少部分文件被篡改,则卸载所述终端设备上的所述应用程序;
自动安装模块,用于从云端服务器中下载所述应用程序的官方安装包并在所述终端设备上安装。
10.根据权利要求9所述的装置,其中,所述白名单判断模块进一步用于在所述终端设备侧判断所述应用程序列表中的应用程序是否在预设的应用程序白名单中;或者在所述终端设备侧将所述应用程序列表发送至云端服务器,并接收由所述云端服务器判断所述应用程序列表中的应用程序是否在预设的应用程序白名单的结果。
CN201310674728.8A 2013-12-11 2013-12-11 一种修复山寨应用程序的方法及装置 Pending CN103679029A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310674728.8A CN103679029A (zh) 2013-12-11 2013-12-11 一种修复山寨应用程序的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310674728.8A CN103679029A (zh) 2013-12-11 2013-12-11 一种修复山寨应用程序的方法及装置

Publications (1)

Publication Number Publication Date
CN103679029A true CN103679029A (zh) 2014-03-26

Family

ID=50316539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310674728.8A Pending CN103679029A (zh) 2013-12-11 2013-12-11 一种修复山寨应用程序的方法及装置

Country Status (1)

Country Link
CN (1) CN103679029A (zh)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886260A (zh) * 2014-04-16 2014-06-25 中国科学院信息工程研究所 一种基于二次签名验签技术的应用程序管控方法
CN104021342A (zh) * 2014-05-06 2014-09-03 可牛网络技术(北京)有限公司 应用程序的处理方法及装置
CN104156638A (zh) * 2014-06-06 2014-11-19 国家计算机网络与信息安全管理中心 一种面向安卓系统软件的扩展签名的实现方法
CN104615933A (zh) * 2015-01-27 2015-05-13 北京奇虎科技有限公司 防软件反编译的方法、防反编译软件启动的方法和装置
CN106126310A (zh) * 2016-08-18 2016-11-16 北京奇虎科技有限公司 对应用程序的安装进行优化的方法、装置及终端
WO2016180193A1 (zh) * 2015-05-11 2016-11-17 广州市动景计算机科技有限公司 一种识别应用安装包的方法及装置
CN106485153A (zh) * 2016-10-10 2017-03-08 聚好看科技股份有限公司 版本升级方法及终端设备
CN106548065A (zh) * 2016-10-27 2017-03-29 海信集团有限公司 应用程序安装检测方法及装置
CN106557688A (zh) * 2016-11-17 2017-04-05 广东欧珀移动通信有限公司 管理默认应用的方法及装置
CN106709344A (zh) * 2016-08-09 2017-05-24 腾讯科技(深圳)有限公司 一种病毒查杀的通知方法及服务器
CN106778099A (zh) * 2016-11-29 2017-05-31 北京奇虎科技有限公司 防篡改apk的生成方法和装置、安装及运行方法和装置
CN106960138A (zh) * 2016-01-08 2017-07-18 阿里巴巴集团控股有限公司 虚拟机指令的校验方法及装置、系统
CN107194243A (zh) * 2017-05-25 2017-09-22 努比亚技术有限公司 一种移动终端及安装应用程序的方法
CN107301346A (zh) * 2017-05-23 2017-10-27 成都联宇云安科技有限公司 一种利用白名单机制实现安卓设备app快速安全检测方法
CN107766723A (zh) * 2017-11-22 2018-03-06 周燕红 抑制恶意应用安装的方法、装置、设备和可读存储介质
CN107919960A (zh) * 2017-12-04 2018-04-17 北京深思数盾科技股份有限公司 一种应用程序的认证方法和系统
CN107992748A (zh) * 2017-11-22 2018-05-04 江苏神州信源系统工程有限公司 一种软件控制方法和装置
CN108229169A (zh) * 2018-01-15 2018-06-29 郑州云海信息技术有限公司 基于管理平台的新增主机安全防护方法及装置
CN105718788B (zh) * 2016-01-19 2018-12-25 宇龙计算机通信科技(深圳)有限公司 一种恶意应用程序处理方法、装置以及终端
CN110088693A (zh) * 2017-01-04 2019-08-02 惠普打印机韩国有限公司 用于对应用进行备份的图像形成设备及其操作方法
CN110209925A (zh) * 2018-10-24 2019-09-06 腾讯科技(深圳)有限公司 应用推送方法、装置、计算机设备和存储介质
CN110597536A (zh) * 2019-08-28 2019-12-20 深圳市优必选科技股份有限公司 一种软件升级方法、系统及终端设备
CN110708435A (zh) * 2018-07-10 2020-01-17 佳能株式会社 图像处理设备及其控制方法和存储介质
CN110708436A (zh) * 2018-07-10 2020-01-17 佳能株式会社 图像处理设备及其控制方法以及存储介质
CN111869024A (zh) * 2018-04-30 2020-10-30 惠普发展公司,有限责任合伙企业 服务终端机设备配置
CN113467821A (zh) * 2021-06-03 2021-10-01 荣耀终端有限公司 应用程序的修复方法、装置、设备及可读存储介质
CN113763765A (zh) * 2021-08-31 2021-12-07 珠海读书郎软件科技有限公司 一种智慧课堂方便老师课前准备的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360320A (zh) * 2011-09-30 2012-02-22 奇智软件(北京)有限公司 一种基于云架构的终端备份对象共享恢复方法
CN102495771A (zh) * 2011-09-30 2012-06-13 奇智软件(北京)有限公司 一种基于云架构的终端对象分类备份及恢复方法
CN102508735A (zh) * 2011-09-30 2012-06-20 奇智软件(北京)有限公司 一种基于云架构的终端系统备份及恢复方法
CN102779257A (zh) * 2012-06-28 2012-11-14 奇智软件(北京)有限公司 一种Android应用程序的安全检测方法及系统
CN102855274A (zh) * 2012-07-17 2013-01-02 北京奇虎科技有限公司 一种可疑进程检测的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360320A (zh) * 2011-09-30 2012-02-22 奇智软件(北京)有限公司 一种基于云架构的终端备份对象共享恢复方法
CN102495771A (zh) * 2011-09-30 2012-06-13 奇智软件(北京)有限公司 一种基于云架构的终端对象分类备份及恢复方法
CN102508735A (zh) * 2011-09-30 2012-06-20 奇智软件(北京)有限公司 一种基于云架构的终端系统备份及恢复方法
CN102779257A (zh) * 2012-06-28 2012-11-14 奇智软件(北京)有限公司 一种Android应用程序的安全检测方法及系统
CN102855274A (zh) * 2012-07-17 2013-01-02 北京奇虎科技有限公司 一种可疑进程检测的方法和装置

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886260B (zh) * 2014-04-16 2016-09-14 中国科学院信息工程研究所 一种基于二次签名验签技术的应用程序管控方法
CN103886260A (zh) * 2014-04-16 2014-06-25 中国科学院信息工程研究所 一种基于二次签名验签技术的应用程序管控方法
CN104021342A (zh) * 2014-05-06 2014-09-03 可牛网络技术(北京)有限公司 应用程序的处理方法及装置
CN104156638A (zh) * 2014-06-06 2014-11-19 国家计算机网络与信息安全管理中心 一种面向安卓系统软件的扩展签名的实现方法
CN104615933A (zh) * 2015-01-27 2015-05-13 北京奇虎科技有限公司 防软件反编译的方法、防反编译软件启动的方法和装置
CN104615933B (zh) * 2015-01-27 2018-08-17 北京奇虎科技有限公司 防软件反编译的方法、防反编译软件启动的方法和装置
WO2016180193A1 (zh) * 2015-05-11 2016-11-17 广州市动景计算机科技有限公司 一种识别应用安装包的方法及装置
CN106960138A (zh) * 2016-01-08 2017-07-18 阿里巴巴集团控股有限公司 虚拟机指令的校验方法及装置、系统
CN106960138B (zh) * 2016-01-08 2020-08-25 阿里巴巴集团控股有限公司 虚拟机指令的校验方法及装置、系统
CN105718788B (zh) * 2016-01-19 2018-12-25 宇龙计算机通信科技(深圳)有限公司 一种恶意应用程序处理方法、装置以及终端
CN106709344B (zh) * 2016-08-09 2019-12-13 腾讯科技(深圳)有限公司 一种病毒查杀的通知方法及服务器
CN106709344A (zh) * 2016-08-09 2017-05-24 腾讯科技(深圳)有限公司 一种病毒查杀的通知方法及服务器
CN106126310A (zh) * 2016-08-18 2016-11-16 北京奇虎科技有限公司 对应用程序的安装进行优化的方法、装置及终端
CN106126310B (zh) * 2016-08-18 2019-08-20 北京奇虎科技有限公司 对应用程序的安装进行优化的方法、装置及终端
CN106485153A (zh) * 2016-10-10 2017-03-08 聚好看科技股份有限公司 版本升级方法及终端设备
CN106548065A (zh) * 2016-10-27 2017-03-29 海信集团有限公司 应用程序安装检测方法及装置
CN106548065B (zh) * 2016-10-27 2020-05-26 海信集团有限公司 应用程序安装检测方法及装置
CN106557688A (zh) * 2016-11-17 2017-04-05 广东欧珀移动通信有限公司 管理默认应用的方法及装置
CN106778099A (zh) * 2016-11-29 2017-05-31 北京奇虎科技有限公司 防篡改apk的生成方法和装置、安装及运行方法和装置
US11449390B2 (en) 2017-01-04 2022-09-20 Hewlett-Packard Development Company, L.P. Image forming apparatus for backing up applications, and operation method therefor
CN110088693A (zh) * 2017-01-04 2019-08-02 惠普打印机韩国有限公司 用于对应用进行备份的图像形成设备及其操作方法
CN107301346A (zh) * 2017-05-23 2017-10-27 成都联宇云安科技有限公司 一种利用白名单机制实现安卓设备app快速安全检测方法
CN107194243B (zh) * 2017-05-25 2020-06-09 南京白下高新技术产业园区投资发展有限责任公司 一种移动终端及安装应用程序的方法
CN107194243A (zh) * 2017-05-25 2017-09-22 努比亚技术有限公司 一种移动终端及安装应用程序的方法
CN107992748A (zh) * 2017-11-22 2018-05-04 江苏神州信源系统工程有限公司 一种软件控制方法和装置
CN107766723A (zh) * 2017-11-22 2018-03-06 周燕红 抑制恶意应用安装的方法、装置、设备和可读存储介质
CN107919960A (zh) * 2017-12-04 2018-04-17 北京深思数盾科技股份有限公司 一种应用程序的认证方法和系统
CN108229169A (zh) * 2018-01-15 2018-06-29 郑州云海信息技术有限公司 基于管理平台的新增主机安全防护方法及装置
CN111869024B (zh) * 2018-04-30 2022-09-02 惠普发展公司,有限责任合伙企业 服务终端机设备配置
CN111869024A (zh) * 2018-04-30 2020-10-30 惠普发展公司,有限责任合伙企业 服务终端机设备配置
US11630675B2 (en) 2018-04-30 2023-04-18 Hewlett-Packard Development Company, L.P. Service kiosk device configuration
CN110708436A (zh) * 2018-07-10 2020-01-17 佳能株式会社 图像处理设备及其控制方法以及存储介质
CN110708435A (zh) * 2018-07-10 2020-01-17 佳能株式会社 图像处理设备及其控制方法和存储介质
US11523025B2 (en) 2018-07-10 2022-12-06 Canon Kabushiki Kaisha Image processing apparatus that displays a message indicating that alteration of a login application has been detected, control method thereof, and storage medium
CN110708436B (zh) * 2018-07-10 2023-02-17 佳能株式会社 图像处理设备及其控制方法以及存储介质
CN110209925A (zh) * 2018-10-24 2019-09-06 腾讯科技(深圳)有限公司 应用推送方法、装置、计算机设备和存储介质
CN110209925B (zh) * 2018-10-24 2023-07-04 腾讯科技(深圳)有限公司 应用推送方法、装置、计算机设备和存储介质
CN110597536A (zh) * 2019-08-28 2019-12-20 深圳市优必选科技股份有限公司 一种软件升级方法、系统及终端设备
CN113467821A (zh) * 2021-06-03 2021-10-01 荣耀终端有限公司 应用程序的修复方法、装置、设备及可读存储介质
CN113763765A (zh) * 2021-08-31 2021-12-07 珠海读书郎软件科技有限公司 一种智慧课堂方便老师课前准备的方法及装置

Similar Documents

Publication Publication Date Title
CN103679029A (zh) 一种修复山寨应用程序的方法及装置
CN104008340B (zh) 病毒查杀方法及装置
CN104517054B (zh) 一种检测恶意apk的方法、装置、客户端和服务器
CN109062617B (zh) 一种支持多类型设备的平台的应用方法、移动终端
CN107451474B (zh) 用于终端的软件漏洞修复方法和装置
CN103632096B (zh) 一种对设备进行安全检测的方法和装置
CN103761472A (zh) 基于智能终端设备的应用程序访问方法与装置
CN104462971B (zh) 根据应用程序声明特征识别恶意应用程序的方法和装置
CN104318160B (zh) 查杀恶意程序的方法和装置
US9460306B1 (en) System and method for controlling access of machine code to operating system resources
CN102831338A (zh) 一种Android应用程序的安全检测方法及系统
CN102999720B (zh) 程序鉴别方法和系统
CN103279706A (zh) 拦截在移动终端中安装安卓应用程序的方法和装置
CN103839000A (zh) 基于智能终端设备安装应用程序的方法与装置
CN104317599A (zh) 检测安装包是否被二次打包的方法和装置
CN109255235B (zh) 基于用户态沙箱的移动应用第三方库隔离方法
CN109271789B (zh) 恶意进程检测方法、装置、电子设备及存储介质
CN105631335A (zh) 一种动态脱壳方法、装置和设备
CN112182584A (zh) 安全校验方法及装置、电子设备、存储介质
CN104036193B (zh) 一种应用程序的本地跨域漏洞检测方法及装置
CN103713945B (zh) 游戏的识别方法和装置
US11868465B2 (en) Binary image stack cookie protection
CN102999721A (zh) 一种程序处理方法和系统
CN103095698A (zh) 客户端软件的修复方法、装置和通信系统
CN106778270B (zh) 一种恶意应用程序的检测方法及系统

Legal Events

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

Application publication date: 20140326

RJ01 Rejection of invention patent application after publication