安卓时间修改对于破解一些本地验证的app很好用,在线的没辙。一般来说大公司的app是在线验证的,因为这个貌似很消耗服务器资源,比如pixiv,有钱就是为所欲为,当然你也是
00.png (4.8 KB, 下载次数: 2)
下载附件
2020-7-13 10:55 上传
有不少软件有年费会员或者终身会员什么的,可以对关键地方进行赋值破解。
本帖主要说明时间在smali里面的表达方法
。
找到老巢
反编译后一般搜索的方法名关键字有vip、isvip、endtime、starttime、getvip、userinfo、viptime等;字符串关键字有到期、剩余、开通、续费、isvip、非会员等,他也有可能加短杠【_】混在里面。最常见的是找res字符串的ID,这个用的比较多。具体怎么找,这个每个app逻辑都不一样,而且大多需要跳转,而且如果不熟悉英文……
找到vip计算时间的老巢之后,接下来就是赋值了。
进行赋值破解
在线时间戳转换:http://www.beijing-time.org/shijianchuo/
案例:https://www.52pojie.cn/thread-1218307-1-1.html、https://www.52pojie.cn/thread-1211527-1-1.html、https://www.52pojie.cn/thread-1193093-1-1.html
"
对某一个方法的时间赋值,比如【const-wide v0, 0x3bb2b0c6018L】,会员到期时间就是2099年12月31日。那么3bb2b0c6018怎么来的呢?也就是(2099年12月31日-1970年1月1日)×365天×24小时×60分钟×60秒×1000毫秒,转换成16进制就大概是那个数了。那个单位L是long的意思,数值类型。
当然数值不是越大越好,如果涉及到运算就不能随意赋值了。
1.png (120.84 KB, 下载次数: 4)
下载附件
2020-7-13 11:54 上传
比如这款彩云天气app,对const-wide v6, 0x11840ad80L这个数值改大以后,本来是送2个月会员的,现在变成了20多天到期,而且重新登录也是20多天。改小时间越来越长,最终变成永久会员。如果把下面的判断if-ltz v5, :cond_1删掉他也是永久会员。【cmp-long vx, vy, vz。比较vy和vz的long值并在vx存入int型返回值(比较操作,如果第一个操作数大于第二个操作数返回正值;如果两者相等,返回0;如果第一个操作数小于第二个操作数,返回负值。)】
再比如https://www.52pojie.cn/thread-1218307-1-1.html
[Asm] 纯文本查看 复制代码const-wide/16 v1,0x3e8
mul-long p0, p0, v1
计算的是中间这个p0的值,v1是乘数。原本v1是1000,改大以后倍率高了到期时间就会变得很恐怖。一般获取时间后会有计算代码,常用于数值转换。比如分钟转换小时。
获取手机系统时间固定smali代码(1970-01-01开始):
[ol]
以后看见这行代码就知道他在获取系统时间了。然后下面一般会紧跟着计算代码,比如cmp-long、mul-long/2addr、div-int/2addr等,修改寄存器的数值对结果影响很大。
如果需要对时间进行运算,比如加减乘除,需要先对v(×+1)进行赋值,然后下一行再加入计算代码。
举例:系统时间加上1秒
[ol]
Java代码就是:
[Java] 纯文本查看 复制代码public static long wuaipojie()
{
return System.currentTimeMillis() + 1000L;
}
甚至可以写个又有判断又有乘除的代码:
[ol]