Android外挂特征检测的方法及系统的制作方法

文档序号:9455733阅读:1921来源:国知局
Android外挂特征检测的方法及系统的制作方法
【技术领域】
[0001] 本发明涉及Android技术领域,尤其是涉及一种Android外挂特征检测的方法及 系统。
【背景技术】
[0002] 当前Android手机游戏非常流行,于是衍生出一批以修改Android游戏的行为或 数据为主要功能的应用,这些应用破坏了游戏的公平性、安全性和侵害了厂家的利益。当 前,在被越狱过的Android手机上,很难做到完全的防护,只能尽可能的提高游戏破解的难 度,和提高外挂检测的能力。随着游戏外挂的更新,游戏外挂的检测也需要不断的更新丰富 检测方式。
[0003] 现有专利(【申请号】201410067209. X)公开了一种外挂程序的鉴定方法、服务器和 系统,该专利通过操作环境信息获取程序样本行为序列,以此判断外挂的方法,同时也没有 公开提取外挂样本的方法。此外,从模块耦合角度来看,该专利的外挂检测模块易被黑客分 析并攻击,安全性低。

【发明内容】

[0004] 本发明所要解决的技术问题是:检测安装包的元信息,以及运行状态,以检测其是 否为外挂程序,保护游戏的公平性,和游戏厂商的利益。
[0005] 为了解决上述技术问题,本发明采用的技术方案为:提供一种Android外挂特征 检测的方法,包括如下步骤:
[0006] 客户端从服务端获取外挂程序的包名和Activity名;
[0007] 定义数据结构,以存储客户端所有安装包的元信息;
[0008] 将所述的安装包元信息中的包名和Activity名与外挂程序的包名和Activity名 进行匹配;
[0009] 若有匹配,则判断所述匹配信息对应的安装包是否运行;
[0010] 若有运行,则确认所述的安装包为外挂程序。
[0011] 为解决上述问题,本发明还提供一种Android外挂特征检测的系统,包括:
[0012] 获取模块,用于从服务端获取外挂程序的包名和Activity名;
[0013] 元信息模块,用于定义数据结构,以存储客户端所有安装包的元信息;
[0014] 匹配模块,用于将所述的安装包元信息中的包名和Activity名与外挂程序的包 名和Activity名进行匹配;
[0015] 判断模块,用于判断所述匹配信息对应的安装包是否运行;
[0016] 确认模块,用于确认所述安装包为外挂程序。
[0017] 本发明的有益效果在于:区别于现有技术,本发明通过获取外挂程序应用特征信 息,并与本地客户端的安装包进行匹配,判断是否有安装包处于运行状态,若有,则确认为 外挂程序。通过上述方式,本发明可以实现Android游戏的外挂检测,保护游戏的公平性以 及游戏厂商的利益;同时占用系统资源低,在低性能设备上也可以实现。
【附图说明】
[0018] 图1为本发明方法实施例一的流程示意图;
[0019] 图2为本发明方法实施例二的流程示意图;
[0020] 图3为本发明系统实施例三的结构框图;
[0021] 图4为本发明系统实施例四的结构框图。
【具体实施方式】
[0022] 为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附 图予以说明。
[0023] 本发明最关键的构思在于:获取外挂程序应用特征信息,并与客户端上的在安装 包进行匹配,若有运行则认定为外挂程序。
[0024] 请参照图1,本发明实施例一提供一种Android外挂特征检测的方法,包括如下步 骤:
[0025] Sl :客户端从服务端获取外挂程序的包名和Activity名;
[0026] S2 :定义数据结构,以存储客户端所有安装包的元信息;
[0027] S3 :将所述的安装包元信息中的包名和Activity名与外挂程序的包名和 Activity名进行匹配;
[0028] S4 :若有匹配,则判断所述匹配信息对应的安装包是否运行;
[0029] S5 :若有运行,则确认所述的安装包为外挂程序。
[0030] 具体地,本发明实施例一分析当前客户端(或本地)已安装的应用信息,提取应用 特征,匹配外挂特征的检测方式。
[0031] 由于每个Android应用程序都具有一个清单文件,此文件描述了一个应用的配置 信息(即元信息),采集这些信息,提取出应用特征,使之和已收集的游戏外挂应用特征信 息作匹配,以此来确定游戏外挂。
[0032] 其次,Android清单文件在应用安装进设备后很难再变化,只有在应用升级时会发 生变化,但是应用升级的频率一般不会很高,而且应用升级后可以及时重新采集特征信息, 这些信息保存在云端,可以做到方便快捷的更新。
[0033] 在获取配置信息后,与外观程序(或恶意软件)的应用特征信息进行对比,若发现 匹配且在运行状态,则认定含有该元信息的安装包为外挂程序。
[0034] -般的,在一个应用被发布之后,应用的包名是固定的,虽然不是唯一的,但同一 个客户端上不能同时安装两个包名相同的应用,同时使用包名和Acitvity名几乎可以确 定一个应用,所以使用这两个特征作为应用特征信息。
[0035] 其中,包名是android应用程序的一个特征,一个应用程序除了有名字还有一个 包名,名字在不同语言下可能显示不同,比如在中文下显示"音乐播放器",在英文下可能显 示的是"Music player",但是包名是确定的,如"com. nd. musicplayer"。包名是所有应用 都具有的,一般应用上传到应用商城也是通过包名和签名来授权的,所以一个应用发布后, 包名很难再改变,改变了包名就需要重新授权。
[0036] Activity是android中一种用来和用户交互的组件,简单地说,就是用户界面,每 个应用程序都必须具有至少一个Activity,这个Activity是入口界面,就是点开应用时第 一个看到的界面,这个界面也具有一个名字,通过同时检测包名和Activity名可以在很大 程度上减少误判。
[0037] 比如烧饼加速外挂的包名是:org. sbtools. gamespeed
[0038] 可以采集几个特殊的Activity名分别是:
[0039] I. org. sbtools. gamespeed. main. MainActivity
[0040] 2. org. sbtools. gamespeed. main. NoifyUserDialogActivity
[0041] 3. org. sbtools. gamespeed. main. UserActivity
[0042] 在实际检测时,通过组合使用上述包名及Activity作为特征,几乎不会发生误 判。
[0043] 通过上述两个应用特征本质上确定的是应用程序是合法的。而德国Avira公司的 Avira AntiVirv杀毒软件使用类名的一部分作为特征检测手机应用是否包含广告和恶意 代码,具有很大的误判率。相反,使用包名和Activity名这两个应用特征信息时,由于在用 户命名时具有很大的随机性,而且同时组合使用,因此用此二者信息来进行检测外挂程序, 误判率很低。
[0044] 区别于现有技术,本发明实施例一通过获取外挂程序应用特征信息,并与本地客 户端的安装包进行匹配,判断是否有安装包处于运行状态,若有,则确认为外挂程序。通过 上述方式,本发明可以实现Android游戏的外挂检测,保护游戏的公平性以及游戏厂商的 利益;同时占用系统资源低,在低性能设备上也可以实现。
[0045] 如图2所示,在实施例一的基础上,本发明实施例二的步骤Sl具体为:
[0046] Sll :在云端服务器储存外挂程序的包名和Activity名;
[0047] S12 :启动客户端,通过http协议获取所述外挂程序的包名和Activity名;
[0048] S13 :客户端缓存所述外挂程序的包名和Activity名在本地服务器上。
[0049] 外挂程序(或恶意软件)的应用特征信息存储在云端服务器上,客户端定期(如 每天)第一次启动后,通过http协议获取该信息,并缓存在本地数据库上。
[0050] 然后再定义数据结构,用于存储客户端所有安装包的元信息;具体如下所示:
[0051] Class Packagelnfo { String packageName; /Z存储包名
[0052] String I」st<Si:ring> activitys;//存储包的所有 Activity 名 }
[0053] 并在程序启动后,分析当前所有安装包的元信息结构,生成已安装包元信息列表, 并保存,如保存进List〈PackageInfo>installed Packages。其中该列表是一种常用数据结 构,检测到的所有安装包元信息每条对应列表中的一项,列表本身是在内存中,每次启动时 都执行一次,用列表储存是为了方便之后对这个列表进行遍历,比较列表中的每一条是否 匹配外挂程
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1