我使用dex2jar从apk获取jar并使用JD-GUI对其进行查看。
但是我注意到有一些标签符号,例如
if (this.data.length != 7)
break label279;
// more code here
label279: short[] aos = { 0, 0 };
它是由编译器(或混淆)添加的吗?还有其他工具可以用来避免这些标签吗?
如果发现这个
https://code.google.com/p/dex2jar/source/browse/dex-ir/src/main/java/com/googlecode/dex2jar/ir/ts/CleanLabel.java?r=e8b872fdfce8a5a39aa7df083c46ec724fa8d3f4
这与清洁有关吗?
最佳答案
进一步的研究:
if (Math.abs(k) > this.mMaxRotationAngle)
if (k >= 0)
break label100;
label100: for (k = -this.mMaxRotationAngle; ; k = this.mMaxRotationAngle)
{
transformImageBitmap((ImageView)paramView, paramTransformation, k);
break;
}
通过上面的自然观察代码,我将代码更改为:
if (Math.abs(k) > this.mMaxRotationAngle)
// label100:
for (k = -this.mMaxRotationAngle; ; k = this.mMaxRotationAngle)
{
if (k >= 0)
break;// label100;
transformImageBitmap((ImageView)paramView, paramTransformation, k);
// break;
}
仍然
label100
仍然是一个谜...想知道dex2jar在不了解代码的情况下如何处理情况。:
运算符的存在还表明可能存在for each
循环如果将来某个时候这个谜团解决了,请也通知我。
谢谢。