【问题标题】:Non-ASCII characters in dexguard obfuscationdexguard 混淆中的非 ASCII 字符
【发布时间】:2015-05-12 01:22:23
【问题描述】:

我正在尝试使用dexguard 附带的retrace 工具来调试混淆代码中的异常。混淆标识符使用非 ASCII 字符,至少在生成的映射文件中是这样的,例如:

boolean areEqual(char[],char[]) -> ËŠ

当我尝试从设备导出堆栈跟踪以便将其输入retrace 时,这给我带来了问题。我的混淆设置是否有问题,或者dexguard 使用非 ASCII 字符是否正常?如果是这样,我应该如何从设备中导出堆栈跟踪以保留它们?

编辑:我后来发现了adb logcat -B 形式的解决方法,它以二进制形式输出日志。这会导致日志文件有点难以阅读,但堆栈跟踪中确实包含正确的非 ASCII 字符。不过,关于dexguard 的原始问题仍然存在。

【问题讨论】:

    标签: android dexguard


    【解决方案1】:

    DexGuard 确实可能会混淆非 ASCII UTF-8 字符,具体取决于混淆库。它的 ReTrace 工具可以很好地处理它们,但您需要确保您的环境在复制堆栈跟踪时不会破坏它们:控制台、文本编辑器、窗口系统等。

    【讨论】:

    • 嗨,Eric,你能告诉我如何禁用对混淆编码的 UTF-8 支持吗?我们正在使用 Crittercism 进行崩溃分析,但不幸的是,由于这个原因,他们不支持 DexGuard。我搜索了文档并用谷歌搜索了它,但只有这个 stackoverflow-thread 出现了。非常感谢您的出色产品!
    • 抱歉,我在这里发布了一个新问题:stackoverflow.com/questions/29971536/…
    【解决方案2】:

    当您为回溯工具创建追踪文件时,请确保以 UTF-8 格式对内容进行编码。例如,您可以使用菜单选项 - 编码来控制notepad++ 中的编码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 2017-04-01
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      相关资源
      最近更新 更多