同盾设备指纹简单分析

研究了下设备指纹,我发现设备指纹无非三个方面。

1.设备指纹不可伪造性 2.设备指纹唯一性(降低重码数)3.设备篡改可识别性

下面分别说说以上三个方面。

设备指纹不可伪造,无非就是通过加密的手段,加密后我方可验证是否为我们自己加密的设备信息。

设备指纹唯一性、设备篡改可识别性,以同盾为例子,同盾在生成设备指纹唯一ID时,相应的生成了一些其他组合的DeviceId。

首先当用户篡改设备并且我们存储的设备指纹都被清了时(恢复出厂),依然可以根据其中一组DeviceId识别设备。

说下我知道的几种DeviceId组合:(优先根据设备信息恢复,其次根据本地存储)

1. imei + udid + wifiMac

2. androidId + wifiMac + brand

3. imei + wifiMac + serialNo + totalStorage 

其次如果根据DeviceId组合没有找到设备的话,采取读取本地存储的设备指纹,一般生成的设备指纹会存储多个位置,还是以同盾为例,设备指纹存储了3个位置。

### 使用 Frida 进行安全检测或绕过其安全检查 #### 方法一:利用 `frida-trace` 跟踪关键函数调用 为了实现对 SDK 的行为监控,可以通过跟踪特定的系统调用来识别潜在的安全机制。例如,如果使用某些标准库函数来进行环境变量读取、文件操作或其他敏感动作,则可以采用如下方式: 对于 C/C++ 编写的原生层逻辑,可执行命令: ```bash frida-trace -U -i "open\|access\|stat" -p <PID> ``` 这会拦截并记录目标进程中涉及文件访问路径等信息的操作[^3]。 #### 方法二:动态修改 API 行为以规避检测 假设实现了基于进程状态(如是否存在调试器附加)或者运行时特征(比如是否被注入其他模块)的保护措施。那么借助于 JavaScript Hook 技术能够改变这些判断条件的结果从而达到绕过的目地。下面是一个简单的例子用于演示如何重写某个疑似用于反作弊验证的方法: ```javascript Java.perform(function () { var originalMethod = Java.use('com.tongdun.module.security.Detection').checkForDebugger; originalMethod.implementation = function (...) { console.log('[Hooked] checkForDebugger called'); // Always report as not being debugged. return false; }; }); ``` 此代码片段展示了怎样挂钩到指定类中的成员函数,并将其原始功能替换为我们自定义的行为——即无论实际情况如何都报告说当前应用程序未处于被调试状态下。 请注意,在实际应用中应当更加谨慎地分析待处理对象的具体结构及其工作原理;上述仅作为概念证明性质的技术说明而非完整的解决方案。 #### 安全性和合法性声明 值得注意的是,任何试图破坏软件版权保护技术或是未经授权而干扰他人服务正常运作的行为均属违法行为,并可能违反平台政策和服务条款。因此建议开发者们专注于合法合规的研究领域内开展探索活动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值