我正在尝试使用 dexguard
附带的 retrace
工具来调试混淆代码中的异常。混淆标识符使用非 ASCII 字符,至少它在生成的映射文件中看起来是这样的,例如:
boolean areEqual(char[],char[]) -> ËŠ
当我尝试从设备导出堆栈跟踪以便将其提供给 retrace
时,这给我带来了问题。是我的混淆设置有问题,还是 dexguard
使用非 ASCII 字符正常?如果是这样,我应该如何从设备中导出堆栈跟踪以保存它们?
编辑:从那以后,我发现了 adb logcat -B
形式的解决方法,它以二进制形式输出日志。这会导致日志文件有点难以阅读,但在堆栈跟踪中确实包含正确的非 ASCII 字符。关于 dexguard
的原始问题仍然存在。
最佳答案
DexGuard 确实可以使用非 ASCII UTF-8 字符进行混淆,具体取决于混淆库。它的 ReTrace 工具可以很好地处理它们,但您需要确保在复制它们时您的环境不会破坏堆栈跟踪:控制台、文本编辑器、窗口系统等。
关于android - dexguard 混淆中的非 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22806688/