2011-03-15 5 views
2

im en utilisant proguard et en cachant mon code .. et ID semblent fonctionner ... «moitié». je veux simplement pas décodé, et à travailler, et les soldats à ne pas vu par jad ..comment adapter Proguard à .jar et cacher mes méthodes privées?

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É !!! Y at-il quelque chose de mal avec mes options .pro? ou .. est-ce parce que ce code est si simple?

Aidez-moi les gars, - <

+0

désolé pour indentation laide .. débutant ici ^^ – minimanimo

Répondre

1

Tout fonctionne comme il se doit; Proguard ne peut pas "cacher" le code. Cela ne peut que rendre plus difficile à comprendre. Cela dit: Ne perdez pas de temps et d'argent avec des outils comme celui-là. 1. N'arrêtera pas les personnes dévouées. 2. Seule une partie des connaissances est dans le code. Quand quelqu'un essaie de «voler» (comment «voler» une idée, que les idées ne se développent que quand elles se propagent) le code, il doit tout recommencer à zéro alors que vous avez toutes les connaissances. Ils auront besoin de plus de temps que vous pour ajouter des fonctionnalités ou en construire un nouveau produit, 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'obfuscation est futile.

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

+1

Appréciez votre réponse sincère. Je ferais mieux d'utiliser JNI à la place. thanx Digulla. – minimanimo

Questions connexes