zeyuphoenix

          愿我愛的人快樂,愿愛我的人快樂,為了這些,我愿意不快樂.

          javassist使用教程(jar破解)

          Javassist是一個開源的java字節碼操作工具,主要是對已經編譯好的class文件進行修改和處理,這里我寫了一個簡單的說明,復雜的請去看www.javassist.com的官方文檔。

          首先說明的是我不是不尊重作者的成果,有時候需要給客戶選擇的時候不可能用戶沒看就要花錢買,可以先破解了讓用戶看效果,效果好自然會買的.

          1.       首先下載開源的代碼,或者直接使用它的jar,開源的代碼里有simple,可以構建工程運行。

          下載回來的文件結構如下,如果你想構造工程的話,先查看你的windowsclasspath是否引入了javatools.jar,沒有的話你需要在工程里引入,這個jarJDKlib目錄下面,主要作用是提供JDI的使用。

            


          2.       Javassist下面有很多例子,包括的方法名字的修改,權限的修改和參數的修改等等,可以自己看,我主要說明一下jar破解方面的。

          (1)       首先準備你要破解的jar,我現在要破解的是chart.ext.jar

          (2)       先用反編譯工具,查看一下你需要修改代碼的位置,反編譯出來可能有錯誤,但是類名和方法名一般可以反編譯正確,如果jar的加密混淆達到了類名和方法名都混淆掉的話,這個方法就不能用了(一般不會出現這么牛的混淆工具)。

               

          (3)       經過分析反編譯的jar文件,我們找到a.class這個類,這個類是在圖上繪制版權的,去掉他就可以了(有的jar的授權是時間的,原理差不多,找到判斷時間的關鍵跳轉就可以了)

          (4)       開始寫代碼,很簡單的幾句話

          ///////入口啟動函數

                   publicstaticvoid main(String[] args) throws Exception {

                   //這個是得到反編譯的池

                  ClassPool pool = ClassPool.getDefault();

                  //取得需要反編譯的jar文件,設定路徑

                  pool.insertClassPath("E:""crack""chart.ext.jar");

                  //取得需要反編譯修改的文件,注意是完整路徑

                  CtClass cc1 = pool.get("com.objectplanet.chart.a");

                  try {

                      //取得需要修改的方法

                      CtMethod method = cc1.getDeclaredMethod("a");

                     //插入修改項,我們讓他直接返回(注意:根據方法的具體返回值返回,因為這個方法返回值是void,所以直接return)

                      method.insertBefore("{if(true) return ;}");

                      //寫入保存

                      cc1.writeFile();

                  } catch (NotFoundException e) {

                      e.printStackTrace();

                 }

          }

          執行后會在工程下生成一個新的class文件,反編譯打開查看,會發現

                  if (1 != 0)

                      return;

                 這個就不會執行繪制了



          (6)                把原有的用winrar解壓開

          (7)        把修改的class覆蓋原有的class

          (8)        winrar把解壓出來的重新壓縮,主要要選擇壓縮格式為zip

          10 把生成的壓縮文件chart.ext.zip修改為chart.ext.jar,完工。

          posted on 2010-04-06 22:24 zeyuphoenix 閱讀(6768) 評論(0)  編輯  收藏 所屬分類: 其它Java使用

          導航

          <2010年4月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          統計

          常用鏈接

          留言簿(52)

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 泗洪县| 壶关县| 晴隆县| 子洲县| 临沧市| 巴彦淖尔市| 韶山市| 呼伦贝尔市| 习水县| 平泉县| 吉水县| 乐至县| 金沙县| 清新县| 孟津县| 渝北区| 那坡县| 屯昌县| 济宁市| 阿拉善右旗| 象山县| 九台市| 常熟市| 平山县| 通山县| 乐清市| 柳州市| 上栗县| 思南县| 遵化市| 将乐县| 芦山县| 汽车| 新沂市| 保靖县| 措勤县| 阿图什市| 乌海市| 永济市| 兴国县| 阜宁县|