web-dev-qa-db-ja.com

Java難読化ツール?

私はJava開発を行っており、Java難読化ツールがあれば、GNOME 3.20を搭載したUbuntu GNOME 16.04にインストールできますか?コードを渡すと、すべてのコードが1行になり、すべてのインデントが削除され、関数や変数の名前などがランダムな値に変更されて、一般にコードの読み取りや逆コンパイルが困難になります。それがすべてではないにせよ、コードに対して実行したいものを選択するオプションを私に与えた場合。

2
user364819

Proguardはこれを実行し、何よりもアーカイブで利用できます。

Sudo apt-get install proguard

使用法

ファイルがあると仮定HelloWorld.Java

public class HelloWorld {
    public static void main(String[] args) {
        showMessage();
    }
    private static void showMessage() {
        System.out.println("Hello World!");
    }
}

最初にそれをコンパイルします:

javac HelloWorld.Java

次に、以下を使用してJARを作成します。

jar cfe HelloWorld.jar HelloWorld HelloWorld.class

Proguardで実行するのは次のように簡単です。

proguard @config.pro

...どこ config.proは:

-injars HelloWorld.jar
-outjars HelloWorld_out.jar
-libraryjars /path/to/rt.jar
-keep public class HelloWorld { 
      public static void main(Java.lang.String[]); 
}

注:libraryjarsのパスをJDKの適切なパスに変更します。たとえば、OpenJDK 8でコンパイルする場合は、次のパスを使用します。

/usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/rt.jar
2
GLaDOS