CN105760196A - 插件化外挂程序的检测方法及系统 - Google Patents

插件化外挂程序的检测方法及系统 Download PDF

Info

Publication number
CN105760196A
CN105760196A CN201610090757.3A CN201610090757A CN105760196A CN 105760196 A CN105760196 A CN 105760196A CN 201610090757 A CN201610090757 A CN 201610090757A CN 105760196 A CN105760196 A CN 105760196A
Authority
CN
China
Prior art keywords
storehouse
plug
function
jar bag
jar
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
Application number
CN201610090757.3A
Other languages
English (en)
Other versions
CN105760196B (zh
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.)
Fujian TQ Digital Co Ltd
Original Assignee
Fujian TQ Digital 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 Fujian TQ Digital Co Ltd filed Critical Fujian TQ Digital Co Ltd
Priority to CN201610090757.3A priority Critical patent/CN105760196B/zh
Publication of CN105760196A publication Critical patent/CN105760196A/zh
Application granted granted Critical
Publication of CN105760196B publication Critical patent/CN105760196B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种插件化外挂程序的检测方法及系统,包括:从服务器上获取配置文件、jar包和/或so库,并存储在客户端上;解析所述配置文件,获取对应于jar包及so库的自定义接口函数;根据所述自定义接口函数,动态加载并运行jar包和/或so库,以检测外挂程序。通过上述方式,本发明可以实现实时更新,且更新的文件较小,减少用户的流量,提高用户体验度。

Description

插件化外挂程序的检测方法及系统
技术领域
本发明涉及Android技术领域,尤其是涉及一种插件化外挂程序的检测方法及系统。
背景技术
目前的外挂检测方法都是通过提供so库或者jar包让游戏调用,这种形式的话,更新比较麻烦,如果有新的外挂出现,而原来的外挂检测方法,检测不到,则需要更新整个游戏的程序,游戏程序都是100M以上,比较大。
现有专利(申请号:201310317921.6)公开了基于Android的应用插件化实现方案,主要应用于开发插件化形式的Android应用程序,Android应用插件化,将非核心功能与主程序分离,减小主程序的体积和资源消耗;可动态配置Android应用程序的插件,包括配置插件和插件版本;插件用于扩展Android应用的功能,通过服务器提供的插件列表,动态更新插件;插件版本,用于对比插件的当前版本和最新版本,当发现插件的当前版本旧于最新版本时,Android应用可选择更新插件。该专利主要实现插件化形式的Android应用程序的开发,可根据插件列表,动态地更新插件;却无法实现外挂检测插件so库或jar包的更新。
发明内容
本发明所要解决的技术问题是:提供基于插件化的外挂检测方案,只需更需外挂检测的so库及jar包文件,即可实现,可大大提高用户体验。
为了解决上述技术问题,本发明采用的技术方案为:提供一种插件化外挂程序的检测方法,包括:
从服务器上获取配置文件、jar包和/或so库,并存储在客户端上;
解析所述配置文件,获取对应于jar包及so库的自定义接口函数;
根据所述自定义接口函数,动态加载并运行jar包和/或so库,以检测外挂程序。
为了解决上述技术问题,本发明采用的技术方案为:提供一种插件化外挂程序的检测系统,包括:
获取存储模块,用于从服务器上获取配置文件、jar包和/或so库,并存储在客户端上;
解析结果模块,用于解析所述配置文件,获取对应于jar包及so库的自定义接口函数;
加载运行模块,用于根据所述接口函数,动态加载并运行jar包和/或so库,以检测外挂程序。
本发明的有益效果在于:区别于现有技术,本发明的客户端从服务器上获取配置文件、jar包和/或so库;解析所述配置文件,获取对应于jar包及so库的自定义接口函数;根据所述接口函数,动态加载并运行jar包和/或so库,以检测外挂程序。通过上述方式,本发明可以实现实时更新,且更新的文件较小,减少用户的流量,提高用户体验度。
附图说明
图1为本发明方法实施例一的流程示意图;
图2为本发明方法实施例一的简易流程示意图;
图3为本发明方法具体实施例的流程示意图;
图4为本发明系统实施例二的结构示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:获取并解析配置文件,从而获取so库及jar包文件的入口参数,并对应加载运行so库及jar包,实现外挂程序的检测。
请参照图1及图2所示,本发明实施例一提供一种插件化外挂程序的检测方法,包括:
S1:从服务器上获取配置文件、jar包和/或so库,并存储在客户端上;
S2:解析所述配置文件,获取对应于jar包及so库的自定义接口函数;
S3:根据所述自定义接口函数,动态加载并运行jar包和/或so库,以检测外挂程序。
如图3所示,具体地,客户端需要从服务器上更新或新增最新的jar包和so库,而在具体实施例中,客户端检测是否需要更新下载jar包或so库文件,若有必要更新,再进行下载,可减少不必要的下载时间,并可节省流量。
客户端可在下载最新的jar包和so库的同时或之前,下载配置文件,配置文件通常为json格式,其包含的内容包括但不限于:是否有so库;类名、函数名、返回值、函数的参数等。
由于so库及jar包都是特定一类程序的集合库,供其他程序调用,因此解析该配置文件,可获取对应于jar包及so库的自定义接口函数,其中interface数组定义jar包和/或so库的相应接口说明,所述接口说明包括类名、函数名及函数参数;根据interface数组顺序调用jar包和/或so库的自定义接口函数。So库、jar包和配置文件是相适配的,如果配置文件里描述的类名、方法名在so库或者jar包里不存在的话,则程序会报错。
具体地,在一个具体实施例中,isSOToJAR这个参数用于判断是否需要主程序直接加载so库,
(1)如果需要主程序直接加载so库,则interface数组定义了so库对应的相关接口说明(如返回值、参数、函数名等),数组的顺序就是相应接口调用的顺序,通过interface的说明顺序加载so中的函数。
(2)如果不需要主程序加载so库,则主程序通过DexClassLoader加载jar包,则interface数组对应的则是jar包调用的入口(如包名、类名、函数名、回调函数等),并通过interface说明调用外挂检测方法。
此外,soPath这个参数用来指定so库的存储位置及路径。
主程序加载外挂检测插件,通过解析配置文件后,确定入口函数,即确定主程序到底是加载jar包还是so库,而事实上,还可以同时加载jar包及so库。
当单独加载jar包时,包括以下步骤:
主程序模块在客户端加载jar包,并对jar包的合法性进行校验;主程序模块创建运行环境,并在运行环境中启动jar包解析器,为jar包的运行提供单独的运行环境;主程序通过控制jar包解析器。同上,interface参数通过反射获取对应的类名、函数名、返回值、函数的参数;jar包解析器通过反射调用jar包中的程序及其函数,启动jar包。
当单独加载so库时,包括以下步骤:
主程序模块创建so库运行环境,通过System.load函数将so库加载进程序,通过获得的interface参数获得启动so库对应的方法名,返回值,方法的参数;最后直接调用so库,并启动。
当同时加载so库及jar包时,包括以下步骤;
主程序创建jar包及so库的运行环境,并在运行环境中启动jar包解析器,以及通过System.load函数将so库加载进主程序;通过interface数组,主程序获取so库对应的函数名、返回值及函数参数,以及控制jar包解析器反射获取jar包对应的类名、函数名、返回值及函数参数;jar包解析器调用jar包中的程序及其对应的函数,运行jar包,以及主程序调用so库对应的函数,运行so库。
应当理解的是,jar包解析器是通过DexClassLoader加载jar包,获取jar包中的类和对应的入口函数,并使这些函数和类运行起来。
在实际中,动态加载并运行jar包和/或so库,即可以检测外挂程序。比如要修改app的运行数据时,就需要启动外挂程序,随后外挂程序启动对应的进程。本领域技术人员遍历进程,比对进程名称,检测是否有对应的外挂程序;若存在外挂程序,则进行相应处理。
对应地,如图4所示,本发明实施例二提供一种插件化外挂程序的检测系统100,包括:
获取存储模块110,用于从服务器上获取配置文件、jar包和/或so库,并存储在客户端上;
解析结果模块120,用于解析所述配置文件,获取对应于jar包及so库的自定义接口函数;
加载运行模块130,用于根据所述接口函数,动态加载并运行jar包和/或so库,以检测外挂程序。
其中,还包括检测更新模块140,用于检测是否需要更新下载jar包或so库文件。
具体地,所述解析结果模块120包括:
接口单元,用于interface数组定义jar包和/或so库的相应接口说明;
调用单元,用于根据interface数组顺序调用jar包和/或so库的自定义接口函数。
所述加载运行模块130包括:
环境单元,用于主程序创建jar包和/或so库的运行环境;
加载单元,用于动态加载jar包和/或so库;
函数单元,用于获取jar包和/或so库的对应函数名、返回值及函数参数;
运行单元,用于主程序调用jar包和/或so库对应的函数,运行jar包和/或so库。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种插件化外挂程序的检测方法,其特征在于,包括:
从服务器上获取配置文件、jar包和/或so库,并存储在客户端上;
解析所述配置文件,获取对应于jar包及so库的自定义接口函数;
根据所述自定义接口函数,动态加载并运行jar包和/或so库,以检测外挂程序。
2.根据权利要求1所述插件化外挂程序的检测方法,其特征在于,还包括:
检测是否需要更新下载jar包或so库文件。
3.根据权利要求1所述插件化外挂程序的检测方法,其特征在于,所述获取对应于jar包及so库的自定义接口函数的步骤具体为:
interface数组定义jar包和/或so库的相应接口说明,所述接口说明包括类名、函数名及函数参数;
根据interface数组顺序调用jar包和/或so库的自定义接口函数。
4.根据权利要求3所述插件化外挂程序的检测方法,其特征在于,根据所述自定义接口函数,动态加载并运行jar包和/或so库的步骤具体为:
主程序创建so库的运行环境;
通过System.load函数将so库加载进主程序;
通过interface数组获取so库对应的函数名、返回值及函数参数;
主程序调用so库对应的函数,运行so库。
5.根据权利要求3所述插件化外挂程序的检测方法,其特征在于,根据所述自定义接口函数,动态加载并运行jar包和/或so库的步骤具体为:
在客户端上加载jar包,并校验jar包的合法性;
主程序创建jar包的运行环境,并在运行环境中启动jar包解析器;
通过interface数组,主程序控制jar包解析器反射获取jar包对应的类名、函数名、返回值及函数参数;
jar包解析器调用jar包中的程序及其对应的函数,运行jar包。
6.根据权利要求3所述插件化外挂程序的检测方法,其特征在于,根据所述自定义接口函数,主程序加载并运行jar包和/或so库的步骤具体为:
在客户端上加载jar包及so库;
主程序创建jar包及so库的运行环境,并在运行环境中启动jar包解析器,以及通过System.load函数将so库加载进主程序;
通过interface数组,主程序获取so库对应的函数名、返回值及函数参数,以及控制jar包解析器反射获取jar包对应的类名、函数名、返回值及函数参数;
jar包解析器调用jar包中的程序及其对应的函数,运行jar包,以及主程序调用so库对应的函数,运行so库。
7.一种插件化外挂程序的检测系统,其特征在于,包括:
获取存储模块,用于从服务器上获取配置文件、jar包和/或so库,并存储在客户端上;
解析结果模块,用于解析所述配置文件,获取对应于jar包及so库的自定义接口函数;
加载运行模块,用于根据所述接口函数,动态加载并运行jar包和/或so库,以检测外挂程序。
8.根据权利要求7所述插件化外挂程序的检测系统,其特征在于,还包括:
检测更新模块,用于检测是否需要更新下载jar包或so库文件。
9.根据权利要求7所述插件化外挂程序的检测系统,其特征在于,所述解析结果模块包括:
接口单元,用于interface数组定义jar包和/或so库的相应接口说明;
调用单元,用于根据interface数组顺序调用jar包和/或so库的自定义接口函数。
10.根据权利要求7所述插件化外挂程序的检测系统,其特征在于,所述加载运行模块包括:
环境单元,用于主程序创建jar包和/或so库的运行环境;
加载单元,用于动态加载jar包和/或so库;
函数单元,用于获取jar包和/或so库的对应函数名、返回值及函数参数;
运行单元,用于主程序调用jar包和/或so库对应的函数,运行jar包和/或so库。
CN201610090757.3A 2016-02-18 2016-02-18 插件化外挂程序的检测方法及系统 Active CN105760196B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610090757.3A CN105760196B (zh) 2016-02-18 2016-02-18 插件化外挂程序的检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610090757.3A CN105760196B (zh) 2016-02-18 2016-02-18 插件化外挂程序的检测方法及系统

Publications (2)

Publication Number Publication Date
CN105760196A true CN105760196A (zh) 2016-07-13
CN105760196B CN105760196B (zh) 2019-04-30

Family

ID=56330897

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610090757.3A Active CN105760196B (zh) 2016-02-18 2016-02-18 插件化外挂程序的检测方法及系统

Country Status (1)

Country Link
CN (1) CN105760196B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106362401A (zh) * 2016-09-19 2017-02-01 武汉斗鱼网络科技有限公司 一种提高游戏程序运行安全的方法及系统
CN106484467A (zh) * 2016-09-22 2017-03-08 浪潮软件集团有限公司 一种java加载jar包里面动态库的方法
CN108037928A (zh) * 2017-12-13 2018-05-15 北京小米移动软件有限公司 软件开发包工具sdk检测方法及装置
CN108595337A (zh) * 2018-05-07 2018-09-28 杭州有赞科技有限公司 一种Jar包的运行方法及系统
CN109542494A (zh) * 2018-10-19 2019-03-29 福建天泉教育科技有限公司 一种vr软件外设的扩展控制方法及终端
CN111475193A (zh) * 2020-06-04 2020-07-31 成都安易迅科技有限公司 一种插件的动态更新方法、装置,电子设备及存储介质
CN112328222A (zh) * 2020-11-26 2021-02-05 天津市鑫联兴科技有限公司 一种动态流程服务接口方法及动态流程服务接口引擎

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188520A (zh) * 2007-11-06 2008-05-28 北京航空航天大学 基于配置策略的电信领域遗留系统集成工具
CN103166806A (zh) * 2011-12-14 2013-06-19 腾讯科技(深圳)有限公司 第三方应用的外挂程序检测方法和系统
CN104424002A (zh) * 2013-09-10 2015-03-18 中国科学院声学研究所 一种基于插件机制的动态加载组件方法和系统
CN105183445A (zh) * 2015-07-10 2015-12-23 珠海金山网络游戏科技有限公司 一种基于xml的游戏人工智能的可视化设计系统
CN105204871A (zh) * 2015-10-30 2015-12-30 亚信科技(南京)有限公司 一种插件式开发方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188520A (zh) * 2007-11-06 2008-05-28 北京航空航天大学 基于配置策略的电信领域遗留系统集成工具
CN103166806A (zh) * 2011-12-14 2013-06-19 腾讯科技(深圳)有限公司 第三方应用的外挂程序检测方法和系统
CN104424002A (zh) * 2013-09-10 2015-03-18 中国科学院声学研究所 一种基于插件机制的动态加载组件方法和系统
CN105183445A (zh) * 2015-07-10 2015-12-23 珠海金山网络游戏科技有限公司 一种基于xml的游戏人工智能的可视化设计系统
CN105204871A (zh) * 2015-10-30 2015-12-30 亚信科技(南京)有限公司 一种插件式开发方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DENNYLAI: "插件式反外挂的设计", 《GAD.QQ.COM/ARTICLE/DETAIL/15015》 *
悦峰: "System.load和System.loadLibrary详解", 《HTTPS://BLOG.CSDN.NET/RING0HX/ARTICLE/DETAILS/3242245》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106362401A (zh) * 2016-09-19 2017-02-01 武汉斗鱼网络科技有限公司 一种提高游戏程序运行安全的方法及系统
CN106484467A (zh) * 2016-09-22 2017-03-08 浪潮软件集团有限公司 一种java加载jar包里面动态库的方法
CN108037928A (zh) * 2017-12-13 2018-05-15 北京小米移动软件有限公司 软件开发包工具sdk检测方法及装置
CN108595337A (zh) * 2018-05-07 2018-09-28 杭州有赞科技有限公司 一种Jar包的运行方法及系统
CN109542494A (zh) * 2018-10-19 2019-03-29 福建天泉教育科技有限公司 一种vr软件外设的扩展控制方法及终端
CN109542494B (zh) * 2018-10-19 2021-11-05 福建天泉教育科技有限公司 一种vr软件外设的扩展控制方法及终端
CN111475193A (zh) * 2020-06-04 2020-07-31 成都安易迅科技有限公司 一种插件的动态更新方法、装置,电子设备及存储介质
CN112328222A (zh) * 2020-11-26 2021-02-05 天津市鑫联兴科技有限公司 一种动态流程服务接口方法及动态流程服务接口引擎

Also Published As

Publication number Publication date
CN105760196B (zh) 2019-04-30

Similar Documents

Publication Publication Date Title
CN105760196A (zh) 插件化外挂程序的检测方法及系统
CN105389222B (zh) 一种动态调用原生接口的方法、装置和系统
CN103491111B (zh) 无线应用发布、实现方法与装置
CN103259936B (zh) 移动终端操作系统升级方法及其装置
CN108228810B (zh) 表单联动配置方法和系统以及表单更新方法和系统
CN104699511B (zh) 插件升级方法及装置
CN106293696B (zh) 显示应用程序下载安装状态的方法及其对应装置
EP2864872B1 (en) Automatic provisioning of a software platform to a device ecosystem
CN106325847B (zh) 基于iOS平台获取应用程序功能的方法和装置
CN106331135B (zh) 一种部分界面更新方法、系统、客户端和服务端
CN105487905A (zh) 一种混合应用的更新方法和装置
US10057645B2 (en) Set top box upgrade method and apparatus
CN108874437B (zh) 一种android应用程序的在线云更新方法
CN103646081B (zh) 一种在网页中进行登录的方法和装置
CN110390043A (zh) 网页邮箱数据的爬取方法、装置、终端和存储介质
CN108089873A (zh) 一种应用组件即时更新的方法及终端
US20240146650A1 (en) Creating endpoints
CN110765394A (zh) so文件加载方法、装置、存储介质及终端设备
CN104765624A (zh) 虚拟机应用程序的更新处理方法和装置
CN108107792B (zh) Lua脚本的加载方法、终端及计算机可读存储介质
CN111597783B (zh) 一种电子表单中数据元联动配置方法、配置系统、更新系统和更新方法
CN105959280B (zh) 恶意网址的拦截方法及装置
CN103902312B (zh) 一种应用程序的发送方法及装置
CN109144692A (zh) 一种用于分配进程的方法、装置及终端
CN106708737B (zh) 一种测试方法及装置

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