目标

看完课程,完成课后作业,CrackMe的付费模块破解
https://www.52pojie.cn/thread-397987-1-1.html

实战

先安装APP瞧瞧
image.png
image.png
丢到AndroidKiller中
反编译完成后,搜索激活vip
image.png
image.png

  1. if-ge v0, v2, :cond_0

如果v0>=v2就跳转到cond_0
我们去看看cond_0
image.png
就是升级vip的
我的想法很简单,当v0>=v2跳转到cond_0,我改成v0<=v2跳转到cond_0即可成功升级。
把if-ge改成if-le
image.png
保存,编译
image.png
image.png
image.png
看了帖子下面的评论,还有很多种方法来破解。

总结

学号Smali代码是关键

  1. "if-eq vA, vB, :cond_**" 如果vA等于vB则跳转到:cond_**
  2. "if-ne vA, vB, :cond_**" 如果vA不等于vB则跳转到:cond_**
  3. "if-lt vA, vB, :cond_**" 如果vA小于vB则跳转到:cond_**
  4. "if-ge vA, vB, :cond_**" 如果vA大于等于vB则跳转到:cond_**
  5. "if-gt vA, vB, :cond_**" 如果vA大于vB则跳转到:cond_**
  6. "if-le vA, vB, :cond_**" 如果vA小于等于vB则跳转到:cond_**
  7. "if-eqz vA, :cond_**" 如果vA等于0则跳转到:cond_**
  8. "if-nez vA, :cond_**" 如果vA不等于0则跳转到:cond_**
  9. "if-ltz vA, :cond_**" 如果vA小于0则跳转到:cond_**
  10. "if-gez vA, :cond_**" 如果vA大于等于0则跳转到:cond_**
  11. "if-gtz vA, :cond_**" 如果vA大于0则跳转到:cond_**
  12. "if-lez vA, :cond_**" 如果vA小于等于0则跳转到:cond_**