Proguardを.jarに適応させ、私のプライベートな方法を隠す方法は?
質問
Proguardを使用してコードを隠しています。私はそれが解読されず、働きたいと思っています、そして、プライベートはJadに見られません。
これが私の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オプションに何か問題がありますか?または..このコードがとても簡単だからですか?
みんなを助けてください; -
解決
すべてが必要に応じて機能します。 Proguardはコードを「非表示」することはできません。理解するのが難しくなるだけです。
とはいえ、そのようなツールに時間とお金を無駄にしないでください。 1.献身的な人を止めません。 2.知識の一部のみがコードにあります。誰かが「盗み」しようとするとき(どのようにアイデアを「盗みますか?」アイデアは、コードを広めるときだけ成長します)、あなたがすべての知識を持っている間、彼らはまだゼロから始めなければなりません。たとえば、機能を追加したり、そこから新しい製品を構築するために、あなたよりも多くの時間が必要です。
仕事のように疑わしく見える製品を見つけた場合、コードがあなたのものであることを証明できれば、著作権侵害のためにいつでも法廷で訴えることができます。あなたがそれを証明できないなら、難読化は無駄です。
だからあなたがいない限り 持ってる そのようなツールを使用するために、それらは本当の価値を提供しません。
所属していません StackOverflow