lizhibin5507 发表于 2024-3-12 20:48

报错:Cannot get the location of a label that hasn't been placed yet

大家好,我在编辑smali语句时,遇到了一个报错。

如图所示的java语言的程序逻辑中



红框圈起来的第一个地方AlertDialogManager.m23126a是指”成功“
红框圈起来的第二个地方AlertDialogManager.m23108d是指”失败“

我想让程序,运行到这里时,始终执行”成功“方法,也就是m23126a
于是,我将smali中的这一段(即m23126a的方法体)

复制替换smali中的这一段(即m23108d的方法体)

但是这样的话,保存时会报错Cannot get the location of a label that hasn't been placed yet
请问这个应该怎么搞?谢谢!

侃遍天下无二人 发表于 2024-3-13 15:59

你理解错了,那只是两个提示框,和成功失败没啥必然联系。最简单的方法是直接修改getMoney的返回值,改成0x7FFFFFFF啥的

lizhibin5507 发表于 2024-3-13 16:42

侃遍天下无二人 发表于 2024-3-13 15:59
你理解错了,那只是两个提示框,和成功失败没啥必然联系。最简单的方法是直接修改getMoney的返回值,改成0x ...

这俩红框是我自己圈的,我分析了这两个method的方法体的java语句,确实是成功与失败。成功提示我“花int金币”,失败提示我“充钱”。

lizhibin5507 发表于 2024-3-13 17:02

侃遍天下无二人 发表于 2024-3-13 15:59
你理解错了,那只是两个提示框,和成功失败没啥必然联系。最简单的方法是直接修改getMoney的返回值,改成0x ...

诶,你好像说得对,我只要用Frida改getMoney的返回值就行了
页: [1]
查看完整版本: 报错:Cannot get the location of a label that hasn't been placed yet