大厂的流行App都用技术手段检测手机硬件环境,标识用户的唯一性。这样的技术手段有两个目的,一个是为了更加精准的广告投放,另外一个原因是防止被薅羊毛等。其实无论是那种目的都是对个人隐私的侵犯。从Android10开始,API中已经禁止App读取硬件标识信息了。但是对于10以前的方法我们有没有办法屏蔽这样的行为呢?作为技术宅,闲着蛋疼,决定试一下,看看能在多大程度上阻止App的检测行为(保护自己的隐私)。
首先来考虑app们都会检测和读取那些内容:
如果直接阻止app读取这些信息,很多应用就起不来了,就像小媳妇一样不和你搞了;所以说还不能霸王硬上弓,只能伪造这些数据给他们读。而且伪造的数据还不能太假,不然直接封号了。反过来说如果不被封,就证明伪造的数据被App认可了。
本次研究的核心就在于如何方便的伪造出数据(相当于是一套马甲)。总体方向有两个一是基于Xposed相关的技术,另一个是直接自己改Rom。
其实Xposed是最简单的方法。由于国内移动互联网安全环境十分恶劣,各个厂商基本把Xposed当成潜在威胁,见到就封。所以如果想把Xposed用到大厂的App上,就不能直接使用,必须要对Xposed的特征做修改。这样使用Xposed基本就不会被识别也不会被封号了。Xposed的另外一个缺点是不能在高版本的android上面使用。
自己改Rom难度也不低,要改很多东西。要改的东西基本就是Xposed需要hook的东西。
我使用了Xposed+改机rom的方式,在App访问涉及身份敏感信息时让他们读到的是马甲上的信息,不让他们读取真实的值。当然也可以指定包名白名单,白名单下的允许读取真实内容。
先说测试和验证方法:提前准备好一系列的相关数据,就是前面的5类内容,以备随时切换。然后用这些信息注册某大厂App的账号,看看是否能注册成功,成功的话,就再跑几天,看看会不会被封。
目前初步测试没有问题,上图
目前在一个物理设备上成功注册了几个大厂App的号,分别使用了不同的信息。并且到目前为止还都正常登陆和运行。后面再多测试几个厂家的App看看是否能够经得起考验
欢迎感兴趣的朋友可以发邮件给我,一起讨论。
[email protected]