Android 中如何通过 mapping 反混淆

352 阅读1分钟

当你有 mapping 和 堆栈日志的时候,如何反混淆看到真实的堆栈信息?

废话少说,首先打开你 Android SDK 下的 混淆的脚本。

image.png

image.png

在这里复制 SDK 路径

在 .../sdk/tools/proguard/bin 下,你可以看到三个sh 文件:

image.png

这三个就是待会要执行的脚本,把你的堆栈信息文件和 mapping 文件拖到这个下面来。

什么?你不知道 mapping 文件是哪来的?

你打包之后,在 output 文件夹下,与你的包放在一块的那个,就是它,拖进来 一般在 output/mapping/构建版本/mapping.txt

然后这时候在我们的文件路径下,执行如下命令: sh retrace.sh -verbose mapping.txt 堆栈信息.txt > out.txt

它会把转换后的内容写到 out.txt 里面去。 打开文件,我们就能看到清晰的结果啦。

但是!如果打开文件后还是有混淆的内容怎么办? 我们可以把混淆的内容复制了,在 mapping.txt 里面去搜索,就可以看到对应的内容是什么,手动修改一下就行了