第二关练习:通过不同方式修改一件三连和硬币判断
方法一:
[Java] 纯文本查看 复制代码
if-eqz p0, :cond_42
.line 37
check-cast p1, Landroid/content/Context;
const-string p0, "当前已经是大会员了哦!"
将 if-eqz 修改为nez 破解大会员提示 此方法为修改判断条件
方法二:
找到isvip函数
[Java] 纯文本查看 复制代码
.method public final isvip()Z
.registers 2
const/4 v0, 0x0
return v0
.end method
将 const/4 v0, 0x0 修改为 const/4 v0, 0x1 此方法为 修改函数返回值
方法三:
[Java] 纯文本查看 复制代码
if-ge p0, v0, :cond_15
.line 34
move-object p0, p1
check-cast p0, Landroid/content/Context;
const-string v0, "请先获取10个硬币哦"
这里是 if-ge 跳转cond_15 直接将 if-ge 修改为 goto 此方法为 强制跳转
最终效果:
丑小鸭师傅的demo练习:
进入app 发现点击登录出现 "登陆失败" 直接mt先搜索一波
emmm,,,搜不到。 发现字打错了。 "登录失败" 是这个 再搜一次
[Java] 纯文本查看 复制代码
.method public check(Ljava/lang/String;Ljava/lang/String;)V
.registers 5
.param p1, "name" # Ljava/lang/String;
.param p2, "pass" # Ljava/lang/String;
.prologue
const/4 v1, 0x0
.line 28
const-string v0, "hfdcxy"
invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1b
const-string v0, "1234"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1b
.line 30
const-string v0, "登录成功"
invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V
.line 34
:goto_1a
return-void
.line 33
:cond_1b
const-string v0, "登录失败"
invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V
goto :goto_1a
.end method
这瞧一眼 账号hfdcxy 密码1234 判断是这个 就登陆成功 不是的话 就登陆失败
破解的方法非常多 最简单直接的 两个eqz 改成nez 什么都不输入直接登录 就能登陆成功了。
|