gpt4 book ai didi

java - 修改现有的 smali 常量/方法

转载 作者:行者123 更新时间:2023-12-02 09:10:06 25 4
gpt4 key购买 nike

我使用 apktool 将 .dex 解码为 smali,但我找不到编辑 DEBUG 的方法,DEBUG 是一个默认为 false 的 boolean 值(在 Java 字节码编辑器中读取 0x0000000),以始终返回 true。我尝试通过 JBE、recaf 和 HxD 直接编辑 0x0000000 字段,但程序要么无法编辑 boolean 字段(JBE 和 recaf),要么在十六进制编辑后无法识别 .class。

任何帮助,无论是关于如何更改 .smali 代码还是 .class 代码,我们都将不胜感激。

.class public final Lcom/rockstargames/gtactw/BuildConfig;
.super Ljava/lang/Object;
.source "BuildConfig.java"


# static fields
.field public static final DEBUG:Z


# direct methods
.method public constructor <init>()V
.locals 0

.prologue
.line 4
invoke-direct {p0}, Ljava/lang/Object;-><init>()V

return-void
.end method

JD GUI简单地将上面的代码读为

package com.rockstargames.gtactw;

public final class BuildConfig {
public static final boolean DEBUG = false;
}

最佳答案

java编译器通常会在编译时内联对静态final字段的引用。因此,即使您更改该字段的值,通常也不会实际影响任何内容。

相反,您需要在原始代码中实际使用该值的地方修改该值。不幸的是,现在很难确定它在哪里。因为编译器内联该值后,它将类似于 const v0, false

关于java - 修改现有的 smali 常量/方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59490018/

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