CN103577731A - 一种软件处理方法和装置 - Google Patents
一种软件处理方法和装置 Download PDFInfo
- Publication number
- CN103577731A CN103577731A CN201210249319.9A CN201210249319A CN103577731A CN 103577731 A CN103577731 A CN 103577731A CN 201210249319 A CN201210249319 A CN 201210249319A CN 103577731 A CN103577731 A CN 103577731A
- Authority
- CN
- China
- Prior art keywords
- authority
- software
- self
- carry out
- refinement
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件处理方法和装置:当接收到开发者上传到电子商城的任一软件后,确定该软件申请的权限中是否存在需要进行精细化处理的权限;如果是,则针对确定出的每个需要进行精细化处理的权限,分别进行以下处理:将该权限修改为自定义的精细化权限,并将该权限对应的调用系统API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑;自定义的精细化权限是指对原有权限进行细粒度的限定后的权限;将修改后的软件发布到电子商城上。应用本发明所述方案,能够提高安全性。
Description
技术领域
本发明涉及数据业务技术,特别涉及一种软件处理方法和装置。
背景技术
目前,电子商城业务开展的如火如荼,开发者可通过电子商城进行软件发布,供其它用户进行下载和安装。
现有技术中,安卓(Android)等典型系统的权限是由开发者任意申请使用的,这样,就可能导致权限被滥用,如对于某些恶意软件,即可任意窃取用户信息。
假设一个恶意软件申请的权限列表如下:
可以看出,该恶意软件共申请了10个权限,各权限的含义已进行了注释,上述很多权限都会对用户的安全造成威胁,如,ACCESS_FINE_LOCATION这一权限即可能导致用户的位置私隐泄漏。
用户从电子商城上下载软件后,在进行安装时,系统通常会提示用户开发者所申请的权限,用户如果确认接受这些权限,则可完成后续安装,但是,用户通常很少关注这些权限,不仔细查看即进行确认,从而给用户带来很大的安全风险。
发明内容
有鉴于此,本发明提供了一种软件处理方法和装置,能够提高安全性。
为达到上述目的,本发明的技术方案是这样实现的:
一种软件处理方法,包括:
当接收到开发者上传到电子商城的任一软件后,确定该软件申请的权限中是否存在需要进行精细化处理的权限;
如果是,则针对确定出的每个需要进行精细化处理的权限,分别进行以下处理:
将该权限修改为自定义的精细化权限,并将该权限对应的调用系统应用程序接口API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑;所述自定义的精细化权限是指对原有权限进行细粒度的限定后的权限;
将修改后的软件发布到电子商城上。
一种软件处理装置,包括:
接收模块,用于接收开发者上传到电子商城的任一软件,并发送给处理模块;
所述处理模块,用于确定该软件申请的权限中是否存在需要进行精细化处理的权限;如果是,则针对确定出的每个需要进行精细化处理的权限,分别进行以下处理:将该权限修改为自定义的精细化权限,并将该权限对应的调用系统应用程序接口API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑,所述自定义的精细化权限是指对原有权限进行细粒度的限定后的权限;并将修改后的软件发布到电子商城上。
可见,采用本发明所述方案,可将开发者为软件申请的权限修改为自定义的精细化权限,从而避免了由于软件的权限申请过于简单而导致的权限被滥用的问题,进而提高了安全性。
附图说明
图1为本发明软件处理方法实施例的流程图。
图2为图1所示实施例中的APK文件的处理过程示意图。
图3为本发明软件处理装置实施例的组成结构示意图。
具体实施方式
针对现有技术中存在的问题,本发明中提出一种改进后的软件处理方案,能够提高安全性。
本发明所述方案主要适用于基于权限申请过于简单、权限可能被滥用的系统开发的软件,如,所述系统可为Android系统,以下即以Android系统为例,对本发明所述方案进行详细说明。
图1为本发明软件处理方法实施例的流程图。如图1所示,包括:
步骤11:接收开发者上传到电子商城的任一软件。
当开发者基于Android系统开发出了一个软件后,如果希望其能够被其它用户所使用,则可将该软件上传到电子商城中。
步骤12:确定该软件申请的权限中是否存在需要进行精细化处理的权限;如果是,则执行步骤14,否则,执行步骤13。
在实际应用中,开发者在将开发出的软件上传到电子商城后,通常还会上传该软件的报备信息,即该软件的相关信息,包括:该软件的功能、申请的权限,以及需要访问的互联网网址等。
相应地,本步骤中,可根据接收到的报备信息确定该软件申请的权限中是否存在需要进行精细化处理的权限,如果是,则执行步骤14,否则,执行步骤¨。
具体来说,对于任一基于Android系统开发的软件,其本质是一个安卓安装包(APK,Android Package)文件,当接收到该APK文件后,可对其进行解包,从而得到AndroidManifest.xml文件、Classes.dex文件以及除两者以外的其它文件,如Resources.arsc文件等。APK文件是一个ZIP压缩包,可通过解压缩工具解开。
其中,AndroidManifest.xml文件中包括有该软件申请的权限列表,可根据接收到的报备信息确定该权限列表中是否存在需要进行精细化处理的权限,如果是,则执行步骤14,否则,执行步骤13。
比如,该软件申请了如下权限,即权限列表中包括如下权限:
该权限表示允许访问任意互联网网址,且可以访问本地Socket,而根据该软件的报备信息可知,该软件的执行只需要访问某几个特定的互联网网址(服务器地址),那么,则可将该权限确定为需要进行精细化处理的权限。
步骤13:将该软件发布到电子商城上,结束处理。
如果该软件申请的权限中不存在需要进行精细化处理的权限,则直接将该软件发布到电子商城上即可。
步骤14:针对确定出的每个需要进行精细化处理的权限,分别进行以下处理:将该权限修改为自定义的精细化权限,并将该权限对应的调用系统应用程序接口(API,Application Programming Interface)的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑。
自定义的精细化权限是指对原有权限进行细粒度的限定后的权限。
如前所述,当接收到开发者上传的任一基于Android系统开发的软件后,可对该软件对应的APK文件进行解包,从而得到AndroidManifest.xml文件、Classes.dex文件以及除两者以外的其它文件,其中,AndroidManifest.xml文件中包括有该软件申请的权限列表。本步骤中,对于位于权限列表中的每个确定出的需要进行精细化处理的权限,分别将其修改为自定义的精细化权限。
比如,权限列表中包括如下权限:
如前所述,该权限表示允许访问任意互联网网址,且可以访问本地Socket,那么,可自定义精细化权限Internet(Domain),该权限只允许访问某几个特定的互联网网址(报备信息中涉及到的),且不能访问本地Socket,即将上述权限修改为:
从而对原有权限进行了细粒度的限定。
另外,Classes.dex文件是该软件的逻辑实现部分,其中包括有权限列表中的每个权限分别对应的调用系统API的程序逻辑,在实际应用中,对于权限列表中的每个权限,可分别通过调用其对应的系统API来实现该权限限定的功能。
本步骤中,对于确定出的每个需要进行精细化处理的权限,在分别将其修改为自定义的精细化权限之后,还需要分别将其对应的包括在Classes.dex文件中的调用系统API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑。
比如,自定义的精细化权限为上述INTERNET(Domain),那么,通过其对应的自定义API将只能访问该权限所限定的某几个特定的互联网网址。
如何生成自定义的精细化权限以及对应的自定义API为现有技术。
步骤15:将修改后的软件发布到电子商城上,结束流程。
在执行完步骤14之后,还需要将修改后的AndroidManifest.xml文件、修改后的Classes.dex文件以及除两者以外的其它文件进行打包,得到新的APK文件,即得到修改后的软件,并将修改后的软件发布到电子商城上。
图2为图1所示实施例中的APK文件的处理过程示意图。如图2所示,需要修改的是AndroidManifest.xml文件和Classes.dex文件,其它文件均无需修改。
至此,即完成了关于本发明方法实施例的介绍。
基于上述介绍,图3为本发明软件处理装置实施例的组成结构示意图。如图3所示,包括:
接收模块,用于接收开发者上传到电子商城的任一软件,并发送给处理模块;
处理模块,用于确定该软件申请的权限中是否存在需要进行精细化处理的权限;如果是,则针对确定出的每个需要进行精细化处理的权限,分别进行以下处理:将该权限修改为自定义的精细化权限,并将该权限对应的调用系统API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑,自定义的精细化权限是指对原有权限进行细粒度的限定后的权限;并将修改后的软件发布到电子商城上。
其中,处理模块中可具体包括:
处理单元,用于确定该软件申请的权限中是否存在需要进行精细化处理的权限;如果是,则针对确定出的每个需要进行精细化处理的权限,分别进行以下处理:将该权限修改为自定义的精细化权限,并将该权限对应的调用系统API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑;并将修改后的软件发送给发布单元;
发布单元,用于将修改后的软件发布到电子商城上。
接收模块可进一步用于,接收开发者上传到电子商城的该软件的报备信息,并发送给处理单元;
相应地,处理单元根据接收到的报备信息确定该软件申请的权限中是否存在需要进行精细化处理的权限。
通常,上述软件为基于Android系统开发的软件;
相应地,处理单元可进一步用于,在接收到开发者上传到电子商城的该软件的报备信息之后,确定该软件申请的权限中是否存在需要进行精细化处理的权限之前,对该软件对应的APK文件进行解包,得到AndroidManifest.xml文件,AndroidManifest.xml文件中包括有该软件申请的权限列表;根据接收到的报备信息确定权限列表中是否存在需要进行精细化处理的权限。
解包还可进一步得到:Classes.dex文件以及除AndroidManifest.xml文件和Classes.dex文件以外的其它文件,Classes.dex文件中包括有权限列表中的每个权限分别对应的调用系统API的程序逻辑;
针对确定出的每个需要进行精细化处理的权限,处理单元可分别将位于权限列表中的该权限修改为自定义的精细化权限,并将该权限对应的包括在Classes.dex文件中的调用系统API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑;
处理单元还可进一步用于,在将修改后的软件发布到电子商城上之前,将修改后的AndroidManifest.xml文件、修改后的Classes.dex文件以及其它文件进行打包,得到新的APK文件。
图3所示装置实施例的具体工作流程请参照图1所示方法实施例中的相应说明,此处不再赘述。
总之,采用本发明所述方案,可将开发者为软件申请的权限修改为自定义的精细化权限,从而避免了由于软件的权限申请过于简单而导致的权限被滥用的问题,进而提高了安全性;而且,本发明所述方案实现起来简单方便,便于普及和推广。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (9)
1.一种软件处理方法,其特征在于,包括:
当接收到开发者上传到电子商城的任一软件后,确定该软件申请的权限中是否存在需要进行精细化处理的权限;
如果是,则针对确定出的每个需要进行精细化处理的权限,分别进行以下处理:
将该权限修改为自定义的精细化权限,并将该权限对应的调用系统应用程序接口API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑;所述自定义的精细化权限是指对原有权限进行细粒度的限定后的权限;
将修改后的软件发布到电子商城上。
2.根据权利要求1所述的方法,其特征在于,
所述确定该软件申请的权限中是否存在需要进行精细化处理的权限之前,进一步包括:接收开发者上传到电子商城的该软件的报备信息;
所述确定该软件申请的权限中是否存在需要进行精细化处理的权限包括:根据接收到的报备信息确定该软件申请的权限中是否存在需要进行精细化处理的权限。
3.根据权利要求2所述的方法,其特征在于,所述软件为基于安卓Android系统开发的软件;
所述接收开发者上传到电子商城的该软件的报备信息之后,确定该软件申请的权限中是否存在需要进行精细化处理的权限之前,进一步包括:对该软件对应的安卓安装包APK文件进行解包,得到AndroidManifest.xml文件,所述AndroidManifest.xml文件中包括有该软件申请的权限列表;
所述根据接收到的报备信息确定该软件申请的权限中是否存在需要进行精细化处理的权限包括:根据接收到的报备信息确定所述权限列表中是否存在需要进行精细化处理的权限。
4.根据权利要求3所述的方法,其特征在于,
所述解包进一步得到:Classes.dex文件以及除所述AndroidManifest.xml文件和所述Classes.dex文件以外的其它文件,所述Classes.dex文件中包括有所述权限列表中的每个权限分别对应的调用系统API的程序逻辑;
所述将该权限修改为自定义的精细化权限,并将该权限对应的调用系统API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑包括:将位于所述权限列表中的该权限修改为自定义的精细化权限,并将该权限对应的包括在所述Classes.dex文件中的调用系统API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑;
所述将修改后的软件发布到电子商城上之前,进一步包括:将修改后的AndroidManifest.xml文件、修改后的Classes.dex文件以及所述其它文件进行打包,得到新的APK文件。
5.一种软件处理装置,其特征在于,包括:
接收模块,用于接收开发者上传到电子商城的任一软件,并发送给处理模块;
所述处理模块,用于确定该软件申请的权限中是否存在需要进行精细化处理的权限;如果是,则针对确定出的每个需要进行精细化处理的权限,分别进行以下处理:将该权限修改为自定义的精细化权限,并将该权限对应的调用系统应用程序接口API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑,所述自定义的精细化权限是指对原有权限进行细粒度的限定后的权限;并将修改后的软件发布到电子商城上。
6.根据权利要求5所述的装置,其特征在于,所述处理模块中包括:
处理单元,用于确定该软件申请的权限中是否存在需要进行精细化处理的权限;如果是,则针对确定出的每个需要进行精细化处理的权限,分别进行以下处理:将该权限修改为自定义的精细化权限,并将该权限对应的调用系统API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑;并将修改后的软件发送给发布单元;
所述发布单元,用于将修改后的软件发布到电子商城上。
7.根据权利要求6所述的装置,其特征在于,
所述接收模块进一步用于,接收开发者上传到电子商城的该软件的报备信息,并发送给所述处理单元;
所述处理单元根据接收到的报备信息确定该软件申请的权限中是否存在需要进行精细化处理的权限。
8.根据权利要求7所述的装置,其特征在于,所述软件为基于安卓Android系统开发的软件;
所述处理单元进一步用于,在接收到开发者上传到电子商城的该软件的报备信息之后,确定该软件申请的权限中是否存在需要进行精细化处理的权限之前,对该软件对应的安卓安装包APK文件进行解包,得到AndroidManifest.xml文件,所述AndroidManifest.xml文件中包括有该软件申请的权限列表;根据接收到的报备信息确定所述权限列表中是否存在需要进行精细化处理的权限。
9.根据权利要求8所述的装置,其特征在于,
所述解包进一步得到:Classes.dex文件以及除所述AndroidManifest.xml文件和所述Classes.dex文件以外的其它文件,所述Classes.dex文件中包括有所述权限列表中的每个权限分别对应的调用系统API的程序逻辑;
针对确定出的每个需要进行精细化处理的权限,所述处理单元分别将位于所述权限列表中的该权限修改为自定义的精细化权限,并将该权限对应的包括在所述Classes.dex文件中的调用系统API的程序逻辑修改为调用与修改后的自定义的精细化权限相对应的自定义API的程序逻辑;
所述处理单元进一步用于,在将修改后的软件发布到电子商城上之前,将修改后的AndroidManifest.xml文件、修改后的Classes.dex文件以及所述其它文件进行打包,得到新的APK文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210249319.9A CN103577731B (zh) | 2012-07-18 | 2012-07-18 | 一种软件处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210249319.9A CN103577731B (zh) | 2012-07-18 | 2012-07-18 | 一种软件处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103577731A true CN103577731A (zh) | 2014-02-12 |
CN103577731B CN103577731B (zh) | 2016-10-05 |
Family
ID=50049495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210249319.9A Active CN103577731B (zh) | 2012-07-18 | 2012-07-18 | 一种软件处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577731B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156660A (zh) * | 2014-08-28 | 2014-11-19 | 东南大学 | 一种基于运行环境状态的Android权限细粒度访问控制方法 |
CN104408366A (zh) * | 2014-11-26 | 2015-03-11 | 清华大学 | 基于插装技术的安卓应用程序权限使用行为跟踪方法 |
CN105577720A (zh) * | 2014-10-15 | 2016-05-11 | 中兴通讯股份有限公司 | 移动应用打包的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148402A (en) * | 1998-04-01 | 2000-11-14 | Hewlett-Packard Company | Apparatus and method for remotely executing commands using distributed computing environment remote procedure calls |
CN101562621A (zh) * | 2009-05-25 | 2009-10-21 | 阿里巴巴集团控股有限公司 | 一种用户授权的方法、系统和装置 |
CN101620650A (zh) * | 2008-07-01 | 2010-01-06 | 成都市华为赛门铁克科技有限公司 | 一种文件权限控制的方法、文件权限控制系统和服务器 |
CN102200922A (zh) * | 2011-04-06 | 2011-09-28 | 宇龙计算机通信科技(深圳)有限公司 | 应用程序安装方法和终端 |
-
2012
- 2012-07-18 CN CN201210249319.9A patent/CN103577731B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148402A (en) * | 1998-04-01 | 2000-11-14 | Hewlett-Packard Company | Apparatus and method for remotely executing commands using distributed computing environment remote procedure calls |
CN101620650A (zh) * | 2008-07-01 | 2010-01-06 | 成都市华为赛门铁克科技有限公司 | 一种文件权限控制的方法、文件权限控制系统和服务器 |
CN101562621A (zh) * | 2009-05-25 | 2009-10-21 | 阿里巴巴集团控股有限公司 | 一种用户授权的方法、系统和装置 |
CN102200922A (zh) * | 2011-04-06 | 2011-09-28 | 宇龙计算机通信科技(深圳)有限公司 | 应用程序安装方法和终端 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156660A (zh) * | 2014-08-28 | 2014-11-19 | 东南大学 | 一种基于运行环境状态的Android权限细粒度访问控制方法 |
CN104156660B (zh) * | 2014-08-28 | 2016-10-26 | 东南大学 | 一种基于运行环境状态的Android权限细粒度访问控制方法 |
CN105577720A (zh) * | 2014-10-15 | 2016-05-11 | 中兴通讯股份有限公司 | 移动应用打包的方法及系统 |
CN105577720B (zh) * | 2014-10-15 | 2020-04-10 | 中兴通讯股份有限公司 | 移动应用打包的方法及系统 |
CN104408366A (zh) * | 2014-11-26 | 2015-03-11 | 清华大学 | 基于插装技术的安卓应用程序权限使用行为跟踪方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103577731B (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9811393B2 (en) | Consistent extension points to allow an extension to extend functionality of an application to another application | |
TWI420338B (zh) | 安全之瀏覽器基礎應用程式 | |
Jung et al. | Repackaging attack on android banking applications and its countermeasures | |
CN106295255B (zh) | 应用程序的加固方法和装置 | |
CN115668147A (zh) | 防止集群中的未授权封装部署 | |
WO2016078130A1 (zh) | 一种防逆向apk文件的动态加载方法 | |
WO2015183456A1 (en) | Consistent extension points to allow an extension to extend functionality of an application to another application | |
US9483636B2 (en) | Runtime application integrity protection | |
JP2016515748A (ja) | 実行時のアプリケーションメソッドを置き換えるためのシステム及び方法 | |
MXPA05003943A (es) | Parchado eficiente. | |
MXPA05003944A (es) | Parchado eficiente. | |
CN104680039A (zh) | 一种应用程序安装包的数据保护方法及装置 | |
US20230073638A1 (en) | Local data classification based on a remote service interface | |
CN112231702B (zh) | 应用保护方法、装置、设备及介质 | |
US20150150119A1 (en) | Framework for fine-grain access control from high-level application permissions | |
CA2744891C (en) | Method, system and simulation or analysis model for data processing | |
CN106415491A (zh) | 一种应用保护方法、服务器以及终端 | |
CN104102880A (zh) | 一种检测Android权限提升攻击的应用程序重写方法和系统 | |
CN110928571A (zh) | 业务程序开发方法和装置 | |
CN103577731A (zh) | 一种软件处理方法和装置 | |
CN109522683B (zh) | 软件溯源方法、系统、计算机设备及存储介质 | |
CN110297655A (zh) | 生成补丁包的方法、装置、设备及存储介质 | |
US10713370B2 (en) | Information rights management through editors implemented in a browser | |
CN104899502B (zh) | 用于对受保护的硬件资源的软件启用接入的装置和方法 | |
CN112182518A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |