2011-03-15 19 views
2

即時通訊使用proguard和隱藏我的代碼..和編號似乎工作...'一半'。 我只是希望它不是解碼,並進行工作,並且不由JAD看到士兵..如何使Proguard適應.jar並隱藏我的私有方法?

這裏是我的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; 
} 

似乎工作,因爲士兵被修改爲另一種方法名,而有些則沒有,但 IT解碼! 我的.pro選項有什麼問題嗎?或者..是因爲這段代碼太簡單了嗎?

幫我出球員; - <

+0

對不起醜陋縮進..這裏^^ – minimanimo 2011-03-15 11:12:14

回答

1

一切正常,因爲它應該; Proguard不能「隱藏」代碼。它只會讓它更難理解。

這就是說:不要這樣的工具,浪費時間和金錢。 1.不會停止敬業的人。 2.只有部分知識在代碼中。當有人試圖「偷竊」(你如何「偷取」一個想法?想法只在擴散時纔會增長),但是當你掌握了所有的知識時,他們仍然必須從頭開始。例如,他們需要比您更多的時間來添加功能或從中構建新產品。

如果你找到一種產品,看上去非常像你的工作,你總是可以起訴他們在法庭上侵犯版權的 - 如果你能證明代碼是你的。如果你無法證明它,混淆是徒勞的。

因此,除非你的使用類似的工具,它們不提供任何實際價值。

+1

新手感謝您真誠的答覆。我最好使用JNI。 thanx Digulla。 – minimanimo 2011-03-16 01:03:47