Question

im en utilisant proguard et cacher mon code .. et id semblent fonctionner ... 'moitié'. Je veux simplement pas décodé, et à travailler, et les soldats à ne pas vu par jad ..

voici mon code 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;
    }
}

et voici mes données .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

et voici ma sortie 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;
}

semblent fonctionner, comme soldats sont modifiés à un autre nom de méthode, tandis que d'autres ne sont pas, mais il est DÉCODÉ !!! est-il mal de somethin avec mes options .pro? ou .. est-ce parce que ce code est si simple?

Aidez-moi les gars, - <

Était-ce utile?

La solution

Tout fonctionne comme il se doit; Proguard ne peut pas le code « cacher ». Il ne peut le rendre plus difficile à comprendre.

Cela dit: Ne perdez pas de temps et d'argent sur des outils comme ça. 1. ne nous arrêterons pas des gens dévoués. 2. Seule une partie de la connaissance est dans le code. Quand quelqu'un essaie de « voler » (comment voulez-vous « voler » une idée? Des idées se développent seulement quand ils se propagent) le code, ils doivent encore commencer à partir de zéro alors que vous avez toutes les connaissances. Ils auront besoin de plus de temps que vous d'ajouter des fonctionnalités ou de créer un nouveau produit à partir, par exemple.

Si vous trouvez un produit qui ressemble étrangement à votre travail, vous pouvez toujours les poursuivre en justice pour violation du droit d'auteur - si vous pouvez prouver que le code est le vôtre. Si vous ne pouvez pas le prouver, l'obscurcissement est futile.

Donc, à moins que vous Vous à utiliser des outils comme ça, ils n'offrent une valeur réelle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top