笔者有使用双卡助手的需求,而双卡助手免费用户一个月限制免费转发50条
修改
反编译后找到
const-string v0 "month_total_count"
invoke-static {v0} Lcom/smshelper/Utils/PreferenceUtils;->getInt(Ljava/lang/String;)I
move-result v0
add-int/lit8 v0 v0 1
const-string v1 "month_total_count"
invoke-static {v1,v0} Lcom/smshelper/Utils/PreferenceUtils;->putInt(Ljava/lang/String;I)V
return-void
修改成
const-string v0 "month_total_count"
invoke-static {v0} Lcom/smshelper/Utils/PreferenceUtils;->getInt(Ljava/lang/String;)I
move-result v0
add-int/lit8 v0 v0 0
const-string v1 "month_total_count"
invoke-static {v1,v0} Lcom/smshelper/Utils/PreferenceUtils;->putInt(Ljava/lang/String;I)V
return-void
即可绕过50条限制
分析
其实原理很简单,双卡助手的转发计数是使用SharedPreferences
来储存的,上面的smail代码转成java就是
PreferenceUtils.putInt("month_total_count", PreferenceUtils.getInt("month_total_count") + 1);
这段代码的意思是把名为month_total_count
的值+1再存回去.把寄存器
v0 1改成v0 0就是把计数+1改成了+0,所以绕过了限制,但这样修改有一个坏处,就是总转发量会一直为0,这只是一种简单的修改办法,还有更为完美的修改方法