android 反編譯和代碼解讀

來源:互聯網
上載者:User

標籤:

二 錯誤碼還原規則

if…else 語句:

反編譯代碼

 

if (paramBoolean)        paramTextView.setTextColor(-16727809);       while (true)       {         return;         paramTextView.setTextColor(-1315861);       }

 

 還原後

 

      if (paramBoolean)         {           paramTextView.setTextColor(-16727809);         }         else         {            paramTextView.setTextColor(-1315861);         }  

 

會把if ..esle 反編譯成 if …while(true)結構.

 

反編譯代碼

 

 if (paramInt1 != 1)        break label185;      if (this.countChild_1 == null)      {        this.countChild_1 = new PokerCountChild(this.mContext);        this.countChild_1 = new PokerCountChild(this.mContext);        this.countChild_1.setPosition((int)(0.83D * BaseGameActivity.screenWidth

 

 - this.countChild_1.getWidth()), (int)(0.2D * BaseGameActivity.screenHeight));        this.countChild_1.setCount(paramInt2);        addOneChild(this.countChild_1);        if (paramInt2 == 0)          this.countChild_1.setAlpha(0);      }      this.countChild_1.setCount(paramInt2);    }    label185:     do      return;    while (paramInt1 != 2);    if (this.countChild_2 == null)    {      this.countChild_2 = new PokerCountChild(this.mContext);      this.countChild_2 = new PokerCountChild(this.mContext);      this.countChild_2.setPosition((int)(0.17D * BaseGameActivity.screenWidth),

 

 (int)(0.2D * BaseGameActivity.screenHeight));      this.countChild_2.setCount(paramInt2);      addOneChild(this.countChild_2);      if (paramInt2 == 0)        this.countChild_2.setAlpha(0);    }    this.countChild_2.setCount(paramInt2);

 

還原

 

 if(i == 1)            {                if(countChild_1 == null)                {                    countChild_1 = new PokerCountChild(mContext);                    countChild_1 = new PokerCountChild(mContext);                    countChild_1.setPosition((int)(0.83D * 

 

(double)BaseGameActivity.screenWidth - (double)countChild_1.getWidth()), 

 

(int)(0.2D * (double)BaseGameActivity.screenHeight));                    countChild_1.setCount(j);                    addOneChild(countChild_1);                    if(j == 0)                        countChild_1.setAlpha(0);                }                countChild_1.setCount(j);            } else            if(i == 2)            {                if(countChild_2 == null)                {                    countChild_2 = new PokerCountChild(mContext);                    countChild_2 = new PokerCountChild(mContext);                    countChild_2.setPosition((int)(0.17D * 

 

(double)BaseGameActivity.screenWidth), (int)(0.2D *

 

 (double)BaseGameActivity.screenHeight));                    countChild_2.setCount(j);                    addOneChild(countChild_2);                    if(j == 0)                        countChild_2.setAlpha(0);                }                countChild_2.setCount(j);                return;            }會將語句倒序,出現break label結構

 

 

反編譯代碼
 
jd-gui有時會將whilei語句翻譯成if,此處要將if改成while

 

switch語句

反編譯代碼

 

   switch (this.mBand)    {     default:     case 0:     case 1:     case 2:    }    while (true)    {      return;      this.mBand.setText("FM1");      continue;      this.mBand.setText("FM2");      continue;      this.mBand.setText("AM");    }還原

 

switch (mBand)    {     case 0:      mBand.setText("FM1");      break;     case 1:       mBand.setText("FM2");       break;     case 2:       mBand.setText("AM");       break;     default:    }

switch規則就是一個continue對應一個case.要注意是是要外層的continue才算數,在if裡的continue不算

enum枚舉
 
還原

 

jd-gui
http://www.qiaodiqiu.com/how-to-read-java-confusion-after-the-anti-compiled-code.html
http://blog.csdn.net/xyz_fly/article/details/8014455
http://blog.csdn.net/hp_2008/article/details/8626010

jad
http://blog.csdn.net/z3h/article/details/2515287
http://blog.csdn.net/z3h/article/details/2640522

 

android 反編譯和代碼解讀

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.