本帖最后由 kangdiwu 于 2023-12-31 15:23 编辑
bypassKeyAttestationKey Attestation 密钥认证个人理解,硬件提供加密功能,同时该硬件模块也会反映设备的软硬件的安全环境。 不想自己实现一套代码的,可以直接用开源的: https://github.com/vvb2060/KeyAttestation
获取证书链解析证书链对证书链进行校验解析extension,获取设备的状态简单看下解析extension的内容 解析后部分数据 Attest version: Keymaster version 4.1 Attest security: StrongBox Verified boot Key: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= (base64) Device locked: false Verified boot state: Unverified
//Hash for boot //Hashtree metadata for system //Hashtree metadata for vendor Verified boot hash: nDqAWissOCsw+aWEm7cEcAkCvQngEE+ypQ75UWakxt4= (base64)
饶过手段思路比较简单,替换到整条证书链为一个正常设备的证书链即可: - 可以通过hook java层代码
- 写一个magisk插件 https://github.com/doom-man/bypasskeyattestation
hook java层已经比较熟练了,由于后续期望强化对异常设备的检测,大多对抗检测的工具又是走magisk插件实现的,打算用magisk插件实现一遍。 参考 https://github.com/chiteroman/PlayIntegrityFix 大佬写的插件进行学习,对大佬拙劣的模仿。 准备证书将证书文件移动/data/local/tmp 下,并提供读权限; 注入目标进程代码入口在cpp/main.cpp ### 替换证书链 CustomKeyStoreSpi.java 替换后效果 结语我认为设备异常判定,即使各大厂商去自研解决方案,也应该去学习了解系统层面提供的安全检测手段 和 官方在用的判定方案。
注:若转载请注明大神论坛来源(本贴地址)与作者信息。
|