2

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

このクリーニングに関連するものはありますか?

4

1 に答える 1

0

さらなる研究:

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

将来、この謎が解決された場合は、私にもお知らせください。

ありがとう。

于 2013-11-16T22:33:34.520 に答える