Как адаптировать Прогуарку к .Jar и скрыть мои личные методы?

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

  •  24-10-2019
  •  | 
  •  

Вопрос

Я использую прогирду и скрываю свой код .. и, кажется, работают ... «Половина». Я просто хочу, чтобы это не декодировано, и для того, чтобы быть сработавшим, и рядовые, чтобы не было видно Джад ..

Вот мой код 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? Или .. это потому, что этот код такой прост?

Помоги мне, ребята;-

Это было полезно?

Решение

Все работает так, как должно быть; Прогар не может «скрыть» код. Это может только затруднить понимание.

Тем не менее: не тратьте время и деньги на такие инструменты. 1. Не останавливает преданных людей. 2. Только часть знаний находится в коде. Когда кто -то пытается «украсть» (как вы «крадите» идею? Идеи растут только при распространении) код, им все равно приходится начинать с нуля, пока у вас есть все знания. Им понадобится больше времени, чем вы, чтобы добавить функции или создать, например, новый продукт.

Если вы найдете продукт, который нахожусь с подозрительно, как ваша работа, вы всегда можете подать в суд на них в суде за нарушение авторских прав - если вы можете доказать, что код ваш. Если вы не можете доказать это, запутывание бесполезно.

Итак, если вы имеют Чтобы использовать такие инструменты, они не предлагают реальной ценности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top