Articles of 混淆

崩溃与Proguard启用

我的应用程序运行完美没有proguard启用,但是当我启用它的应用程序崩溃马上。 我已经尝试了许多组合在configuration无济于事。 有什么我应该保持,我失踪了? proguardconfiguration: https : //gist.github.com/hanleyhansen/99fc07807950bae8e4f5 未混淆的日志: https ://gist.github.com/hanleyhansen/6cba7fc941a79d85802f onSuccess(): https : //gist.github.com/hanleyhansen/e7a4916c42d3ca065c99

在APK中简单的隐藏/模糊string?

有时您需要在应用程序中存储密码,例如用于与您自己的服务器进行通信的用户名/密码。 在这些情况下,不能遵循存储密码的正常过程 – 即散列密码,存储散列,与散列的用户input进行比较 – 因为您没有任何用户input来比较散列值。 密码需要由应用程序本身提供。 那么如何保护APK中存储的密码呢? 下面的密码生成function是否合理安全? 纯文本: String password = "$()&HDI?=!"; 简单的混淆: private String getPassword(){ String pool = "%&/@$()7?=!656sd8KJ%&HDI!!!G98y/&%=?=*^%&ft4%("; return pool.substring(4, 7) + pool.substring(20, 24) + pool.substring(8, 11); } 我知道ProGuard有一些迷惑function,但是我对上面的“混淆”技术在编译时会做些什么感到好奇,以及有人通过查看APK和/或使用其他更复杂技术?

Android,ProGuard和keepclasseswith会员名称

ProGuard为Android应用程序configuration的一个常见模式是保留自定义View类,因为它们可能只是从布局XML引用而不是应用程序代码。 在创build项目时,ADT因此将这些规则添加到项目的proguard.cfg中: -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } 我想这里的想法是说,只要一个类定义了一个可以由布局inflater调用的构造函数,然后保存它。 但是,根据ProGuard的文档, keepclasseswithmembernames限定符是keepclasseswithmembers和allowshrinking简写,如果我理解正确的意思是:允许删除这些类,但是如果保留,不要混淆其成员名称(可能不会打破XML属性名称和类设置器之间的绑定)。 但这并不意味着这些类在缩小阶段(allowhrinking = true)仍然会被移除,除非它们直接在代码中被引用。 事实上,这就是我们在应用程序中使用的自定义小部件所发生的情况,我可以通过将规则设置为keepclasseswithmembers来解决这个问题,因为这样会完全保留匹配的类(值得注意的是,这是官方的ProGuard Android的例子也是)。 我误读了ProGuard文档还是ADT项目向导中的一个错误?

Proguard混淆和通用方法

我试图用ProGuard混淆Android应用程序。 这里我有一堂课 public class Book implements DBbinded 和一个通用的方法 private void storeDBObjects(ArrayList<? extends DBbinded> dbObjects) 此方法的调用在模糊处理之后抛出java.lang.ClassCastException:java.util.LinkedHashMap。 我应该写入proguard.properties来解决这个问题?

如何复制保护PhoneGap Android应用程序? Android电子市场复制保护function是否有用?

Android中有PhoneGap应用程序。 现在我已经准备好发布了,但是我想保护这个应用程序免受脚本小子的注意。 我首先想到,这是不可能的,比我发现在市场上发布应用程序时的“复制保护”function。 所以我很兴奋,但是当我打开它时,它实际上并没有做任何事情。 我可以在没有问题的根源手机上安装应用程序,我可以将其复制到SD卡上,并查看所有来源。 我认为这个“复制保护”function将不允许拥有固定电话的人安装应用程序。 还是我错过了什么? 有没有办法如何使它至less困难,如果不是禁用它,让人们看到我的应用程序中的所有我的HTML和JS源?

Proguard回溯工具的输出

现在我正在尝试使用proguard,在eclipse中使用起来更简单。 我已经导出了我的应用程序的签名版本与故意的错误,导致testing崩溃。 当我得到堆栈跟踪并运行回溯-verbose mapping.txt stack.txt,而不是给我错误发生的地方,它给了我发生错误的类和列出一个方法,其中之一是方法发生。 我已经使用了官方的指南,并且将logcat堆栈跟踪捕获编辑成与开发控制台相同的格式。 任何人都知道问题可能是什么?

Proguard和Android :(

我正尝试在我的Android应用程序上运行Proguard,并遇到问题。 我正在使用SpongyCastle jar(复制和过去的充满弹性的城堡与包改名,所以它不会与androids弹性城堡版本冲突) 运行proguard时,我看到以下内容 我该如何解决? 添加rt.jar到我的库? proguard的要点是缩小代码,但我不断添加jar来解决这些proguard抱怨找不到类的问题! 我错过了什么吗? [proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.InitialDirContext [proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.InitialDirContext [proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls [proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls [proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class javax.naming.directory.SearchControls [proguard] Warning: org.spongycastle.x509.util.LDAPStoreHelper: can't find referenced class […]

在Android中存储API密钥足够了吗?

我正在使用Dropbox API。 在示例应用程序中,它包含以下行: // Replace this with your consumer key and secret assigned by Dropbox. // Note that this is a really insecure way to do this, and you shouldn't // ship code which contains your key & secret in such an obvious way. // Obfuscation is good. final static private String CONSUMER_KEY = "PUT_YOUR_CONSUMER_KEY_HERE"; […]

用android studio混淆多个模块

我遇到了gradle proguard问题…我有以下几个模块: App:主要的应用程序模块。 依赖于ModuleA和ModuleC ModuleA:库模块。 有依赖ModuleB和jar依赖。 ModuleB:库模块 ModuleC:库模块 穿:穿app模块。 build.gradle文件: – 应用程序: buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':ModuleA') compile project(':ModuleC') wearApp project(':Wear') } ModuleA: buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } dependencies { compile fileTree(dir: 'libs', include: […]

Android上的OrmLite Proguard

我应该如何使用Android上的ormlite库使用proguard? 尝试这个: -keep class com.j256.** -keepclassmembers class com.j256.** -keep enum com.j256.** -keepclassmembers enum com.j256.** -keep interface com.j256.** -keepclassmembers interface com.j256.** 但是我得到: 03-23 20:23:54.518:E / AndroidRuntime(3032):java.lang.RuntimeException:无法启动活动ComponentInfo {cz.eman.android.cepro / cz.eman.android.cepro.activity.StationsOverviewActivity}:java .lang.IllegalStateException:找不到辅助类class kb的Context参数的构造函数 我也试着添加这个: -keepclassmembers class * { public <init>(android.content.​Context); } 但是我又得到了另外一个class级的错误。