1

別のプログラム内で Java .class ファイルを逆コンパイルすることは可能ですか? CAVAJ や DJ Java Decompiler などのツールを認識しています。 なんで ?: プログラム内のクラス ファイルを変更して、同じファイルにダンプしています。次に、変更されたクラス ファイルのソース ファイルを解析します。前もって感謝します。

4

3 に答える 3

1

実行時にクラスを変更する場合は、クラスを逆コンパイルする必要がない場合があります。バイトコードを操作できます。http://cglib.sourceforge.net/を見てください。

于 2012-11-09T22:39:27.593 に答える
1

これが可能な答えです(これは私がソースファイルをコンパイルするために使用するものです)

private int runProcess(String command) throws Exception
{
    Process pro = Runtime.getRuntime().exec(command);
    System.out.println(command);
    printLines("", pro.getInputStream());
    printLines("",pro.getErrorStream());
    pro.waitFor();
    return(pro.exitValue());
}

次に、次のようなものを使用できます。

int exitValue = runProcess(your command here);

JD-GUI は機能しないと思います。コマンドライン Java 逆コンパイラが必要です。

これらのリンクが役立つかもしれません:
JD-GUI を使用した Java ファイルのバッチ逆コンパイル
http://en.wikipedia.org/wiki/JAD_%28JAva_Decompiler%29
http://viralpatel.net/blogs/decompile-class-file-java-decompiler -class-java-class/

最後のリンクには、Windows コンピューター用のコマンド ライン ツールである JAD へのダウンロード リンクがあります。

OS によってコマンドが異なる場合がありますが、jad を cmd クラス パスに移動すると、単に「jad classname.class」になる場合があります。Mac os x を使用しているため、これがどこにあるのかわかりません。

これが役立つことを願っています!

于 2012-11-09T17:57:20.247 に答える