47

proguard 会混淆静态字符串常量吗?

4

4 回答 4

75

ProGuard 不会混淆字符串常量,如其FAQ中所述。它最近专门针对 Android 的闭源兄弟DexGuard提供了额外的应用程序保护技术,例如字符串加密和类加密。

(我是 ProGuard 和 DexGuard 的开发者)

于 2012-09-30T21:47:07.207 回答
12

不,ProGuard 不加密字符串常量(Proguard FAQ Link

但是有一些商业产品可以帮助你。我会推荐Stringer Java Obfuscator,因为它具有检查调用上下文和完整性控制功能,这使得逆向工程尽可能困难。恕我直言 Stringer 是当今市场上最好的 Java 和 Android 字符串加密器。

另请参阅Allatori Java 混淆器

注意,我是 Licel LLC 的首席执行官。Stringer Java 混淆器的开发者。

于 2012-05-17T10:34:21.097 回答
8

ProGuard所做的(如果配置正确的话)是内联字符串常量。混淆它们没有多大意义,想想看,一个字符串常量可以用来向用户表示一条消息,如果它被混淆有什么好处呢?

于 2012-04-19T01:10:54.637 回答
3

根据我对手册中混淆选项的阅读,答案是否定的。

字符串文字混淆在理论上是可能的,但有必要使用特殊的类加载器在从类文件中读取字符串文字时对其进行去混淆处理。这会很棘手。最重要的是,它并没有取得太大的成就,因为有人可以通过运行带有 Java 调试器的应用程序来轻松恢复原始字符串。

于 2012-04-19T01:05:18.940 回答