2017-02-01 9 views
1

問題はProguard5.3.2の最新バージョンを使用した難読化です。 私のコンピュータ環境はbuild、eclipse、android 22、javaレベル1.6です。 Proguardの通話料を使用した後、 dump.txt、mapping.txt、seeds.txt、およびusage.txtのファイルが作成されます。Proguardが動作しない、Eclipse(アンドロイド)がObfuscationでない

ただし、Obfuscationは、エクスポートされた署名付きAndroidアプリケーションで生成されたapkには適用されません。 私が誤ってソースに適用したことを教えてください。

私は、単純なキーイベントについて、sourcehttps://www.dropbox.com/s/2ir1y8xea28l9uj/KeyEvent.7z?dl=0) を添付しました。 オプションはデフォルトオプションです(ツール> proguard> proguard-android.txt)。何も変更しませんでした

ご協力いただきありがとうございます。今後ともよろしくお願いいたします。

簡単なステップ

1 project.propertiesは、ProGuardのパスに追加し

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

ProGuardの-android.txtアンドロイドデフォルト設定

2更新ProGuardの

proguard 5.3.2 

を編集しないでください3プロゴアードフォルダとファイルを作成

dump.txt , mapping.txt ,seeds.txt ,usage.txt 

4輸出singned Androidアプリケーション

no error , made singned apk 

5出力APK - > decomplieが、難読化しない mapping.txt

com.superdroid.test.event.key.MainActivity -> 
com.superdroid.test.event.key.MainActivity: 
long mExitModeTime -> a 

decompleのAPK源

MainActivity.class not change (mExitModeTime -> a) 
private long mExitModeTime = 0L; 

答えて

0

ProGuardのdoesnの0から拡張されたクラスを難読化するは、Eric LaFortune(元ProGuardの著者)の回答hereに記載されています。

usage.txtファイルをチェックすることによって、難読化されたJavaクラスの完全なリストを見つけることができますが、変更されなかったクラスはseeds.txtにリストされています。

+0

:)あなたは、代替ソリューションを試すことができます。 proguard-android.txtにはオプション-dontusemixedcaseclassnames、-dontskipnonpubliclibraryclasses、-dontwarn android.supportがあります。** -verbose、-dontoptimize、-dontpreverify-dontshrink#(このオプションはusage.txtを作成しません)。 .txt リソースファイルが存在しませんでした。つまり、それを変更しました リソースファイルが変更されると予想しました。 mapping.txt find int activity_horizo​​ntal_margin - > a Obfuscation –

+0

int activity_horizo​​ntal_margin - > aは、 'activity_horizo​​ntal_margin'が難読化されたことを意味し、現在は' a'と呼ばれています。あなたは間違いなく '-dontshrink'指令を望まないので、ProGuardはその重要なステップの1つをスキップします。 –

+0

私はAndroidスタジオを使用していて、同じオプションで同じ設定で成功しました。しかし日食は働いていません... 私はスタジオを使用します。 –

0

あなたが実際にやろうとしているのは、パスワードやapkから取得できないようにする文字列やintなどの静的フィールドを保存することです。残念ながら、あなたはそれを行うことはできません。私の知る限りでは、たとえあなたがそれを活動に入れていなくても、定数は常にapkのどこかに存在します。パスワードのような保護されたコンテンツがある場合は、ハードコードしないでください。ユーザーにコードを入力させるなど、コードにそのパターンを適用するには別のパターンが必要です。

+0

あなたの意見をお聞かせください。私はちょうどフォルダ名や変数名がわかりにくいのを見たいと思っています。 –

+0

私の誤解には申し訳ありません。あなたが値を隠したかったような言葉が私には聞こえました。私はその過ちを何度も見ました。 –

0

すべてのアクティビティクラスとすべての文字列を難読化したい場合は、キー、パスワード、...Iオプションの変更(ProGuardの-android.txtは)**すべてのブロックを保つように、[OK]を感謝あなたのコメントBg+ Anti Decompiler/Obfuscator

Obfuscated sample

public class l000001 extends Activity { 
static int ߤ¤=0,ߤ¥=0,ߤª=0; 
static List ߤº=null; 
static int[] ߤÞ=null; 
void ¢¢£() { 
    ¢¢ = (AdView) findViewById(R.id.ad_view); 
    ¢¢¢=null; 
    { 
     AdRequest ¢¢¤ = new AdRequest.Builder() .build(); 
     ¢¢.loadAd(¢¢¤); 
     ¢¢º(); 
    } 
} 
+0

他のユーザーの読みやすいようにコードスニペットを投稿する際は、標準のコード構文を使用してください – Adonis

関連する問題