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: […]

如何在Eclipse中使用Proguard对Android库(.jar文件)进行混淆

我见过很多关于如何在Eclipse中使用ProGuard模糊Android应用程序(.apk文件)的文章。 另请参阅http://developer.android.com/guide/developing/tools/proguard.html : “在发布模式下构build应用程序时,无论是通过运行Ant版本还是使用Eclipse中的导出向导,构build系统都会自动检查proguard.config属性是否已设置,如果是,ProGuard会自动处理应用程序的字节码在将所有内容打包成.apk文件之前“。 但是,如果使用Eclipse导出向导在.jar文件中导出Android项目,请按照所述的步骤(创build文件proguard.cfg,将proguard.config属性configuration为文件default.properties中的proguard.cfg,使用导出向导等等)似乎并没有工作 – 我看到在所得到的jar文件中没有混淆类名等。 我也有我的proguard.cfg文件中的以下设置,但我没有看到任何输出文件在我的项目目录或在proguard目录(该目录甚至没有创build)。 -dump class_files.txt -printseeds seeds.txt -printusage unused.txt -printmapping mapping.txt 我甚至在我的项目目录中创build了一个文件project.properties,下面这行代码似乎并没有引起ProGuard的注意: proguard.config=proguard.cfg 这个项目没有定义任何活动。 我在Windows上使用Android 2.3.1和Eclipse Galileo 3.5.2。 与Android 3.0相同的结果。 似乎混淆步骤必须以某种方式在Eclipse导出向导中显式插入。 我会感谢任何帮助或见解。 谢谢。