android 规定时间内的 随机时间,利用系统时间实现APP内部随机IMEI和IMSI的方法

前言

我们知道很多APP都有第一次使用的体验功能,如Wifi伴侣,手机第一次使用时就会免费时长;还有很多的APP活动,比如百度糯米、安客居等,还有以前360应用的下载赚金币等等,都是手机的初次使用时才有。很显然,他们识别初次的方法就是手机的IMEI或者IMSI,如果能有一种方法,让APP启动时都像第一次启动那样被服务器端识别的话,那么Wifi伴侣就有无限的使用时长了,或许百度糯米也可以无限领优惠了..(意淫结束 与钱挂钩的东西,从来没有那么容易的。。)下面就说说随机的方法。

该方法来源于好友 @晴天 的分享。

一开始的考虑是直接产生随机数。先写Java代码 然后再转化为Smali的话,必然是一大串,这就增加了错误的几率,那有没有一种更简单的。唉 不做引诱了,也不多说明了,老累%>_

修改IMSI:示例是我是车神_Ver1.2.6

.local v1, "telManager":Landroid/telephony/TelephonyManager;

invoke-virtual {v1}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;

move-result-object v0

//获取系统的时间

invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

move-result-wide v0

invoke-static {v0, v0}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;

move-result-object v0

//获取长度

invoke-virtual {v0}, Ljava/lang/String;->length()I

move-result v1

//截取15位

add-int/lit8 v1, v1, -0xf

invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;

move-result-object v0

.local v0, "imsi":Ljava/lang/String;

修改IMEI:示例是追魂3_Ver1.0

invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;

invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

move-result-wide v0

invoke-static {v0, v0}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;

move-result-object v0

iget-object v1, p0, Lcom/call3/VerifyActivity;->c:Landroid/widget/TextView;

invoke-virtual {v0}, Ljava/lang/String;->length()I

move-result v2

add-int/lit8 v2, v2, -0x6

invoke-virtual {v0, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;

move-result-object v0然后谢谢 @Allen 大神的指导,唉 基础不行..

图片

0818b9ca8b590ca3270a3433284dd417.png

添加之后打log:

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值