|
|
发表于
2023-12-17 20:59:11
来自手机
|
显示全部楼层
| 阅读模式
来自 广东
本帖最后由 逗比_滑稽 于 2023-12-18 00:16 编辑
在目前的一部分应用中,存在着一种先体验后付费模式,该应用会给予新用户一段体验时间,如果用户满意则付费获取完整的体验。
如果一个应用采用着此付费模式,对于我们来讲是一个很好的突破口,我们可以找到判断新用户位置进行修改,让应用识别我们永远都是新用户,就可以一直白嫖。但对于一些小白可能会是一头雾水,不知道从哪开始找关键点,所以这里教给大家一种非常简单的方式达到我们白嫖的目的。
正文:
我们从开发者的角度想,如果你要判断一个设备是否为新用户你该怎么判断?
答:设备信息
每台手机都有着很多信息以及唯一性信息,比如:主板名称,产品名称,手机名称,设备id,主板id,序列号等......
而开发者就从这里边获取一些不容易与其它设备重复的信息当做用户的身份证,每当一台设备进入应用时,就获取这个信息查询一下是否在服务器里,不存在则直接认为你是新用户,因此我们可以直接猜这个应用用什么代码获取设备信息,在它获取设备信息的代码直接赋值。
例如下面的是比较常用的一种获取设备信息的代码,一些应用一般情况会用此代码当做用户身份证,但也不排除例外的。
获取设备id:
- Settings.Secure.getString(getContentResolver(), "android_id")
复制代码
这里分享一些代码,利用此代码可以直接破坏上面这种代码获取设备id的逻辑。
代码.zip
食用方法:
这里拿设备信息当例子,可以看到这里会告诉你的设备id,我们的目的就是伪造起来
将dex添加到apk中并把调用代码复制,然后复制程序的application入口
- invoke-static {}, Lcom/doubihuaji/Device;->init()V
复制代码
然后将代码插入到onCreate里(如果没有application入口,可以插到activity,只要比较早调用起来就行)
最后可以看到,这个应用已经拿到我们的假id,每次打开都会获取一串随机新的假id
有些应用可能不会用这个设备id当身份证,也可能会拿下面这些代码当身份证
获取IMEI:
- Context.getSystemService("phone").getSubscriberId()
复制代码
获取IMSI:
- Context.getSystemService("phone").getDeviceId()
复制代码
你可以找个随机id代码,利用正则把这些代码全替换成随机id的调用
- invoke-virtual\s\{.*\},\sLandroid/telephony/TelephonyManager;->getSubscriberId\(\)Ljava/lang/String;\s+move-result-object\s(.*)
复制代码- invoke-virtual\s\{.*\},\sLandroid/telephony/TelephonyManager;->getDeviceId\(\)Ljava/lang/String;\s+move-result-object\s(.*)
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
-
查看全部评分
总评分:好评 +9
金币 +9
|