posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          jad 反編譯 (instruction + tools)

          Posted on 2009-07-26 22:19 Gavin.lee 閱讀(333) 評論(0)  編輯  收藏 所屬分類: 經(jīng)驗(yàn)&常識
          首先表一個態(tài):jad真TM 的太好用了,呵,我們經(jīng)常用的jar包,想查了源碼,對不起,你必須去下載source去,有個這個工具,就不用了,首先介紹下cmd下通過指令操作:

          一:
          (1).完了后將TestSplit.jad -->TestSplist.java,直接打開OK

          C:\Documents and Settings\Administrator\桌面>jad TestSplit.class
          Parsing TestSplit.class... Generating TestSplit.jad

          (2).直接轉(zhuǎn)化成.java文件

          C:\Documents and Settings\Administrator\桌面>jad -sJava TestSplit.class
          Parsing TestSplit.class... Generating TestSplit.Java

          (3).將.class文件直接打印到控制臺,查看
          C:\Documents and Settings\Administrator\桌面>jad -p TestSplit.class
          // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
          // Jad home page: http://www.kpdus.com/jad.html
          // Decompiler options: packimports(3)
          // Source File Name:   TestSplit.java

          import java.io.PrintStream;

          public class TestSplit
          {

              public TestSplit()
              {
              }

              public static void main(String args[])
              {
                  TestSplit testsplit = new TestSplit();
                  System.out.println(testsplit.bubbleSort("1,32,23 14 5,16 7"));
              }

              public static String bubbleSort(String s)
              {
                  String as[] = s.split(",| ");
                  for(int i = 0; i < as.length; i++)
                  {
                      for(int j = 0; j < as.length - 1 - i; j++)
                          if(Integer.parseInt(as[j]) > Integer.parseInt(as[j + 1]))
                          {
                              String s2 = as[j];
                              as[j] = as[j + 1];
                              as[j + 1] = s2;
                          }

                  }

                  String s1 = "";
                  for(int k = 0; k < as.length; k++)
                      if(s1.equals(""))
                          s1 = as[k];
                      else
                          s1 = (new StringBuilder()).append(s1).append(",").append(as[k]).
          toString();

                  return s1;
              }
          }

          (4).jad -o -r -sjava -d src bin\*.class,將bin里面所有的.class反編譯到src下面
          C:\Documents and Settings\Administrator\桌面>jad -o -r -sjava -d c:\ d:\MyWorkSpace\tools\WebRoot\WEB-INF\classes\com\Gavin\io\*.class
          Parsing d:\MyWorkSpace\tools\WebRoot\WEB-INF\classes\com\Gavin\io\FileAdd.class.
          .. Generating c:\com\Gavin\io\FileAdd.java
          Parsing d:\MyWorkSpace\tools\WebRoot\WEB-INF\classes\com\Gavin\io\FileOperator.c
          lass... Generating c:\com\Gavin\io\FileOperator.java
          Parsing d:\MyWorkSpace\tools\WebRoot\WEB-INF\classes\com\Gavin\io\WriteLog.class
          ... Generating c:\com\Gavin\io\WriteLog.java

          注:將產(chǎn)生: c:\com\Gavin\io文件夾。

          二:
          MyEclipse集成jadClipse,先去網(wǎng)上下
          可惜的是沒有找到直接在MyEclipse下安裝的site地址。

           Jadclipse--一個自動反編譯.class文件的eclipse小插件,開發(fā)時候很有用
            1.首先在壓縮包里拿出jad.exe丟到%JAVAHOME%\bin下面去
            2.把壓縮包里的jadclipse_3.3.0.jar丟到eclipse下的plugins目錄下去
            3.啟動eclipse,在preferences下可以看到j(luò)adclipse的選項(xiàng)
              (切記jad.exe是放在你當(dāng)前eclipse關(guān)聯(lián)的那個jdk目錄的bin下)
            4.在File Association中將.class文件的default打開方式為jadclips

           好的,試著去隨便找個.class文件,雙擊就能看到源代碼了

          主站蜘蛛池模板: 清苑县| 太康县| 临江市| 玉山县| 定结县| 闸北区| 涟源市| 台湾省| 清水河县| 微博| 庆安县| 柳江县| 边坝县| 台东市| 宜兰县| 五大连池市| 临泉县| 诏安县| 乌兰察布市| 上饶县| 长春市| 阿合奇县| 富宁县| 林芝县| 临湘市| 西乌珠穆沁旗| 镇赉县| 东乡族自治县| 曲麻莱县| 赤壁市| 安新县| 即墨市| 高碑店市| 阳东县| 西盟| 齐齐哈尔市| 筠连县| 罗甸县| 南投市| 陕西省| 岚皋县|