我反编译了一个 apk,看到许多 while 循环立即返回,后面跟着其他代码:
while (true){
return;
if (!cond1){
continue;
}
if (cond2){
continue;
}
}
如果您想在反编译中生成此代码,您会编写什么 Java 代码来实现这一目标?
笔记。反编译过程是apktool -> baksmali -> smali -> dex2jar
编辑
我实际上无法从 Android APK 获取原始 Java 字节码(至少我不知道如何)。可能是我的工具在逆向工程方面做得很差,但以下是 smali 的输出:
:goto_8
return-void
.line 40
:sswitch_9
const/4 v0, 0x0
iput v0, p0, Lcom/sec/android/app/camera/command/ContextualTagSelectCommand;->mContextualTag:I
goto :goto_8
.line 44
:sswitch_d
const/4 v0, 0x1
iput v0, p0, Lcom/sec/android/app/camera/command/ContextualTagSelectCommand;->mContextualTag:I
goto :goto_8
对应于:
while (true)
{
return;
this.mContextualTag = 0;
continue;
this.mContextualTag = 1;
}