当混淆后的代码输出一个堆栈信息时,方法名是不可识别的,这使得调试变得很困难,甚至是不可能的。

幸运的是,当ProGuard运行时,它都会输出一个<project_root>/bin/proguard/mapping.txt文件,而这个文件中包含了原始的类,方法和字段名被映射成的混淆名字。

retrace.bat脚本(Window)或retrace.sh脚本(Linux,Mac OS X)可以将一个被混淆过的堆栈跟踪信息还原成一个可读的信息。它位于<sdk_root>/tools/proguard文件夹中。

执行retrace工具的语法如下:

<1>For Windows OS

retrace.bat [-verbose] <mapping_file> [<stacktrace_file>]

<2>For Mac OS

retrace.sh [-verbose] <mapping_file> [<stacktrace_file>]

例如:

retrace.bat -verbose mapping.txt obfuscated_trace.txt

如果你没有指定<stacktrace_file>,retrace工具会从标准输入读取。

[-verbose]: 可以还原更详细的信息,如方法的返回值类型等;

---------------------------------------------------------------------------------------------------

也可以使用GUI工具:在<sdk-root>/tools/proguard/bin下,有个proguardgui.sh GUI工具(Mac下)

  1. 运行proguardgui.sh
  2. 从左边的菜单选择“ReTrace”
  3. 在上面的Mapping file中选择你的mapping文件,在下面输入框输入要还原的代码。
  4. 点击右下方的“ReTrace!”

Android 将混淆后的堆栈信息恢复相关推荐

  1. Android代码混淆后的定位

    Android代码混淆后的定位 什么是代码混淆 如何开启Android Studio的代码混淆 如何在程序奔溃后定位到奔溃的代码行 mapping.txt 分析流程 什么是代码混淆 在java写的.j ...

  2. Android代码混淆后查看日志

    Android中可以通过混淆减少apk的大小,提高apk反编译的难度. 但是在混淆过后会遇到一个问题,就是日志,比如说错误日志的函数会变成abcd. 怎么解决这个问题呢 通过mapping文件 map ...

  3. Android通过Mapping文件retrace混淆后的堆栈

    App发布后都会进行混淆,如果发生crash就需要用Mapping文件retrace出堆栈. proguard 命令: retrace堆栈 sh proguard5.2.1/bin/retrace.s ...

  4. Android开发中混淆后Gson序列化、反序列化的那些坑,androidstudio配置

    为什么呢? 因为反序列化创建对象本质还是利用反射, 会根据 json 字符串的 key 作为属性名称, value 则对应属性值. 如何解决 将序列化和反序列化的类排除混淆 使用 @Serialize ...

  5. Android打包混淆压缩

    声明 这篇文章,借鉴参考了下面的两篇文章,算是一个自己对混淆这块的总结. 写给Android开发者的混淆使用手册 Android混淆打包那些事儿 混淆 简介 说到混淆,就要说到proGuard,And ...

  6. Android 代码混淆 混淆方案

    因为开启混淆会使编译时间变长,所以debug模式下不开启.我们需要做的是: 1.将release下minifyEnabled的值改为true,打开混淆: 2.加上shrinkResources tru ...

  7. Android:如何从堆栈中还原ProGuard混淆后的代码

    本文翻译自Android: How To Decode ProGuard's Obfuscated Code From Stack Trace 本篇文章是写给那些在他们的应用中使用ProGuard并且 ...

  8. 我的Android进阶之旅------gt;解决Jackson等第三方转换Json的开发包在开启混淆后转换的实体类数据都是null的bug...

    1.错误描述 今天测试人员提了一个bug,说使用我们的app出现了闪退的bug,后来通过debug断点调试,发现我们的app转换服务器发送过来的json数据后,都是为null.而之前已经提测快一个月的 ...

  9. 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )

    文章目录 一.Proguard 混淆后的报错信息 二.Proguard 混淆映射文件 mapping.txt 更多 ProGuard 混淆配置参考 : https://www.guardsquare. ...

最新文章

  1. MVC5路由系统机制详细讲解
  2. 怎么用js调用C#后台方法
  3. 一个使用JAVA xmlencoder 例子
  4. c语言实现感知器算法,感知器算法(c语言版).doc
  5. 阅读替换净化规则_强力推荐一个开源阅读软件
  6. 考公 | 张小龙讲申论(2019地市级真题)
  7. 计算机故障基本维修方法,11种打印机常见故障维修方法
  8. 如何破解 App 网络代理后出现网络不可用的情况
  9. Matlab GUI的文件打开和保存uigetfile uigetdir
  10. 小县城开什么店比较挣钱?
  11. Bert入门:使用Bert运行MRPC的demo成功案例
  12. Android面试题(五)性能优化·1
  13. 传统 以太网 时隙(slot time) 理解
  14. 获取滚动条滚动距离兼容写法
  15. 办公和设计必备|矢量图设计软件
  16. keepalived(haproxy高可用、haproxy高可用双主、lvs+keepalived)
  17. OpenFaaS实战之二:函数入门
  18. 五分钟了解--指纹浏览器与普通浏览器的区别
  19. 深富策略:消费白马迎来反攻 能否配置?
  20. 转录组数据分析(2)——基因组比对STAR

热门文章

  1. WebService部署服务器调试时提示 “测试窗体只能用于来自本地计算机的请求”解决方法...
  2. Linux软件安装管理 - CentOS (三) ---- 源码包管理
  3. 《LINUX内核设计与实现》第五章学习总结
  4. 【转】C#获取当前路径7种方法
  5. oracle 的行级触发器
  6. 2013 QConf上海软件开发大会总结
  7. C#中使用JavaScriptSerializer类实现序列化与反序列化
  8. [CodeForces1070C]Cloud Computing(2018-2019 ICPC, NEERC, Southern Subregional Contest )
  9. RAID 0、1、5、1+0总结
  10. WCF 4.0 REST服务解决Method Not Allowed错误