gpt4 book ai didi

java - 替换新方法 dexlib2 失败

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:22 34 4
gpt4 key购买 nike

我正在使用 dexlib2 通过一个 jar 实用程序重写现有的 apk。我想用我自己的指令更改一条指令。它基本上是返回一些对象,我想用另一个返回不同对象的方法替换它。它能够替换方法,但是当我查看更新的 dex 时,我可以看到下一行 .local v1, manager:Lblah/KeyguardManager;

我要替换的代码

KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);

上面应该替换的代码:

Manager mgr=Manager.getInstance(this)

我已经使用 getInstructionRewriter 方法来替换它。它替换了方法,但我不知道如何替换 .local v1, manager:Lblah/KeyguardManager;使用 .local v1,manager:Lblah/Manager;

最佳答案

您应该确保 Lblah/Manager 存在于您的 apk 中。如果您只想在一个 .smali 文件中进行此更改并保持其他文件不变,那将很容易。您必须对该文件中所有出现的 KeyguardManager 进行罚款,并将它们进行的调用替换为 Manager 类中的相应调用。然后重新打包您的 apk 并进行测试。

如果您在重新创建 apk 文件时或安装新的 apk 后出现错误,则可能是您制作的 cahnge 不匹配,您必须找出问题所在。在这种情况下,您可以在此处发布错误,我们将看看我们能做些什么! :)

关于java - 替换新方法 dexlib2 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44554674/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com