Proguard 是否能够混淆记录器消息?
Is proguard capable to obfuscate logger messages?
我使用 proguard 混淆了一个 jar,在研究了生成的 jar 之后,发现它没有混淆我可能想要做的记录器消息。
proguard 怎么做?我使用了所有默认设置的基于 gui 的工具。
原版class
logger.info("value encrypted");
proguard 和反编译后
this.c.info("value encrypted");
简单的答案是 ProGuard 不会这样做。
与此相关,ProGuard 也不会混淆代码中的常量字符串;参见 Does proguard work to obfuscate static string constants?。
我能推荐的最好的东西是:
- 在您的发布版本中关闭日志记录。
- 登录到 Crashlytics,这样最终用户就不会在他们的设备上看到日志消息。
- 实施自定义
LogFormatter
以动态混淆日志消息。 (它可以对所有日志消息执行此操作,或者仅对匹配特定模式的日志消息执行此操作。)
- 如果您真的想混淆代码中嵌入的日志消息字符串,ProGuard 的替代方法可以做到这一点;请参阅上面的问答 link 了解一些线索。
我使用 proguard 混淆了一个 jar,在研究了生成的 jar 之后,发现它没有混淆我可能想要做的记录器消息。
proguard 怎么做?我使用了所有默认设置的基于 gui 的工具。
原版class
logger.info("value encrypted");
proguard 和反编译后
this.c.info("value encrypted");
简单的答案是 ProGuard 不会这样做。
与此相关,ProGuard 也不会混淆代码中的常量字符串;参见 Does proguard work to obfuscate static string constants?。
我能推荐的最好的东西是:
- 在您的发布版本中关闭日志记录。
- 登录到 Crashlytics,这样最终用户就不会在他们的设备上看到日志消息。
- 实施自定义
LogFormatter
以动态混淆日志消息。 (它可以对所有日志消息执行此操作,或者仅对匹配特定模式的日志消息执行此操作。) - 如果您真的想混淆代码中嵌入的日志消息字符串,ProGuard 的替代方法可以做到这一点;请参阅上面的问答 link 了解一些线索。