反编译双卡助手
in Android with 0 comment

反编译双卡助手

in Android with 0 comment

笔者有使用双卡助手的需求,而双卡助手免费用户一个月限制免费转发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,这只是一种简单的修改办法,还有更为完美的修改方法