我正在尝试使用smali更改apk文件,这样每次访问列表的另一个成员时,变量都会递增。
我希望做两件事,首先声明一个名为public static int
的{{1}},然后再实现此代码:
val1
但是我对smali代码的了解非常有限,我想对此有所了解。
答案 0 :(得分:0)
我使用apktool将dex代码转换为smali:
Java代码:
private HashMap ListX;
public void TestCodeStatic()
{
String str = (String)this.ListX.get(val1);
val1++;
}
Smali代码:
.field public static val1:I
# instance fields
.field private ListX:Ljava/util/HashMap;
# virtual methods
.method public TestCodeStatic()V
.locals 3
.prologue
.line 54
iget-object v1, p0, Lcom/example/app/MainActivity;->ListX:Ljava/util/HashMap;
.line 57
sget v2, Lcom/example/app/MainActivity;->val1:I
.line 60
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
.line 63
move-result-object v2
.line 66
invoke-virtual {v1, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
.line 69
move-result-object v0
.line 72
check-cast v0, Ljava/lang/String;
.local v0, str:Ljava/lang/String;
.line 76
sget v1, Lcom/example/app/MainActivity;->val1:I
.line 79
add-int/lit8 v1, v1, 0x1
.line 82
sput v1, Lcom/example/app/MainActivity;->val1:I
.line 85
return-void
.end method