CN105207842B - Android外挂特征检测的方法及系统 - Google Patents
Android外挂特征检测的方法及系统 Download PDFInfo
- Publication number
- CN105207842B CN105207842B CN201510530189.XA CN201510530189A CN105207842B CN 105207842 B CN105207842 B CN 105207842B CN 201510530189 A CN201510530189 A CN 201510530189A CN 105207842 B CN105207842 B CN 105207842B
- Authority
- CN
- China
- Prior art keywords
- plug
- program
- activity
- packet name
- client
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种Android外挂特征检测的方法及系统,其中方法包括:客户端从服务端获取外挂程序的包名和Activity名;定义数据结构,以存储客户端所有安装包的元信息;将所述的安装包元信息的包名和Activity名与外挂程序的包名和Activity名进行匹配;若有匹配,则判断所述匹配信息对应的安装包是否运行;若有运行,则确认所述的安装包为外挂程序。通过上述方式,本发明能够实现Android游戏的外挂检测,保护游戏的公平性以及游戏厂商的利益;同时占用系统资源低,在低性能设备上也可以实现。
Description
技术领域
本发明涉及Android技术领域,尤其是涉及一种Android外挂特征检测的方法及系统。
背景技术
当前Android手机游戏非常流行,于是衍生出一批以修改Android游戏的行为或数据为主要功能的应用,这些应用破坏了游戏的公平性、安全性和侵害了厂家的利益。当前,在被越狱过的Android手机上,很难做到完全的防护,只能尽可能的提高游戏破解的难度,和提高外挂检测的能力。随着游戏外挂的更新,游戏外挂的检测也需要不断的更新丰富检测方式。
现有专利(申请号:201410067209.X)公开了一种外挂程序的鉴定方法、服务器和系统,该专利通过操作环境信息获取程序样本行为序列,以此判断外挂的方法,同时也没有公开提取外挂样本的方法。此外,从模块耦合角度来看,该专利的外挂检测模块易被黑客分析并攻击,安全性低。
发明内容
本发明所要解决的技术问题是:检测安装包的元信息,以及运行状态,以检测其是否为外挂程序,保护游戏的公平性,和游戏厂商的利益。
为了解决上述技术问题,本发明采用的技术方案为:提供一种Android外挂特征检测的方法,包括如下步骤:
客户端从服务端获取外挂程序的包名和Activity名;
定义数据结构,以存储客户端所有安装包的元信息;
将所述的安装包元信息中的包名和Activity名与外挂程序的包名和Activity名进行匹配;
若有匹配,则判断所述匹配信息对应的安装包是否运行;
若有运行,则确认所述的安装包为外挂程序。
为解决上述问题,本发明还提供一种Android外挂特征检测的系统,包括:
获取模块,用于从服务端获取外挂程序的包名和Activity名;
元信息模块,用于定义数据结构,以存储客户端所有安装包的元信息;
匹配模块,用于将所述的安装包元信息中的包名和Activity名与外挂程序的包名和Activity名进行匹配;
判断模块,用于判断所述匹配信息对应的安装包是否运行;
确认模块,用于确认所述安装包为外挂程序。
本发明的有益效果在于:区别于现有技术,本发明通过获取外挂程序应用特征信息,并与本地客户端的安装包进行匹配,判断是否有安装包处于运行状态,若有,则确认为外挂程序。通过上述方式,本发明可以实现Android游戏的外挂检测,保护游戏的公平性以及游戏厂商的利益;同时占用系统资源低,在低性能设备上也可以实现。
附图说明
图1为本发明方法实施例一的流程示意图;
图2为本发明方法实施例二的流程示意图;
图3为本发明系统实施例三的结构框图;
图4为本发明系统实施例四的结构框图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:获取外挂程序应用特征信息,并与客户端上的在安装包进行匹配,若有运行则认定为外挂程序。
请参照图1,本发明实施例一提供一种Android外挂特征检测的方法,包括如下步骤:
S1:客户端从服务端获取外挂程序的包名和Activity名;
S2:定义数据结构,以存储客户端所有安装包的元信息;
S3:将所述的安装包元信息中的包名和Activity名与外挂程序的包名和Activity名进行匹配;
S4:若有匹配,则判断所述匹配信息对应的安装包是否运行;
S5:若有运行,则确认所述的安装包为外挂程序。
具体地,本发明实施例一分析当前客户端(或本地)已安装的应用信息,提取应用特征,匹配外挂特征的检测方式。
由于每个Android应用程序都具有一个清单文件,此文件描述了一个应用的配置信息(即元信息),采集这些信息,提取出应用特征,使之和已收集的游戏外挂应用特征信息作匹配,以此来确定游戏外挂。
其次,Android清单文件在应用安装进设备后很难再变化,只有在应用升级时会发生变化,但是应用升级的频率一般不会很高,而且应用升级后可以及时重新采集特征信息,这些信息保存在云端,可以做到方便快捷的更新。
在获取配置信息后,与外观程序(或恶意软件)的应用特征信息进行对比,若发现匹配且在运行状态,则认定含有该元信息的安装包为外挂程序。
一般的,在一个应用被发布之后,应用的包名是固定的,虽然不是唯一的,但同一个客户端上不能同时安装两个包名相同的应用,同时使用包名和Acitvity名几乎可以确定一个应用,所以使用这两个特征作为应用特征信息。
其中,包名是android应用程序的一个特征,一个应用程序除了有名字还有一个包名,名字在不同语言下可能显示不同,比如在中文下显示“音乐播放器”,在英文下可能显示的是“Music player”,但是包名是确定的,如“com.nd.musicplayer”。包名是所有应用都具有的,一般应用上传到应用商城也是通过包名和签名来授权的,所以一个应用发布后,包名很难再改变,改变了包名就需要重新授权。
Activity是android中一种用来和用户交互的组件,简单地说,就是用户界面,每个应用程序都必须具有至少一个Activity,这个Activity是入口界面,就是点开应用时第一个看到的界面,这个界面也具有一个名字,通过同时检测包名和Activity名可以在很大程度上减少误判。
比如烧饼加速外挂的包名是:org.sbtools.gamespeed
可以采集几个特殊的Activity名分别是:
1.org.sbtools.gamespeed.main.MainActivity
2.org.sbtools.gamespeed.main.NoifyUserDialogActivity
3.org.sbtools.gamespeed.main.UserActivity
在实际检测时,通过组合使用上述包名及Activity作为特征,几乎不会发生误判。
通过上述两个应用特征本质上确定的是应用程序是合法的。而德国Avira公司的Avira AntiVirv杀毒软件使用类名的一部分作为特征检测手机应用是否包含广告和恶意代码,具有很大的误判率。相反,使用包名和Activity名这两个应用特征信息时,由于在用户命名时具有很大的随机性,而且同时组合使用,因此用此二者信息来进行检测外挂程序,误判率很低。
区别于现有技术,本发明实施例一通过获取外挂程序应用特征信息,并与本地客户端的安装包进行匹配,判断是否有安装包处于运行状态,若有,则确认为外挂程序。通过上述方式,本发明可以实现Android游戏的外挂检测,保护游戏的公平性以及游戏厂商的利益;同时占用系统资源低,在低性能设备上也可以实现。
如图2所示,在实施例一的基础上,本发明实施例二的步骤S1具体为:
S11:在云端服务器储存外挂程序的包名和Activity名;
S12:启动客户端,通过http协议获取所述外挂程序的包名和Activity名;
S13:客户端缓存所述外挂程序的包名和Activity名在本地服务器上。
外挂程序(或恶意软件)的应用特征信息存储在云端服务器上,客户端定期(如每天)第一次启动后,通过http协议获取该信息,并缓存在本地数据库上。
然后再定义数据结构,用于存储客户端所有安装包的元信息;具体如下所示:
并在程序启动后,分析当前所有安装包的元信息结构,生成已安装包元信息列表,并保存,如保存进List<PackageInfo>installed Packages。其中该列表是一种常用数据结构,检测到的所有安装包元信息每条对应列表中的一项,列表本身是在内存中,每次启动时都执行一次,用列表储存是为了方便之后对这个列表进行遍历,比较列表中的每一条是否匹配外挂程序应用特征信息。
其中,步骤S13之后,还包括:
S14:从云端服务器增量读取所有外挂程序的包名及Activity名;
S15:保存所述包名及Activity名到本地数据库上,并更新。
在云端服务器中出现外挂程序的包名及Activity名更新时,再次读取时候,为了减少读取的工作量,本发明实施例通过增量算法进行读取,具体的增量算法可以是delta算法等,这样处理,只需在原有基础上读取出现过更新的那一部分,即增量部分,无需进行再次全部读取。在增量读取后,相应地,在本地数据库中还需要缓存并更新,如增删部分内容,实现与云端服务器所保存内容的同步。
其中,在上述步骤S4或S5后,若出现无匹配或无运行的情况下,则直接执行步骤S6:结束程序。
首先,根据元消息及外挂程序应用特征信息,匹配是否存在安装包与外挂程序一致的,若无,则认定安装包不是外挂程序,直接忽略;否则,再进行判断匹配的安装包是否在运行中。若没有在运行,则忽略,结束程序;若在运行,则确认安装包为外挂程序。因此,即使用户安装了外挂程序被检测到,但是此刻没有运行,则不作处理,这样用户只要停止运行外挂程序即可。
如程序启动后生成所有安装包的元信息列表(包含包名和Activity名),和应用特征信息比较,如烧饼外挂的特征如上,发现匹配既为外挂程序。
其中,在步骤S1之前,还包括:
S0:在云端服务器上设置web界面和API接口。
云端服务器还提供web界面和API接口web界面用于管理员更新外挂特征信息,充实外挂信息库。如管理员可以通过其他渠道获取外挂信息,比如游戏论坛、客户端通过其他技术收集上报的可疑应用等。API接口用于提供给客户端更新特征,并且同时提供用于接收客户端上报的外挂,作统计分析功能。
应当理解的是,外挂信息库是不断采集丰富的过程,可以提供web界面方便管理员添加删除修改特征信息,应用程序可以使用api接口来接受本地数据库中的外挂特征信息。
区别于现有技术,本发明实施例二通过http协议从云端获取外挂程序应用特征信息,并缓存在本地数据库中。并及时更新。并与本地客户端的安装包进行匹配后,判断是否有安装包处于运行状态,若有,则确认为外挂程序。同时云端服务器提供对自身外挂信息库的自我更新的功能,以实现实时完善外挂特征,实现更大、更广范围内的外挂程序检测。通过上述方式,本发明可以实现Android游戏的外挂检测,保护游戏的公平性以及游戏厂商的利益;收集比较流行的几个外挂就可以覆盖大部分用户,游戏外挂特征更新方便,不需要游戏客户端更新文件即可检测最新外挂,对收集到的数据进行统计分析,做出针对性加强;同时占用系统资源低,在低性能设备上也可以实现。
如图3所示,本发明实施例三提供一种Android外挂特征检测的系统100,包括:
获取模块110,用于从服务端获取外挂程序的包名和Activity名;
元信息模块120,用于定义数据结构,以存储客户端所有安装包的元信息;
匹配模块130,用于将所述的安装包元信息中的包名和Activity名与外挂程序的包名和Activity名进行匹配;
判断模块140,用于判断所述匹配信息对应的安装包是否运行;
确认模块150,用于确认所述安装包为外挂程序。
如图4所示,本发明实施例四中的所述获取模块110包括:
云存储单元111,用于在云端服务器储存外挂程序的包名和Activity名;
获取单元112,用于启动客户端,通过http协议获取所述外挂程序的包名和Activity名;
缓存单元113,用于客户端缓存所述外挂程序的包名和Activity名在本地服务器上。
其中,获取模块110还包括:
增量读取单元114,用于从云端服务器增量读取所有外挂程序的包名及Activity名;
保存更新单元115,用于保存所述包名及Activity名到本地数据库上,并更新。
其中,所述系统100还包括结束模块160,用于在无匹配或无运行情况下,结束程序。
其中,所述云端服务器上设有web界面和API接口;其中,
web界面用于更新外挂程序应用特征信息;
API接口用于向客户端提供并更新外挂程序应用特征信息,以及接收客户端上报的外挂程序。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种Android外挂特征检测的方法,其特征在于,包括:
客户端从服务端获取外挂程序的包名和Activity名;
定义数据结构,以存储客户端所有安装包的元信息;
将所述的安装包元信息中的包名和Activity名与外挂程序的包名和Activity名进行匹配;所述Activity名为对应程序的入口界面的名字;
若有匹配,则判断所述匹配信息对应的安装包是否运行;
若有运行,则确认所述的安装包为外挂程序。
2.根据权利要求1所述Android外挂特征检测的方法,其特征在于,客户端获取从服务端获取外挂程序的包名和Activity名具体为:
在云端服务器储存外挂程序的包名和Activity名;
启动客户端,通过http协议获取所述外挂程序的包名和Activity名;
客户端缓存所述外挂程序的包名和Activity名在本地数据库上。
3.根据权利要求1所述Android外挂特征检测的方法,其特征在于,客户端缓存所述外挂程序的包名和Activity名在本地数据库上之后,还包括:
从云端服务器增量读取所有外挂程序的包名及Activity名;
保存所述包名及Activity名到本地数据库上,并更新。
4.根据权利要求1所述Android外挂特征检测的方法,其特征在于,若无匹配或无运行,则结束程序。
5.根据权利要求1所述Android外挂特征检测的方法,其特征在于,客户端从服务端获取外挂程序的包名和Activity名之前,还包括:
在云端服务器上设置web界面和API接口。
6.一种Android外挂特征检测的系统,其特征在于,包括:
获取模块,用于从服务端获取外挂程序的包名和Activity名;
元信息模块,用于定义数据结构,以存储客户端所有安装包的元信息;
匹配模块,用于将所述的安装包元信息中的包名和Activity名与外挂程序的包名和Activity名进行匹配;所述Activity名为对应程序的入口界面的名字;
判断模块,用于判断所述匹配信息对应的安装包是否运行;
确认模块,用于确认所述安装包为外挂程序。
7.根据权利要求6所述Android外挂特征检测的系统,其特征在于,所述获取模块包括:
云存储单元,用于在云端服务器储存外挂程序的包名和Activity名;
获取单元,用于启动客户端,通过http协议获取所述外挂程序的包名和Activity名;
缓存单元,用于客户端缓存所述外挂程序的包名和Activity名在本地数据库上。
8.根据权利要求6所述Android外挂特征检测的系统,其特征在于,所述获取模块还包括:
增量读取单元,用于从云端服务器增量读取所有外挂程序的包名及Activity名;
保存更新单元,用于保存所述包名及Activity名到本地数据库上,并更新。
9.根据权利要求6所述Android外挂特征检测的系统,其特征在于,还包括结束模块,用于在无匹配或无运行情况下,结束程序。
10.根据权利要求6所述Android外挂特征检测的系统,其特征在于,云端服务器上设有web界面和API接口;其中,
web界面用于更新外挂程序应用特征信息;
API接口用于向客户端提供并更新外挂程序应用特征信息,以及接收客户端上报的外挂程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510530189.XA CN105207842B (zh) | 2015-08-26 | 2015-08-26 | Android外挂特征检测的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510530189.XA CN105207842B (zh) | 2015-08-26 | 2015-08-26 | Android外挂特征检测的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105207842A CN105207842A (zh) | 2015-12-30 |
CN105207842B true CN105207842B (zh) | 2019-01-22 |
Family
ID=54955293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510530189.XA Active CN105207842B (zh) | 2015-08-26 | 2015-08-26 | Android外挂特征检测的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105207842B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106362401A (zh) * | 2016-09-19 | 2017-02-01 | 武汉斗鱼网络科技有限公司 | 一种提高游戏程序运行安全的方法及系统 |
CN106557698B (zh) * | 2016-11-29 | 2019-08-02 | 武汉斗鱼网络科技有限公司 | 一种应用中的组件检测方法和装置 |
CN109078331B (zh) * | 2018-07-19 | 2021-09-21 | 广州华多网络科技有限公司 | 模拟按键检测方法、装置、计算机设备及存储介质 |
CN109731339B (zh) * | 2018-12-17 | 2022-04-12 | 福建天晴数码有限公司 | 检测外挂的方法、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252592A (zh) * | 2013-06-27 | 2014-12-31 | 贝壳网际(北京)安全技术有限公司 | 外挂应用程序的识别方法及装置 |
CN104715196A (zh) * | 2015-03-27 | 2015-06-17 | 北京奇虎科技有限公司 | 智能手机应用程序的静态分析方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8918881B2 (en) * | 2012-02-24 | 2014-12-23 | Appthority, Inc. | Off-device anti-malware protection for mobile devices |
CN104079525B (zh) * | 2013-03-25 | 2015-11-11 | 腾讯科技(深圳)有限公司 | 一种防止外挂的方法和服务器 |
-
2015
- 2015-08-26 CN CN201510530189.XA patent/CN105207842B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252592A (zh) * | 2013-06-27 | 2014-12-31 | 贝壳网际(北京)安全技术有限公司 | 外挂应用程序的识别方法及装置 |
CN104715196A (zh) * | 2015-03-27 | 2015-06-17 | 北京奇虎科技有限公司 | 智能手机应用程序的静态分析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105207842A (zh) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11277423B2 (en) | Anomaly-based malicious-behavior detection | |
US8726387B2 (en) | Detecting a trojan horse | |
US9081961B2 (en) | System and method for analyzing malicious code using a static analyzer | |
US20160241589A1 (en) | Method and apparatus for identifying malicious website | |
US9832211B2 (en) | Computing device to detect malware | |
US20170149830A1 (en) | Apparatus and method for automatically generating detection rule | |
CN110417778B (zh) | 访问请求的处理方法和装置 | |
CN105207842B (zh) | Android外挂特征检测的方法及系统 | |
US20120240235A1 (en) | Methods and systems for providing a framework to test the security of computing system over a network | |
WO2018182126A1 (ko) | 안전 소프트웨어 인증 시스템 및 방법 | |
US8799923B2 (en) | Determining relationship data associated with application programs | |
CN105631312B (zh) | 恶意程序的处理方法及系统 | |
WO2014012500A1 (en) | Method and device for processing messages | |
CN104715196A (zh) | 智能手机应用程序的静态分析方法及系统 | |
US9747449B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
CN112073437B (zh) | 多维度的安全威胁事件分析方法、装置、设备及存储介质 | |
CN102970272A (zh) | 用于病毒检测的方法、装置和云服务器 | |
KR20180107789A (ko) | 기계 학습 기반으로 이상 행위를 분석하는 유무선 공유기 및 그 방법 | |
KR20130066901A (ko) | 데이터 분석 시스템에서 맬웨어를 분석하기 위한 장치 및 방법 | |
CN105095764A (zh) | 病毒的查杀方法及装置 | |
CN111859374A (zh) | 社会工程学攻击事件的检测方法、装置以及系统 | |
CN103067360B (zh) | 程序网络行为识别方法及系统 | |
US10346611B1 (en) | Detecting malicious software | |
US20190007439A1 (en) | Analysis method, analysis device, and analysis program | |
KR20160031590A (ko) | 악성 앱 분류 장치 및 악성 앱 분류 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |