Domanda

im utilizzando Proguard e nascondere il mio codice .. e id sembra funzionare ... 'mezzo'. Voglio solo che non decodificato, e da lavorare, e privati ??di non essere visto da Jad ..

ecco il mio codice 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;
    }
}

ed ecco il mio dati .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

e qui è la mia uscita 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;
}

sembrano funzionare, come privati ??sono modificati per altri nomi dei metodi, mentre altri non lo sono, ma viene decodificato !!! C'è qualcosa di sbagliato con le mie opzioni .pro? o .. è perché il codice è così semplice?

aiutarmi ragazzi; - <

È stato utile?

Soluzione

Tutto funziona come dovrebbe; Proguard non può codice di "nascondere". Si può solo rendere più difficile da capire.

Detto questo: non sprecare tempo e denaro su strumenti come questo. 1. non si fermerà persone dedicate. 2. Solo una parte della conoscenza è nel codice. Quando qualcuno cerca di "rubare" (come si fa a "rubare" un'idea? Idee crescono solo quando si diffondono) del codice, hanno ancora a ripartire da zero, mentre si dispone di tutte le conoscenze. Essi avranno bisogno di più tempo di quello di aggiungere funzionalità o di costruire un nuovo prodotto da esso, per esempio.

Se si trova un prodotto che guarda con sospetto come il vostro lavoro, si può sempre fare causa in tribunale per violazione del copyright - se si può dimostrare che il codice è tuo. Se non è possibile dimostrare che, offuscamento è inutile.

Così a meno che sono a strumenti di uso del genere, non offrono alcun valore reale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top