Proguardを.jarに適応させ、私のプライベートな方法を隠す方法は?

StackOverflow https://stackoverflow.com/questions/5310841

  •  24-10-2019
  •  | 
  •  

質問

Proguardを使用してコードを隠しています。私はそれが解読されず、働きたいと思っています、そして、プライベートはJadに見られません。

これが私のJavaコードです

package kr.pkgcls;

public class sums {
    private int margin;
    private int resVal;
    public sums(){
        margin = 10;
        resVal = 0;
    }
    public sums(int a){
        margin = a;
        resVal = 0;
    }
    private void eval_internal(){
        margin++;
        for(int i = 0; i<margin; i++){
            resVal += i;
        }
    }
    public int eval(){
        //error!! when use "return eval_internal()", it exposes..
        eval_internal();
        return resVal;
    }
}

そして、これが私の.proデータです

#input file
-injars sumslib.jar
#output file
-outjars sumslib2.jar
#lib
-libraryjars <java.home>/lib/rt.jar
#basic ignores
-dontoptimize
-dontshrink
-dontusemixedcaseclassnames
-target 1.6
-verbose
-keep public class kr.pkgcls.**{
    public protected *;
}
#-dontskipnonpubliclibraryclasses
#below makes error 
#-keepparameternames
#-keepclasseswithmembernames public class *{
#   public void sums();
#   public void sums(int);
#   public int eval();
#}
#-keepclasseswithmembernames class kr.pkgcls.**{
#   public **(***); 
#}
#keepclasseswithmembernames public class *{
#}
#external file name input
-obfuscationdictionary dic.txt
-classobfuscationdictionary dic.txt
-packageobfuscationdictionary dic.txt

そして、これが私のJAD出力です。

   // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) radix(10) lradix(10) 

package kr.pkgcls;


public class sums
{

    public sums()
    {
        i = 10;
        l = 0;
    }

    public sums(int j)
    {
        i = j;
        l = 0;
    }

    private void i()
    {
        i++;
        for(int j = 0; j < i; j++)
            l += j;

    }

    public int eval()
    {
        i();
        return l;
    }

    private int i;
    private int l;
}

プライベートは別のメソッド名に変更されているため、機能しているように見えますが、他のメソッドはそうではありませんが、デコードされています!!!私の.proオプションに何か問題がありますか?または..このコードがとても簡単だからですか?

みんなを助けてください; -

役に立ちましたか?

解決

すべてが必要に応じて機能します。 Proguardはコードを「非表示」することはできません。理解するのが難しくなるだけです。

とはいえ、そのようなツールに時間とお金を無駄にしないでください。 1.献身的な人を止めません。 2.知識の一部のみがコードにあります。誰かが「盗み」しようとするとき(どのようにアイデアを「盗みますか?」アイデアは、コードを広めるときだけ成長します)、あなたがすべての知識を持っている間、彼らはまだゼロから始めなければなりません。たとえば、機能を追加したり、そこから新しい製品を構築するために、あなたよりも多くの時間が必要です。

仕事のように疑わしく見える製品を見つけた場合、コードがあなたのものであることを証明できれば、著作権侵害のためにいつでも法廷で訴えることができます。あなたがそれを証明できないなら、難読化は無駄です。

だからあなたがいない限り 持ってる そのようなツールを使用するために、それらは本当の価値を提供しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top