Android逆向之avbobo获取设备唯一码机制分析

最近在研究Android设备唯一码问题,发现avbobo获取的机制有点有趣,具体分析如下:

RN

其开发采用RN引擎开发的,核心代码用js写的,放在apk/assets/index.android.bundle文件下,直接分析该文件即可

Sdcard

经过测试其打开后会在/sdcard目录下新建一个以*.id.txt格式明名的文件,里面内容格式如下: xxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxx

ID生成算法

在bundle文件搜索该文件名找到如下代码

可知其内容生成规则为hash(uniqueId+"fake"+hash("nR9I694ZiYHDN3iqWtYYjJTui20W7hAK7OswKO0zeM"))+"|"+uniqueId

至于uniqueId如何生成的,往下看

Android逆向之avbobo获取设备唯一码机制分析_第1张图片

RNDeviceInfo经过全局搜索定位到其所在类名为com.learnium.RNDeviceInfo.RNDeviceModule

具体获取uniqueId如下

Android逆向之avbobo获取设备唯一码机制分析_第2张图片

即设备的android_id值

而上面的hash经猜测并验证为md5计算

因此最终的设备唯一码生成规则如下:

md5(android_id+"fake"+md5("nR9I694ZiYHDN3iqWtYYjJTui20W7hAK7OswKO0zeM"))+"|"+android_id

总结

ID生成算法简单,就一个MD5计算,知道了算法可以通过外部修改,不用修改应用程序,直接修改那个*id.txt文件内容就行

建议采用更加复杂的hash算法,无法凭其特征猜测出其采用的算法

你可能感兴趣的:(Android逆向,android,逆向,设备唯一码,试用机制)