一种绕过Googlesafetynet认证方法及相关组件技术

技术编号:39242575 阅读:11 留言:0更新日期:2023-10-30 11:55
本发明专利技术公开了一种绕过Googlesafetynet认证方法及相关组件,包括:通过app发送safetynet请求至安全认证API进行safetynet认证,并返回初始safetynet认证结果,获取初始safetynet认证结果中的有效数据和设备基本完整性的当前状态,并构建为字符串;修改字符串中的有效数据和获取设备中的设备基本完整性的当前状态为可通过验证的值,并更新字符串;使用更新后的字符串对safetynet请求进行更新,通过app再次发送safetynet请求至安全认证API进行safetynet认证,返回新的safetynet认证结果并提交到待绕过的APP进行验证,以完成认证。本发明专利技术通过对初始safetynet认证结果进行修改,并更新safetynet请求并重新发起,以返回新的safetynet认证结果,然后将新的safetynet认证结果替换掉初始safetynet认证结果,从而实现了待绕过的appsafetynet认证。从而实现了待绕过的appsafetynet认证。从而实现了待绕过的appsafetynet认证。

【技术实现步骤摘要】
一种绕过Google safetynet认证方法及相关组件


[0001]本专利技术涉及软件
,尤其涉及一种绕过Google safetynet认证方法及相关组件。

技术介绍

[0002]安全网认证API(safetynet Attestation API)是一种反滥用API,可以让应用开发者评估运行其应用的Android设备以及应用的完整性。
[0003]安全网认证API会提供加密签名的证明,为了创建证明,该API会检查设备的软件和硬件环境,以查找是否存在完整性问题,软件环境检查如应用是否被篡改后进行了重打包,硬件环境检查如设备是否已启用了root权限,检查后会将相应软件和硬件数据进行编码后发送给Google进行签名后返回。返回的证明还会一并绑定调用方应用提供的Nonce以及safetynet Attestation API生成的时间戳,随后证明将被提交到调用方进行签名验证及有效数据判断。
[0004]目前,Android设备开发的app会经过Google服务器进行safetynet认证才能使用,当Android app触发了safetynet认证后,app端会通过Google服务器向安全网认证API发起safetynet请求,并传入一个由调用端生成的随机数,当Google进程收到safetynet请求后,首先会获取调用端app的包名、应用证书指纹摘要以及应用摘要,接着会对调用端设备进行设备完整性检测,最后会把上面获取到的数据发送到Google服务器端进行RSA私钥签名后到调用端进行签名及有效数据验证。
[0005]但是,当对使用safetynet认证的app进行二次开发重打包后,应用证书指纹摘要以及应用摘要会发生改变,进而导致safetynet认证无法通过,app不能使用。

技术实现思路

[0006]本专利技术的目的是提供一种绕过Google safetynet认证方法及相关组件,旨在解决现有app进行二次开发重打包无法通过safetynet认证的问题。
[0007]第一方面,本专利技术实施例提供一种绕过Googlesafetynet认证方法,其包括:
[0008]获取设备系统的root权限,并搭建hook环境;
[0009]通过app调用安全认证API发送safetynet请求至Google服务器进行safetynet认证,并通过hook操作后返回初始safetynet认证结果,解密获取所述初始safetynet认证结果中的有效数据和设备基本完整性的当前状态,保存所述有效数据;
[0010]修改设备中对应所述设备基本完整性的参数值,使所述设备基本完整性的当前状态更新为正确状态;
[0011]定位所述有效数据在safetynet请求的关键函数中的位置,通过hook操作修改所述关键函数中对应所述有效数据的值,使Google服务器更新所述有效数据;
[0012]定位所述关键函数中表示safetynet请求的发起次数的位置,通过hook操作修改所述发起次数的返回值为小于最大请求次数的值;
[0013]通过新的app调用安全认证API发送safetynet请求至Google服务器进行safetynet认证,通过hook操作后返回新的safetynet认证结果并提交到待绕过的APP替换掉所述初始safetynet认证结果,以完成认证。
[0014]第二方面,本专利技术实施例提供一种利用绕过Googlesafetynet认证装置,其包括:
[0015]获取单元,用于获取设备系统的root权限,并搭建hook环境;
[0016]认证单元,用于通过app调用安全认证API发送safetynet请求至Google服务器进行safetynet认证,并通过hook操作后返回初始safetynet认证结果,解密获取所述初始safetynet认证结果中的有效数据和设备基本完整性的当前状态,保存所述有效数据;
[0017]修改单元,用于修改设备中对应所述设备基本完整性的参数值,使所述设备基本完整性的当前状态更新为正确状态;
[0018]第一定位单元,用于定位所述有效数据在safetynet请求的关键函数中的位置,通过hook操作修改所述关键函数中对应所述有效数据的值,使Google服务器更新所述有效数据;
[0019]第二定位单元,用于定位所述关键函数中表示safetynet请求的发起次数的位置,通过hook操作修改所述发起次数的返回值为小于最大请求次数的值;
[0020]认证单元,用于通过新的app调用安全认证API发送safetynet请求至Google服务器进行safetynet认证,通过hook操作后返回新的safetynet认证结果并提交到待绕过的APP替换掉所述初始safetynet认证结果,以完成认证。
[0021]第三方面,本专利技术实施例提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的绕过Googlesafetynet认证方法。
[0022]第四方面,本专利技术实施例提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的绕过Googlesafetynet认证方法。
[0023]本专利技术实施例提供一种绕过Googlesafetynet认证方法及相关组件,包括:通过app发送safetynet请求至安全认证API进行safetynet认证,并返回初始safetynet认证结果,获取初始safetynet认证结果中的有效数据和获取设备中的设备基本完整性的当前状态,并构建为字符串;修改字符串中的有效数据和获取设备中的设备基本完整性的当前状态为可通过验证的值,并更新字符串;使用更新后的字符串对safetynet请求进行更新,通过app再次发送safetynet请求至安全认证API进行safetynet认证,返回新的safetynet认证结果并提交到待绕过的APP进行验证,以完成认证。本专利技术实施例通过对初始safetynet认证结果进行修改,并更新safetynet请求并重新发起,以返回新的safetynet认证结果,然后将新的safetynet认证结果替换掉初始safetynet认证结果,从而实现了待绕过的appsafetynet认证。
附图说明
[0024]为了更清楚地说明本专利技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1为本专利技术实施例提供的绕过Googlesafetynet认证方法的流程示意图;
[0026]图2为本专利技术实施例提供的绕过Googlesafetynet认证方法的子流程示意图;
[0027]图3为本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种绕过Google safetynet认证方法,其特征在于,包括:获取设备系统的root权限,并搭建hook环境;通过app调用安全认证API发送safetynet请求至Google服务器进行safetynet认证,并通过hook操作后返回初始safetynet认证结果,解密获取所述初始safetynet认证结果中的有效数据和设备基本完整性的当前状态,保存所述有效数据;修改设备中对应所述设备基本完整性的参数值,使所述设备基本完整性的当前状态更新为正确状态;定位所述有效数据在safetynet请求的关键函数中的位置,通过hook操作修改所述关键函数中对应所述有效数据的值,使Google服务器更新所述有效数据;定位所述关键函数中表示safetynet请求的发起次数的位置,通过hook操作修改所述发起次数的返回值为小于最大请求次数的值;通过新的app调用安全认证API发送safetynet请求至Google服务器进行safetynet认证,通过hook操作后返回新的safetynet认证结果并提交到待绕过的APP替换掉所述初始safetynet认证结果,以完成认证。2.根据权利要求1所述的绕过Google safetynet认证方法,其特征在于,所述通过app调用安全认证API发送safetynet请求至Google服务器进行safetynet认证,并通过hook操作后返回初始safetynet认证结果,解密获取所述初始safetynet认证结果中的有效数据和设备基本完整性的当前状态,保存所述有效数据,包括:通过app调用安全认证API发送safetynet请求至Google服务器进行safetynet认证并调用Google服务器的回调函数;对所述回调函数进行hook操作,得到初始safetynet认证结果;对所述初始safetynet认证结果进行解密得到公钥证书、json形式的有效数据和有效数据的签名,其中,所述有效数据包括设备生成的随机数、向Google服务器事先申请的Google API密钥和设备app包名、应用指纹证书及应用摘要;对设备的设备基本完整性的校验机制进行分析,得到设备的设备基本完整性的当前状态。3.根据权利要求1所述的绕过Google safetynet认证方法,其特征在于,所述修改设备中对应所述设备基本完整性的参数值,使所述设备基本完整性的当前状态更新为正确状态,包括:利用Magisk模块修改设备中的相关属性值,包括:控制进程对文件的操作的权限控制修改为强制性、设备引导加载程序锁定状态修改为开启、能否将新软件刷写到设备上修改为锁定及是否存在从引导加载程序到已验证发过去的完整信任链修改为存在;利用LSPosed模块修改Google gms进程中的设备指纹、设备产品名、设备驱动名称及设备型号的值为Google信任设备的有效值;根据Magisk模块和LSPosed模块的修改,使所述当前状态更新为正确状态。4.根据权利要求2所述的绕过Google safetynet认证方法,其特征在于,所述定位所述有效数据在safetynet请求的关键函数中的位置,通过hook操作修改所述关键函数中对应所述有效数据的值,使Google服务器更新所述有效数据,包括:定位Google gms进程中处理...

【专利技术属性】
技术研发人员:蔡成泽
申请(专利权)人:深圳软牛科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1