无线&移动互联网技术研发

换位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

jad 反编译 (instruction + tools)

Posted on 2009-07-26 22:19 Gavin.lee 阅读(329) 评论(0)  编辑  收藏 所属分类: 经验&常识
首先表一个态:jad真TM 的太好用了,呵,我们经常用的jar包,想查了源码,对不起,你必须去下载source去,有个这个工具,就不用了,首先介绍下cmd下通过指令操作:

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

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

(2).直接转化成.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

注:将产生: c:\com\Gavin\io文件夹。

二:
MyEclipse集成jadClipse,先去网上下
可惜的是没有找到直接在MyEclipse下安装的site地址。

 Jadclipse--一个自动反编译.class文件的eclipse小插件,开发时候很有用
  1.首先在压缩包里拿出jad.exe丢到%JAVAHOME%\bin下面去
  2.把压缩包里的jadclipse_3.3.0.jar丢到eclipse下的plugins目录下去
  3.启动eclipse,在preferences下可以看到jadclipse的选项
    (切记jad.exe是放在你当前eclipse关联的那个jdk目录的bin下)
  4.在File Association中将.class文件的default打开方式为jadclips

 好的,试着去随便找个.class文件,双击就能看到源代码了


只有注册用户登录后才能发表评论。


网站导航: