【问题标题】:Proguard- Necessary to customize proguard-project.txt in order to obfuscate Source code?Proguard - 需要自定义 proguard-project.txt 以混淆源代码?
【发布时间】:2014-11-06 15:23:12
【问题描述】:

我正在尝试使用proguard 来混淆一个非常简单的“Hello World”应用程序的源代码,我正在使用Eclipse IDE。

到目前为止,我采取的两个步骤如下:

1. Removed comment in project.properties file to enable Proguard

2. Right clicked on project>Android tools>Export unsigned Application Project

然后我使用apktool 从提取的 APK 中查看源代码。

我注意到 Proguard 没有混淆应用程序中的源代码。它只是混淆了ActionBarActivity 超类和XML Layout 名称。如下图:

 package com.example.proguardtesttt;

    import android.os.Bundle;
    import android.support.v7.a.f;
    import android.view.Menu;
    import android.view.MenuInflater;
    import android.view.MenuItem;

    public class MainActivity extends f
    {
      protected void onCreate(Bundle paramBundle)
      {
        super.onCreate(paramBundle);
        setContentView(2130903064);
      }

      public boolean onCreateOptionsMenu(Menu paramMenu)
      {
        getMenuInflater().inflate(2131492864, paramMenu);
        return true;
      }

      public boolean onOptionsItemSelected(MenuItem paramMenuItem)
      {
        if (paramMenuItem.getItemId() == 2131034172)
          return true;
        return super.onOptionsItemSelected(paramMenuItem);
      }
    }

为什么会这样?以及如何确保混淆我的所有源代码?

注意:我几乎可以肯定 Proguard 已启用,因为 .apk 比未启用 proguard 的相同 .apk 小 300kb。

【问题讨论】:

    标签: android eclipse proguard


    【解决方案1】:

    有些类名和方法名不能混淆,因为这会破坏应用程序。

    您的反编译器正在编造参数名称;它们不在编译后的代码中(可能与原始源代码不同)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      相关资源
      最近更新 更多