CN111523097B - 基于安卓***的app刷子用户识别方法、设备及存储介质 - Google Patents
基于安卓***的app刷子用户识别方法、设备及存储介质 Download PDFInfo
- Publication number
- CN111523097B CN111523097B CN202010273755.4A CN202010273755A CN111523097B CN 111523097 B CN111523097 B CN 111523097B CN 202010273755 A CN202010273755 A CN 202010273755A CN 111523097 B CN111523097 B CN 111523097B
- Authority
- CN
- China
- Prior art keywords
- app
- user
- target app
- brush
- virtual container
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000003860 storage Methods 0.000 title claims abstract description 12
- 230000002159 abnormal effect Effects 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 23
- 230000000694 effects Effects 0.000 claims description 22
- 230000001680 brushing effect Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 7
- 238000002513 implantation Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 238000005242 forging Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002147 killing effect Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000007943 implant Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/316—User authentication by observing the pattern of computer usage, e.g. typical user behaviour
-
- 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Social Psychology (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种基于安卓***的APP刷子用户识别方法、设备及存储介质,针对现有的通过检测APP是否运行在模拟器上来识别刷子用户的方法,不能识别用户将APP运行在虚拟容器中,使手机设备变为多个虚拟手机设备,来增加单台手机设备的APP用户数进行刷积分赚钱的问题,通过检测虚拟容器中是否被加入了Xposed框架,及检测APP主线程是否运行在虚拟容器空间来识别刷子用户,防止用户利用虚拟容器使手机设备变为多个虚拟手机设备,以极低的成本增加单台手机设备的APP用户数进行刷积分赚钱。
Description
技术领域
本发明属于防作弊应用的设计领域,尤其涉及一种基于安卓***的APP刷子用户识别方法、设备及存储介质。
背景技术
当前的APP都采用积分制,根据积分的多少,设置等级或奖励。只有达到了相应的积分,才可以成为对应等级的用户享受特定的优惠或得到对应的奖励。通常,想要成为高等级的用户或得到高奖励,需要很多积分,且不容易拿到这些积分。
面对这样的状况,人们就想如何能够轻松快速地得到很多积分呢?就像某宝上刷单一样,人们想到了刷积分,从而产生了在各种APP上刷积分的行为。
为了防止用户刷积分,APP运营商通常在设计用户登录时,会限制一个手机设备最多可以用1个用户进行登录。但是有些用户通过伪造设备唯一标识码来绕过该机制。Android设备的唯一标识,比如IMEI,AndroidId等。
在伪造设备唯一标识码方面,直接使用模拟器是最方便,成本最低的。因此,传统意义上的刷子用户(以刷APP积分赚钱为目的的用户)识别主要是检测APP是否运行在模拟器上。这种技术主要是通过静态特征值识别来确定APP是否运行来模拟器上。如果发现APP运行在模拟器上,则认为该用户行为异常,属于刷子用户。
但是现在很多刷子用户使用的是真实的手机设备,只是他们的APP运行在虚拟容器(主要是多开助手类软件,比如应用双开助手,平行空间,微信双开)中,且这些虚拟容器本身可以很方便的伪造设备唯一标识码,实现一个手机设备变N个虚拟手机设备,从而大大降低作弊和刷分赚钱的成本。
申请号为201810119624.3,名称为《人机识别方法、装置、服务器、客户端及存储介质》的专利申请文件公开了一种基于工作量证明的人机识别方法、装置、服务器、客户端及计算机可读存储介质,其中基于工作量证明的人机识别方法包括:接收来自客户端的通过工作量证明算法生成的结果集以及客户端行为数据,其中,所述结果集包括所述客户端行为数据对应的工作量情况;以及根据所述结果集与所述客户端行为数据进行人机识别。本发明实施例可以用来在app端和网页端防止机器攻击,例如防止机器人发贴、刷积分、发广告贴,同时可以对秒杀抢票行为提供防护,防止机器秒杀产品。
该专利申请文件基于工作量证明来进行人机识别,虽然有防止机器人刷积分的功能,但是它不能识别机器的运行空间,不能识别虚拟容器,也就是说不能防止用户采用多开助手类软件进行刷积分。
发明内容
本发明的目的是提供一种基于安卓***的APP刷子用户识别方法、设备及存储介质,可识别目标APP是否运行在虚拟容器中,防止用户利用虚拟容器刷APP积分赚钱。
为解决上述问题,本发明的技术方案为:
一种基于安卓***的APP刷子用户识别方法,包括:
服务端检测目标APP的运行空间是否被虚拟容器植入了Xposed框架,若是,则判定登录所述目标APP的用户为刷子用户;所述虚拟容器为多开助手类软件,所述刷子用户为以刷APP积分赚钱为目的的用户;
若不是,则检测所述目标APP的主线程是否运行在虚拟容器空间;若是,则判定登录所述目标APP的用户为刷子用户。
根据本发明一实施例,所述步骤S1进一步包括:
S11:在目标APP运行时,载入Xposed框架的特征值;
S12:判断所述Xposed框架的特征值是否载入成功,若是,则判定所述目标APP的运行空间被植入了Xposed框架,登录所述目标APP的用户为刷子用户。
根据本发明一实施例,所述步骤S11进一步包括:
通过ClassLoader载入所述Xposed框架的特征值,所述特征值为所述Xposed框架的核心类de.robv.android.xposed.XposedHelpers。
根据本发明一实施例,所述步骤S2进一步包括:
S21:在所述目标APP的主线程中***一Xposed框架信息查询线程;
S22:检测执行所述Xposed框架信息查询线程时调用栈是否异常,若是,则判定所述目标APP的主线程运行在虚拟容器空间,登录所述目标APP的用户为刷子用户;所述Xposed框架信息查询线程自身的运行不会使调用栈发生异常。
根据本发明一实施例,所述步骤S22进一步包括:
检测调用栈中的android.app.Instrumentation.callActivityOnResume类的上层是否为android.app.Activity.performResume类,若不是,则判定调用栈异常,所述目标APP的主线程运行在虚拟容器空间,登录所述目标APP的用户为刷子用户;
或检测调用栈的根是否为ZygoteInit类,若不是,则判定调用栈异常,所述目标APP的主线程运行在虚拟容器空间,登录所述目标APP的用户为刷子用户。
根据本发明一实施例,所述步骤S21进一步包括:
所述目标APP的主线程为Activity类中的onResume函数。
根据本发明一实施例,所述步骤S1之前还包括:
S0:获取目标APP运行时的签名,进行签名验证;若验证失败,则判定所述目标APP存在异常,登录所述目标APP的用户为刷子用户。
一种基于安卓***的APP刷子用户识别设备,包括:
Xposed框架植入判断模块:用于检测目标APP的运行空间是否被虚拟容器植入了Xposed框架,若是,则判定登录所述目标APP的用户为刷子用户;所述虚拟容器为多开助手类软件;
主线程运行空间检测模块:用于检测所述目标APP的主线程是否运行在虚拟容器空间;若是,则判定登录所述目标APP的用户为刷子用户。
一种电子设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行本发明一实施例中的基于安卓***的APP刷子用户识别方法中的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本发明一实施例中的基于安卓***的APP刷子用户识别方法中的步骤。
本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:
本发明一实施例中的基于安卓***的APP刷子用户识别方法,针对现有的通过检测APP是否运行在模拟器上来识别刷子用户的方法,不能识别用户将APP运行在虚拟容器中,使手机设备变为多个虚拟手机设备,来增加单台手机设备的APP用户数进行刷积分赚钱的问题,本发明通过检测虚拟容器中是否被加入了Xposed框架,及检测APP主线程是否运行在虚拟容器空间来识别刷子用户,防止用户利用虚拟容器使手机设备变为多个虚拟手机设备,来增加单台手机设备的APP用户数进行刷积分赚钱。
附图说明
图1为本发明一实施例中的基于安卓***的APP刷子用户识别方法示意图;
图2为本发明一实施例中的载入Xposed框架的核心类的代码;
图3为本发明一实施例中的***目标APP主线程的函数代码;
图4为本发明一实施例中的基于安卓***的APP刷子用户识别设备的框图。
具体实施方式
以下结合附图和具体实施例对本发明提出的一种基于安卓***的APP刷子用户识别方法、设备及存储介质作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。
实施例一
针对当前APP用户频繁地刷APP积分赚钱的现象,APP运营商一直致力于如何防止这种现象的发生。APP运营商通常在设计用户登录时,会限制一个手机设备最多可以用1个用户进行登录。但是有些用户通过伪造设备唯一标识码来绕过该机制。Android设备的唯一标识,比如IMEI,Android Id等。
在伪造设备唯一标识码方面,直接使用模拟器是最方便,成本最低的。因此,传统意义上的刷子用户(以刷APP积分赚钱为目的的用户)识别主要是检测APP是否运行在模拟器上。这种技术主要是通过静态特征值识别来确定APP是否运行来模拟器上。如果发现APP运行在模拟器上,则认为该用户行为异常,属于刷子用户。
但是现在很多刷子用户使用的是真实的手机设备,只是他们的APP运行在虚拟容器(主要是多开助手类软件,比如应用双开助手,平行空间,微信双开)中,且这些虚拟容器本身可以很方便的伪造设备唯一标识码,实现一个手机设备变N个虚拟手机设备,从而大大降低作弊和刷分赚钱的成本。
通常,多开助手类软件的核心技术是运用了Xposed框架。Xposed框架(XposedFramework)是一套开源的、在Android高权限模式下运行的框架服务,可以在不修改APK文件的情况下影响程序运行(修改***)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
如申请号为201710840372.9,名称为《一种多开应用的优化方法和装置》的专利申请文件公开的多开应用的优化方法包括:当多开应用启动与原生应用对应的分身应用时,将服务框架的预置代码和服务框架插件的预置代码注入到分身应用中;根据与服务框架插件配置界面中输入的配置信息,通过调用注入的服务框架的预置代码和服务框架插件的预置代码,对分身应用中需要调用的与配置信息相关的接口函数代码进行拦截处理,实现按照配置信息更新分身应用的功能。其中,该服务框架为Xposed框架,服务框架插件为Xposed框架插件。由此可以看出,多开应用的实现依赖于Xposed框架其强大的框架服务功能。
因此,可以通过检测目标APP的运行空间是否被虚拟容器植入了Xposed框架或检测目标APP的主线程是否运行在虚拟容器空间,来判断目标APP运行的手机设备是否利用虚拟容器进行多开应用,进而识别登录该目标APP的用户是否为刷子用户。
基于上述原理,本发明提供了一种基于安卓***的APP刷子用户识别方法,请参看图1,其识别方法包括:
S1:服务端检测目标APP的运行空间是否被虚拟容器植入了Xposed框架,若是,则判定登录所述目标APP的用户为刷子用户;所述虚拟容器为多开助手类软件,所述刷子用户为以刷APP积分赚钱为目的的用户;
S2:若不是,则检测所述目标APP的主线程是否运行在虚拟容器空间;若是,则判定登录所述目标APP的用户为刷子用户。
如果步骤S1的检测结果判定为刷子用户,则不用执行步骤S2。如果步骤S1的检测结果判定为不是刷子用户,则执行步骤S2。
具体的,步骤S1进一步包括:
S11:在目标APP运行时,载入Xposed框架的特征值。
可以通过ClassLoader载入所述Xposed框架的特征值。Xposed框架的特征值为Xposed框架的核心类,如de.robv.android.xposed.XposedHelpers类、
本实施例以ClassLoader载入de.robv.android.xposed.XposedHelpers类为例,请参看图2。图中是ClassLoader载入de.robv.android.xposed.XposedHelpers类的代码,一段简短的代码。虽然简短,但是效果很好。如果该de.robv.android.xposed.XposedHelpers类载入成功了,就说明该目标APP的运行空间存在Xposed框架,该目标APP运行在虚拟容器中。也就是步骤S12所述的。
S12:判断所述Xposed框架的特征值是否载入成功,若是,则判定所述目标APP的运行空间被植入了Xposed框架,登录所述目标APP的用户为刷子用户。
上述方法的规则简单,虽然其漏判率可能会高一些,但是其误判率低。
如果上述方法中的Xposed框架的核心类没有载入成功,则执行步骤S2之间的方法。步骤S2进一步包括:
S21:在所述目标APP的主线程中***一Xposed框架信息查询线程。
对于安卓***,APP的主线程如Activity类的onResume函数及onCreate()函数。其中,onResume函数是Activity类的生命周期回调函数,onCreate()函数是Activity类的构造函数。本实施例以目标APP的主线程为Activity类的onResume函数为例,在onResume函数中***一个Xposed框架信息查询线程,该线程具体请参看图3。
该Xposed框架信息查询线程实现遍历整个堆栈查询Xposed框架相关信息的功能。运行该线程的同时,检测调用栈是否异常,一方面,若查询到Xposed框架的相关信息,就可判定该目标APP运行在虚拟容器空间中,登录该目标APP的用户为刷子用户;另一方面,若检测出调用栈存在异常,也可判定该目标APP运行在虚拟容器空间中,登录该目标APP的用户为刷子用户。
S22:检测执行所述Xposed框架信息查询线程时调用栈是否异常,若是,则判定所述目标APP的主线程运行在虚拟容器空间,登录所述目标APP的用户为刷子用户;所述Xposed框架信息查询线程自身的运行不会使调用栈发生异常。
其中,检测调用栈是否异常的方法,可以通过检测调用栈中的android.app.Instrumentation.callActivityOnResume类的上层是否为android.app.Activity.performResume类,若不是,则判定调用栈异常,该目标APP的主线程运行在虚拟容器空间,登录该目标APP的用户为刷子用户。
由于在安卓***中,android.app.Instrumentation.callActivityOnResume类的上层是android.app.Activity.performResume类,这是安卓***的标准实现,也是安卓***的标准特征。因此,如果检测调用栈时,发现android.app.Instrumentation.callActivityOnResume类的上层不是android.app.Activity.performResume类,而是其他诸如com.lody.virtual.client.hook.delegate.InstrumentationDelegate.callActivityOnResume之类的类的话,就说明调用栈异常。
除了上述检测调用栈异常的方法外,还可以通过以下方法实现:
检测调用栈的根是否为ZygoteInit类,若不是,则判定调用栈异常,该目标APP的主线程运行在虚拟容器空间,登录该目标APP的用户为刷子用户。
对于Android5.0及以上的移动终端设备(如手机),其调用栈的根是安卓***的ZygoteInit类,这是安卓***的标准实现,也是安卓***的标准特征。因此,如果检测调用栈时,发现调用栈的根不是ZygoteInit类,则说明调用栈异常。
实施例二
上述实施例一中描述的方法是通过检测安卓***的移动终端设备(如手机)上的虚拟容器的特征值或调用栈的异常来识别刷子用户的,本实施例还提供了一种识别刷子用户的方法:
获取目标APP运行时的数字签名,进行签名验证;若验证失败,则判定该目标APP存在异常,登录该目标APP的用户为刷子用户。
APP运营商可在设计APP时加入签名,在目标APP启动的时候在C++层读取该目标APP的签名,对读取的APP签名进行验证,判断是否为该APP运营商自己的签名。由于APP运营商自己的签名对外是保密的,别人不知道。若读取的APP签名与APP运营商自己的签名一致,则认为该目标APP用户不是刷子用户;若读取的APP签名与APP运营商自己的签名不一致,则认为该目标APP用户为刷子用户。
本实施例通过签名验证的方法,可以防止APP安装包被篡改,可以防止APP安装包中被植入Xposed框架。只是当APP运行在虚拟容器(比如多开助手)上时,虚拟容器可以通过其自身直接向APP运行时植入Xposed框架。对于APP运行在虚拟容器上的情况,就需要采用上述实施例一中描述的方法,进行识别了。
实施例三
本发明还提供了一种基于安卓***的APP刷子用户识别设备,请参看图4,该设备包括:
Xposed框架植入判断模块1:用于检测目标APP的运行空间是否被虚拟容器植入了Xposed框架,若是,则判定登录所述目标APP的用户为刷子用户;所述虚拟容器为多开助手类软件;
主线程运行空间检测模块2:用于检测目标APP的主线程是否运行在虚拟容器空间;若是,则判定登录该目标APP的用户为刷子用户。
具体的,Xposed框架植入判断模块1通过在目标APP运行时,载入Xposed框架的特征值,来判断该目标APP的运行空间是否被虚拟容器植入了Xposed框架,从而断定登录该目标APP的用户为刷子用户。
可以通过ClassLoader载入Xposed框架的特征值。Xposed框架的特征值为Xposed框架的核心类,如de.robv.android.xposed.XposedHelpers类、本实施例以ClassLoader载入de.robv.android.xposed.XposedHelpers类为例,请参看图2。图中是ClassLoader载入de.robv.android.xposed.XposedHelpers类的代码,一段简短的代码。虽然简短,但是效果很好。如果该de.robv.android.xposed.XposedHelpers类载入成功了,就说明该目标APP的运行空间存在Xposed框架,该目标APP运行在虚拟容器中。
如果Xposed框架植入判断模块1载入Xposed框架的核心类没有成功,则采用主线程运行空间检测模块2。
主线程运行空间检测模块2通过在该目标APP的主线程中***一Xposed框架信息查询线程,检测执行该线程时调用栈是否异常,来判断该目标APP的主线程是否运行在虚拟容器空间,从而断定登录该目标APP的用户为刷子用户。
对于安卓***,APP的主线程如Activity类的onResume函数及onCreate()函数。其中,onResume函数是Activity类的生命周期回调函数,onCreate()函数是Activity类的构造函数。本实施例以目标APP的主线程为Activity类的onResume函数为例,在onResume函数中***一个Xposed框架信息查询线程,该线程具体请参看图3。
该Xposed框架信息查询线程实现遍历整个堆栈查询Xposed框架相关信息的功能。运行该线程的同时,检测调用栈是否异常,一方面,若查询到Xposed框架的相关信息,就可判定该目标APP运行在虚拟容器空间中,登录该目标APP的用户为刷子用户;另一方面,若检测出调用栈存在异常,也可判定该目标APP运行在虚拟容器空间中,登录该目标APP的用户为刷子用户。
其中,检测调用栈是否异常的方法,可以通过检测调用栈中的android.app.Instrumentation.callActivityOnResume类的上层是否为android.app.Activity.performResume类,若不是,则判定调用栈异常,所述目标APP的主线程运行在虚拟容器空间,登录所述目标APP的用户为刷子用户。
由于在安卓***中,android.app.Instrumentation.callActivityOnResume类的上层是android.app.Activity.performResume类,这是安卓***的标准实现,也是安卓***的标准特征。因此,如果检测调用栈时,发现android.app.Instrumentation.callActivityOnResume类的上层不是android.app.Activity.performResume类,而是其他诸如com.lody.virtual.client.hook.delegate.InstrumentationDelegate.callActivityOnResume之类的类的话,就说明调用栈异常。
若主线程运行空间检测模块2检测到android.app.Instrumentation.callActivityOnResume类的上层确实是android.app.Activity.performResume类,则检测调用栈的根是否为ZygoteInit类,若不是,则判定调用栈异常,该目标APP的主线程运行在虚拟容器空间,登录该目标APP的用户为刷子用户。
对于Android5.0及以上的移动终端设备(如手机),其调用栈的根是安卓***的ZygoteInit类,这是安卓***的标准实现,也是安卓***的标准特征。因此,如果检测调用栈时,发现调用栈的根不是ZygoteInit类,则说明调用栈异常。
上述基于安卓***的APP刷子用户识别设备是一个虚拟设备,是由计算机程序编写而成。该计算机程序可被计算机可存储在存储器中,被计算机读取并执行。
如将该计算机程序用于电子设备,如手机等移动终端设备。该电子设备包括存储器和处理器,存储器中存储着该计算机程序,该计算机程序被所述处理器执行时,使得该处理器执行实施例一中的基于安卓***的APP刷子用户识别方法中的步骤。
如将该计算机程序存储在存储介质,如ROM、RAM。该存储介质中的计算机程序被一个或多个处理器执行时,使得一个或多个处理器执行实施例一中的基于安卓***的APP刷子用户识别方法中的步骤。
综上所述,本发明针对现有的通过检测APP是否运行在模拟器上来识别刷子用户的方法,不能识别用户将APP运行在虚拟容器中,使手机设备变为多个虚拟手机设备,来增加单台手机设备的APP用户数进行刷积分赚钱的问题,通过检测虚拟容器中是否被加入了Xposed框架,及检测APP主线程是否运行在虚拟容器空间来识别刷子用户,防止用户利用虚拟容器使手机设备变为多个虚拟手机设备,以极低的成本增加单台手机设备的APP用户数进行刷积分赚钱。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。
Claims (6)
1.一种基于安卓***的APP刷子用户识别方法,其特征在于,包括:
S1:服务端检测目标APP的运行空间是否被虚拟容器植入了Xposed框架,若是,则判定登录所述目标APP的用户为刷子用户;所述虚拟容器为多开助手类软件,所述刷子用户为以刷APP积分赚钱为目的的用户;
S2:若不是,则检测所述目标APP的主线程是否运行在虚拟容器空间;若是,则判定登录所述目标APP的用户为刷子用户;其中,
所述步骤S1进一步包括:
S11:在目标APP运行时,载入Xposed框架的特征值;
S12:判断所述Xposed框架的特征值是否载入成功,若是,则判定所述目标APP的运行空间被植入了Xposed框架,登录所述目标APP的用户为刷子用户;
所述步骤S11进一步包括:
通过ClassLoader载入所述Xposed框架的特征值,所述特征值为所述Xposed框架的核心类de.robv.android.xposed.XposedHelpers;
所述步骤S2进一步包括:
S21:在所述目标APP的主线程中***一Xposed框架信息查询线程;
S22:检测执行所述Xposed框架信息查询线程时调用栈是否异常,若是,则判定所述目标APP的主线程运行在虚拟容器空间,登录所述目标APP的用户为刷子用户;所述Xposed框架信息查询线程自身的运行不会使调用栈发生异常;
所述步骤S22进一步包括:
检测调用栈中的android.app.Instrumentation.callActivityOnResume类的上层是否为android.app.Activity.performResume类,若不是,则判定调用栈异常,所述目标APP的主线程运行在虚拟容器空间,登录所述目标APP的用户为刷子用户;
或检测调用栈的根是否为ZygoteInit类,若不是,则判定调用栈异常,所述目标APP的主线程运行在虚拟容器空间,登录所述目标APP的用户为刷子用户。
2.如权利要求1所述的基于安卓***的APP刷子用户识别方法,其特征在于,所述步骤S21进一步包括:
所述目标APP的主线程为Activity类中的onResume函数。
3.如权利要求1所述的基于安卓***的APP刷子用户识别方法,其特征在于,所述步骤S1之前还包括:
S0:获取目标APP运行时的签名,进行签名验证;若验证失败,则判定所述目标APP存在异常,登录所述目标APP的用户为刷子用户。
4.一种基于安卓***的APP刷子用户识别设备,其特征在于,包括:
Xposed框架植入判断模块:用于检测目标APP的运行空间是否被虚拟容器植入了Xposed框架,若是,则判定登录所述目标APP的用户为刷子用户;所述虚拟容器为多开助手类软件;
主线程运行空间检测模块:用于检测所述目标APP的主线程是否运行在虚拟容器空间;若是,则判定登录所述目标APP的用户为刷子用户。
5.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至3中任意一项所述的基于安卓***的APP刷子用户识别方法中的步骤。
6.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至3中任意一项所述的基于安卓***的APP刷子用户识别方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010273755.4A CN111523097B (zh) | 2020-04-09 | 2020-04-09 | 基于安卓***的app刷子用户识别方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010273755.4A CN111523097B (zh) | 2020-04-09 | 2020-04-09 | 基于安卓***的app刷子用户识别方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111523097A CN111523097A (zh) | 2020-08-11 |
CN111523097B true CN111523097B (zh) | 2023-08-29 |
Family
ID=71902523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010273755.4A Active CN111523097B (zh) | 2020-04-09 | 2020-04-09 | 基于安卓***的app刷子用户识别方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111523097B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111931167B (zh) * | 2020-10-09 | 2021-02-09 | 广州宸祺出行科技有限公司 | 一种防止Android应用被沙盒劫持的方法及*** |
CN112288499A (zh) * | 2020-11-20 | 2021-01-29 | 广州欢网科技有限责任公司 | 一种实现反广告刷量的方法、可读存储介质 |
CN114329431B (zh) * | 2021-12-28 | 2024-05-31 | 四川启睿克科技有限公司 | 一种基于移动设备多重特征检测的新用户验证方法 |
CN114697079B (zh) * | 2022-02-28 | 2023-08-11 | 山东赤子城网络技术有限公司 | 一种应用客户端非法用户检测方法和*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951371A (zh) * | 2017-03-20 | 2017-07-14 | 南京大学 | 一种基于依赖注入的安卓应用半自动化测试方法 |
CN110119602A (zh) * | 2018-02-06 | 2019-08-13 | 百度在线网络技术(北京)有限公司 | 人机识别方法、装置、服务器、客户端及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI649694B (zh) * | 2017-10-30 | 2019-02-01 | 國立臺灣大學 | 一種安卓動態框架及其方法 |
-
2020
- 2020-04-09 CN CN202010273755.4A patent/CN111523097B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106951371A (zh) * | 2017-03-20 | 2017-07-14 | 南京大学 | 一种基于依赖注入的安卓应用半自动化测试方法 |
CN110119602A (zh) * | 2018-02-06 | 2019-08-13 | 百度在线网络技术(北京)有限公司 | 人机识别方法、装置、服务器、客户端及存储介质 |
Non-Patent Citations (1)
Title |
---|
文伟平 ; 汤炀 ; 谌力 ; .一种基于Android内核的APP敏感行为检测方法及实现.信息网络安全.2016,(第08期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111523097A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111523097B (zh) | 基于安卓***的app刷子用户识别方法、设备及存储介质 | |
CN111290742A (zh) | 参数验证方法、装置、电子设备及可读存储介质 | |
CN108256322B (zh) | 安全测试方法、装置、计算机设备和存储介质 | |
KR102242219B1 (ko) | 서버가 공격받는 것을 막기 위한 방법 및 디바이스 | |
CN114422139A (zh) | Api网关请求安全验证方法、装置、电子设备及计算机可读介质 | |
CN111611612A (zh) | 一种基于区块链的积分***、装置、存储介质及其运行方法 | |
CN102866932A (zh) | 提供和收集与程序的异常终止相关的数据的方法和设备 | |
CN114328073A (zh) | 线程监控方法、装置、设备及存储介质 | |
CN110597731B (zh) | 一种漏洞检测方法、装置及电子设备 | |
EP2728472A2 (en) | User terminal, reliability management server, and method and program for preventing unauthorized remote operation | |
CN105074670A (zh) | 日志输出控制设备、方法及程序 | |
CN112835639A (zh) | 一种Hook实现方法、装置、设备、介质及产品 | |
CN110231921B (zh) | 日志打印方法、装置、设备及计算机可读存储介质 | |
CN110838929B (zh) | ***错误排查方法和***错误排查装置 | |
US20240031166A1 (en) | Web-side data signature method and apparatus and computer device | |
CN113791824B (zh) | 一种终端设备的外设驱动加载方法、***及介质 | |
CN115455414A (zh) | 一种安全检测方法和装置 | |
WO2021223657A1 (zh) | 数据交互 | |
CN111176975B (zh) | 一种测试方法、装置、设备及计算机可读存储介质 | |
CN112632534A (zh) | 一种恶意行为检测方法及装置 | |
CN110008709B (zh) | 一种权限提升漏洞的检测方法和相关装置 | |
CN111552586A (zh) | 应用程序崩溃处理方法和装置 | |
CN111737129A (zh) | 服务控制方法、装置、计算机可读介质及电子设备 | |
CN114389948B (zh) | 基于白名单的功能升级及验证方法、装置、设备及介质 | |
CN113868030B (zh) | Cpu测试工具自适应匹配方法、***、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |