首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 系统软件 / 操作系统 / 进程 / 采集Android外挂程序方法及系统

采集Android外挂程序方法及系统

阅读:494发布:2024-01-04

专利汇可以提供采集Android外挂程序方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种采集Android外挂程序的方法及系统,其中方法包括:启动程序,获取当前 进程 的动态库信息,记录在预设的记录文件中,并生成第一列表;再次启动程序,获取当前进程的动态库信息,生成第二列表,并存储在所述记录文件中;比较所述第一列表及第二列表中的动态库信息,生成第三列表;上传所述第三列表到服务端;服务端在确认所述第三列表中的可疑动态库信息为外挂程序后,加入外挂程序黑名单中。通过上述方式,本发明能够检测到外挂程序,并上报。起到采集外挂程序,丰富外挂特征库的功能。,下面是采集Android外挂程序方法及系统专利的具体信息内容。

1.一种采集Android外挂程序的方法,其特征在于,包括:
启动程序,获取当前进程的动态库信息,记录在预设的记录文件中,并生成第一列表;
再次启动程序,获取当前进程的动态库信息,生成第二列表,并存储在所述记录文件中;并实时更新所述第一列表的动态库信息为第二列表的动态库信息;
比较所述实时更新前的第一列表及所述第二列表中的动态库信息,生成第三列表;
上传所述第三列表到服务端;
服务端在确认所述第三列表中的可疑动态库信息为外挂程序后,加入外挂程序黑名单中;
其中,比较所述第一列表及第二列表中的动态库信息,生成第三列表具体为:
写入所述第二列表到所述记录文件中;
判断所述第一列表是否为空;
若是,则结束程序;
反之,则计算所述第一列表及第二列表中的差,生成第三列表。
2.根据权利要求1所述采集Android外挂程序的方法,其特征在于,计算所述第一列表及第二列表中的差,生成第三列表之后,还包括:
判断所述第三列表是否为空;
若是,则结束程序;
反之,则确认所述第三列表中的动态库信息为可疑动态库信息。
3.根据权利要求1所述采集Android外挂程序的方法,其特征在于,服务端在确认所述第三列表中的可疑动态库信息为外挂程序后,加入外挂程序黑名单中具体为:
服务端判断所述可疑动态库信息是否为外挂程序;
若是,则将所述可疑动态库信息列入外挂程序黑名单中;
反之,则结束程序。
4.一种采集Android外挂程序的系统,其特征在于,包括:
第一列表模,用于启动程序,获取当前进程的动态库信息,记录在预设的记录文件中,并生成第一列表;
第二列表模块,用于再次启动程序,获取当前进程的动态库信息,生成第二列表,并存储在所述记录文件中;所述第二列表模块还包括:
更新单元,用于实时更新所述第一列表的动态库信息为第二列表的动态库信息;
第三列表模块,用于比较所述实时更新前的第一列表及所述第二列表中的动态库信息,生成第三列表;
上传模块,用于上传所述第三列表到服务端;
结果模块,用于服务端在确认所述第三列表中的可疑动态库信息为外挂程序后,加入外挂程序黑名单中;所述第三列表模块还包括:
写入单元,用于写入所述第二列表到所述记录文件中;
第一判断单元,用于判断所述第一列表是否为空;
计算单元,用于计算所述第一列表及第二列表中的差,生成第三列表。
5.根据权利要求4所述采集Android外挂程序的系统,其特征在于,所述第三列表模块还包括:
第二判断单元,用于判断所述第三列表是否为空;
确认单元,用于确认所述第三列表中的动态库信息为可疑动态库信息。
6.根据权利要求4所述采集Android外挂程序的系统,其特征在于,所述结果模块还包括:
第三判断单元,用于服务端判断所述可疑动态库信息是否为外挂程序;
列表单元,用于将所述可疑动态库信息列入外挂程序黑名单中。

说明书全文

采集Android外挂程序方法及系统

技术领域

[0001] 本发明涉及Android技术领域,尤其是涉及一种采集Android外挂程序的方法及系统。

背景技术

[0002] 当前Android手机游戏非常流行,于是衍生出一批以修改Android游戏的行为或数据为主要功能的应用,这些应用破坏了游戏的公平性、安全性和侵害了厂家的利益。对于已知的恶意应用可以通过恶意特征库的方式进行检测,对于未知的恶意应用可以通过判断应用行为的方式来检测,恶意应用通过不断更新避免被发现的行为特征来进行反检测,检测和反检测形成对抗,通过不断更新更多的检测方式来加强检测恶意应用。
[0003] 现有专利(申请号:201410067209.X)公开了一种外挂程序的鉴定方法、服务器和系统,该专利通过操作环境信息获取程序样本行为序列,以此判断外挂的方法,同时也没有公开提取外挂样本的方法。此外,从模耦合度来看,该专利的外挂检测模块易被黑客分析并攻击,安全性低。

发明内容

[0004] 本发明所要解决的技术问题是:通过在Android系统中,比较动态库信息的变化,并将动态库信息的差发送到服务端做进一步判断,以确认采集外挂程序,保护游戏厂商的利益,促进公平。
[0005] 为了解决上述技术问题,本发明采用的技术方案为:提供一种采集Android 外挂程序的方法,包括如下步骤:
[0006] S1:启动程序,获取当前进程的动态库信息,记录在预设的记录文件中,并生成第一列表;
[0007] S2:再次启动程序,获取当前进程的动态库信息,生成第二列表,并存储在所述记录文件中;
[0008] S3:比较所述第一列表及第二列表中的动态库信息,生成第三列表;
[0009] S4:上传所述第三列表到服务端;
[0010] S5:服务端在确认所述第三列表中的可疑动态库信息为外挂程序后,加入外挂程序黑名单中。
[0011] 为解决上述问题,本发明提供一种采集Android外挂程序的系统,包括:
[0012] 第一列表模块,用于启动程序,获取当前进程的动态库信息,记录在预设的记录文件中,并生成第一列表;
[0013] 第二列表模块,用于再次启动程序,获取当前进程的动态库信息,生成第二列表,并存储在所述记录文件中;
[0014] 第三列表模块,用于比较所述第一列表及第二列表中的动态库信息,生成第三列表;
[0015] 上传模块,用于上传所述第三列表到服务端;
[0016] 结果模块,用于服务端在确认所述第三列表中的可疑动态库信息为外挂程序后,加入外挂程序黑名单中。
[0017] 本发明的有益效果在于:区别于现有技术,本发明通过前后两次获取动态库信息列表,并经过差运算,将获得的第三列表发送到服务端做进一步的判断,以采集外挂程序。通过上述方式,本发明可以检测到外挂程序,并上报。起到采集外挂程序,丰富外挂特征库的功能。
附图说明
[0018] 图1为本发明方法实施例一的流程示意图;
[0019] 图2为本发明方法实施例二的流程示意图;
[0020] 图3为本发明系统实施例三的结构框图
[0021] 图4为本发明系统实施例四的结构框图。

具体实施方式

[0022] 为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0023] 本发明最关键的构思在于:前后两次获取动态库信息,并比较,将可疑动态库信息发送到服务端进行判断,以实现采集功能。
[0024] 请参照图1,本发明实施例一提供一种采集Android外挂程序的方法,包括如下步骤:
[0025] S1:启动程序,获取当前进程的动态库信息,记录在预设的记录文件中,并生成第一列表;
[0026] S2:再次启动程序,获取当前进程的动态库信息,生成第二列表,并存储在所述记录文件中;
[0027] S3:比较所述第一列表及第二列表中的动态库信息,生成第三列表;
[0028] S4:上传所述第三列表到服务端;
[0029] S5:服务端在确认所述第三列表中的可疑动态库信息为外挂程序后,加入外挂程序黑名单中。
[0030] 应当理解的是,Linux内核提供一种机制,可以用来检测当前进程加载的动态库,当外挂程序hook(劫持函数调用)目标进程的函数时,需要注入动态库到目标进程,所以可以通过判断当前进程加载的动态库是否发生变化来判断是否被注入了,Android系统是基于Linux内核的。
[0031] 一般外挂程序主要包含两部分,一部分是主程序,主要作为可执行文件存在,另一部分是动态库,在windows上通常是.dll后缀,在Linux上是.so后缀,包含所有要劫持的函数,当外挂程序劫持目标程序的某个函数时,需要通过主程序打开目标进程,搜索要劫持的函数地址,然后使用外挂程序动态库中的函数替换目标函数,为了在一个进程中替换另一个文件的函数,此文件需要为注入到这个进程中,并且这个文件通常是动态库文件。
[0032] 当应用正常启动和通过外挂启动时,进程加载的动态库是不一样的,但是在无法判断当前应用是正常启动还是通过外挂启动时,所以只能通过别的方式。
[0033] 程序启动后记录当前加载的所有动态库进文件,保存在文件系统上,当程序下一次启动时和上一次记录的动态库文件做比较,并更新动态库文件为这一次启动时的动态库,当比较发现不一致时,排除一致的动态库,剩下的就是可疑动态库,上报这些可疑动态库到服务端,服务端管理员进一步判断是否外挂,确定是外挂后加入动态库黑名单,使用黑名单技术检测外挂。这样,只要应用有一次是正常启动,下次在通过外挂启动时就会被检测到。
[0034] 即使是第一次通过外挂程序启动,第二次为正常启动也可比较出来外挂程序,这是因为第二次正常启动时所有动态库都会出现第一次记录的动态库中(第一次除了包含恶意注入的动态库,还包含所有正常的动态库),所以,将第二次的列表减上次记录的列表结果为空(反过来减则剩下的就是可疑动态库)。减出的结果为空判断为正常,不会存在误判问题。
[0035] 通常情况下,只有恶意程序才会注入别的进程,检测到被注入就可以判定为恶意软件,直接加入黑名单,服务端管理员也可以根据上报的信息获取完整程序,对完整程序做进一步人工分析程序行为等进一步处理。
[0036] 区别于现有技术,本发明实施例一通过前后两次获取动态库信息列表,并经过差运算,将获得的第三列表发送到服务端做进一步的判断,以采集外挂程序。通过上述方式,本发明通过两次比较判断加载动态库的变化检测恶意应用的注入行为,可以检测到目前大多数注入外挂,上报检测到的恶意动态库到服务端进一步判断是否恶意程序,并结合反外挂特征库形成更好的恶意应用检测方式,并起到采集恶意应用、丰富反外挂特征库的功能。
[0037] 如图2所示,在实施例一的基础上,本发明实施例二的步骤S3具体为:
[0038] S31:写入所述第二列表到所述记录文件中;
[0039] S32:判断所述第一列表是否为空;
[0040] 若是,则执行S6:结束程序;
[0041] 反之,则执行S33:计算所述第一列表及第二列表中的差,生成第三列表。
[0042] 其中,步骤S33之后,还包括:
[0043] S34:判断所述第三列表是否为空;
[0044] 若是,则执行S6;
[0045] 反之,则执行S35:确认所述第三列表中的动态库信息为可疑动态库信息。
[0046] 其中,步骤S5具体为:
[0047] S51:服务端判断所述可疑动态库信息是否为外挂程序;
[0048] 若是,则执行S52:将所述可疑动态库信息列入外挂程序黑名单中;
[0049] 反之,则执行S6。
[0050] 其中,步骤S2之后,还包括:
[0051] S21:实时更新所述第一列表的动态库信息为第二列表的动态库信息。
[0052] 步骤S21是在获取第二列表后,需要将第二列表替换第一列表,以方便下次继续进行比较,而在下次的比较过程中,则是获取的第三列表(不是上述的第三列表)与第二列表进行比较,以获取其差的第四列表;并进行更新。
[0053] 具体地,Android是基于Linux内核的,Linux内核提供proc文件系统导出系统运行时信息,根据proc导出的信息可以读取到当前进程加载的所有动态库文件,这些信息导出在/proc/{self}/smaps文件中(其中{self}等于当前进程的进程id),可以从这个文件中取到此次进程的动态库信息。
[0054] 其中,proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc 文件系统是动态从系统内核读出所需信息并提交的。
[0055] 整个过程如下:
[0056] 从文件F(即记录文件)中读取上次记录的动态库信息到列表A(第一列表),没有则返回空,第一次启动可没有文件F,或自动生成空文件F;
[0057] 读取/proc/{self}/smaps生成当前进程的动态库信息进列表B(第二列表);
[0058] 写入列表B到文件F,求出列表B和列表A的差到列表R(第三列表);
[0059] 如果列表R不为空,则上报到服务端,并结束整个流程。
[0060] 如果列表R为空,则直接结束整个流程。
[0061] 在列表R上传到服务端后,这时服务端管理员可进一步分析客户端上报的可疑动态库,如果确定可疑动态库确实属于外挂程序的,则可以把这个动态库和相关外挂程序信息采集到特征加入的反外挂特征库中,使用反外挂特征库或黑名单技术可以进行精确检测外挂。
[0062] 为方便理解上述方法,本发明通过一个具体的实施例进行详细阐述:
[0063] 如叉叉加速器是android下一种加速外挂,分两种情况做如下测试;
[0064] 第一种情况:
[0065] 第一次启动:正常启动测试程序,记录当前动态库(由于动态库信息太多,本发明的具体实施例不一一列举);
[0066] 第二次启动:正常启动测试程序,对比上一次记录的动态库文件,发现完全一致,表示没有检测到外挂。
[0067] 第三次启动:通过外挂启动程序,对比上一次记录的动态库文件,发现多出几个动态库,判断为可疑库检测出外挂。
[0068] 第二种情况:
[0069] 第一次启动:通过外挂启动测试程序,记录当前动态库(由于动态库信息太多,本发明的具体实施例不一一列举);
[0070] 第二次启动:正常启动测试程序,和上一次比较,没有发现比上次多处动态库,判断为没有外挂;
[0071] 第三次启动:通过外挂启动程序,对比上一次记录的动态库文件,发现多出几个动态库,判断为可疑库检测出外挂。
[0072] 可以看出,只要有发生正常启动和通过外挂启动这种启动顺序就能够检测出外挂程序。
[0073] 叉叉加速器检测出的可疑动态库如下:
[0074] /data/data/com.xxAssistant/lib/libxxghost.so
[0075] /data/data/com.xxAssistant/lib/libxxspeedmanager.so
[0076] /data/data/com.xxAssistant/lib/libxxdvm.so
[0077] /data/data/com.xxAssistant/lib/libsubstrate.so
[0078] /data/data/com.xxAssistant/lib/libxxAndroidLoader.so。
[0079] 区别于现有技术,本发明实施例二通过前后两次获取动态库信息列表,并经过差运算,将获得的第三列表发送到服务端做进一步的判断,以采集外挂程序。通过上述方式,本发明可以检测到外挂程序,并上报,起到采集外挂程序,丰富外挂特征库的功能。
[0080] 如图3所示,本发明实施例三提供一种采集Android外挂程序的系统100,包括:
[0081] 第一列表模块110,用于启动程序,获取当前进程的动态库信息,记录在预设的记录文件中,并生成第一列表;
[0082] 第二列表模块120,用于再次启动程序,获取当前进程的动态库信息,生成第二列表,并存储在所述记录文件中;
[0083] 第三列表模块130,用于比较所述第一列表及第二列表中的动态库信息,生成第三列表;
[0084] 上传模块140,用于上传所述第三列表到服务端;
[0085] 结果模块150,用于服务端在确认所述第三列表中的可疑动态库信息为外挂程序后,加入外挂程序黑名单中。
[0086] 如图4所示,本发明实施例四中所述第三列表模块130还包括:
[0087] 写入单元131,用于写入所述第二列表到所述记录文件中;
[0088] 第一判断单元132,用于判断所述第一列表是否为空;
[0089] 计算单元133,用于计算所述第一列表及第二列表中的差,生成第三列表。
[0090] 其中,所述第三列表模块130还包括:
[0091] 第二判断单元134,用于判断所述第三列表是否为空;
[0092] 确认单元135,用于确认所述第三列表中的动态库信息为可疑动态库信息。
[0093] 其中,所述结果模块150还包括:
[0094] 第三判断单元151,用于服务端判断所述可疑动态库信息是否为外挂程序;
[0095] 列表单元152,用于将所述可疑动态库信息列入外挂程序黑名单中。
[0096] 其中,所述第二列表模块120还包括:
[0097] 更新单元121,用于实时更新所述第一列表的动态库信息为第二列表的动态库信息,
[0098] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈