Frage

Ich benutze Proguard und verstecke meinen Code .. und ich scheinen zu funktionieren ... 'halb'. Ich möchte nur, dass es nicht dekodiert ist und bearbeitet wird und von Jad nicht gesehen wird.

Hier ist mein Java -Code

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;
    }
}

Und hier sind meine .pro -Daten

#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

Und hier ist meine JAD -Ausgabe.

   // 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;
}

Scheinen zu funktionieren, da die Privaten zu einem anderen Methodamen geändert werden, obwohl andere nicht sind, aber es ist dekodiert !!! Gibt es etwas falsches mit meinen .pro -Optionen? oder .. ist es, weil dieser Code so einfach ist?

hilf mir aus Jungs;-

War es hilfreich?

Lösung

Alles funktioniert so wie es sollte; Proguard kann keinen Code "verbergen". Es kann es nur schwieriger machen zu verstehen.

Das heißt: Verschwenden Sie keine Zeit und Geld für solche Werkzeuge. 1. Verhindert keine engagierten Leute. 2. Nur ein Teil des Wissens befindet sich im Code. Wenn jemand versucht, eine Idee zu "stehlen" (wie "stiehlt" Sie eine Idee? Ideen wachsen nur, wenn er sich ausbreitet), sie müssen immer noch von vorne anfangen, während Sie das gesamte Wissen haben. Sie benötigen mehr Zeit als Sie, um beispielsweise Funktionen hinzuzufügen oder ein neues Produkt daraus zu erstellen.

Wenn Sie ein Produkt finden, das Ihrer Arbeit verdächtig aussieht, können Sie sie immer wegen Urheberrechtsverletzung verklagen - wenn Sie nachweisen können, dass der Code Ihnen gehört. Wenn Sie es nicht beweisen können, ist die Verschleierung zwecklos.

Also, es sei denn du haben Um solche Tools zu verwenden, bieten sie keinen wirklichen Wert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top