当你有 mapping 和 堆栈日志的时候,如何反混淆看到真实的堆栈信息?
废话少说,首先打开你 Android SDK 下的 混淆的脚本。
在这里复制 SDK 路径
在 .../sdk/tools/proguard/bin 下,你可以看到三个sh 文件:
这三个就是待会要执行的脚本,把你的堆栈信息文件和 mapping 文件拖到这个下面来。
什么?你不知道 mapping 文件是哪来的?
你打包之后,在 output 文件夹下,与你的包放在一块的那个,就是它,拖进来 一般在 output/mapping/构建版本/mapping.txt
然后这时候在我们的文件路径下,执行如下命令: sh retrace.sh -verbose mapping.txt 堆栈信息.txt > out.txt
它会把转换后的内容写到 out.txt 里面去。 打开文件,我们就能看到清晰的结果啦。
但是!如果打开文件后还是有混淆的内容怎么办? 我们可以把混淆的内容复制了,在 mapping.txt 里面去搜索,就可以看到对应的内容是什么,手动修改一下就行了