Android 将混淆后的堆栈信息恢复
当混淆后的代码输出一个堆栈信息时,方法名是不可识别的,这使得调试变得很困难,甚至是不可能的。
幸运的是,当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下)
- 运行
proguardgui.sh
- 从左边的菜单选择“ReTrace”
- 在上面的Mapping file中选择你的mapping文件,在下面输入框输入要还原的代码。
- 点击右下方的“ReTrace!”
Android 将混淆后的堆栈信息恢复相关推荐
- Android代码混淆后的定位
Android代码混淆后的定位 什么是代码混淆 如何开启Android Studio的代码混淆 如何在程序奔溃后定位到奔溃的代码行 mapping.txt 分析流程 什么是代码混淆 在java写的.j ...
- Android代码混淆后查看日志
Android中可以通过混淆减少apk的大小,提高apk反编译的难度. 但是在混淆过后会遇到一个问题,就是日志,比如说错误日志的函数会变成abcd. 怎么解决这个问题呢 通过mapping文件 map ...
- Android通过Mapping文件retrace混淆后的堆栈
App发布后都会进行混淆,如果发生crash就需要用Mapping文件retrace出堆栈. proguard 命令: retrace堆栈 sh proguard5.2.1/bin/retrace.s ...
- Android开发中混淆后Gson序列化、反序列化的那些坑,androidstudio配置
为什么呢? 因为反序列化创建对象本质还是利用反射, 会根据 json 字符串的 key 作为属性名称, value 则对应属性值. 如何解决 将序列化和反序列化的类排除混淆 使用 @Serialize ...
- Android打包混淆压缩
声明 这篇文章,借鉴参考了下面的两篇文章,算是一个自己对混淆这块的总结. 写给Android开发者的混淆使用手册 Android混淆打包那些事儿 混淆 简介 说到混淆,就要说到proGuard,And ...
- Android 代码混淆 混淆方案
因为开启混淆会使编译时间变长,所以debug模式下不开启.我们需要做的是: 1.将release下minifyEnabled的值改为true,打开混淆: 2.加上shrinkResources tru ...
- Android:如何从堆栈中还原ProGuard混淆后的代码
本文翻译自Android: How To Decode ProGuard's Obfuscated Code From Stack Trace 本篇文章是写给那些在他们的应用中使用ProGuard并且 ...
- 我的Android进阶之旅------gt;解决Jackson等第三方转换Json的开发包在开启混淆后转换的实体类数据都是null的bug...
1.错误描述 今天测试人员提了一个bug,说使用我们的app出现了闪退的bug,后来通过debug断点调试,发现我们的app转换服务器发送过来的json数据后,都是为null.而之前已经提测快一个月的 ...
- 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )
文章目录 一.Proguard 混淆后的报错信息 二.Proguard 混淆映射文件 mapping.txt 更多 ProGuard 混淆配置参考 : https://www.guardsquare. ...
最新文章
- MVC5路由系统机制详细讲解
- 怎么用js调用C#后台方法
- 一个使用JAVA xmlencoder 例子
- c语言实现感知器算法,感知器算法(c语言版).doc
- 阅读替换净化规则_强力推荐一个开源阅读软件
- 考公 | 张小龙讲申论(2019地市级真题)
- 计算机故障基本维修方法,11种打印机常见故障维修方法
- 如何破解 App 网络代理后出现网络不可用的情况
- Matlab GUI的文件打开和保存uigetfile uigetdir
- 小县城开什么店比较挣钱?
- Bert入门:使用Bert运行MRPC的demo成功案例
- Android面试题(五)性能优化·1
- 传统 以太网 时隙(slot time) 理解
- 获取滚动条滚动距离兼容写法
- 办公和设计必备|矢量图设计软件
- keepalived(haproxy高可用、haproxy高可用双主、lvs+keepalived)
- OpenFaaS实战之二:函数入门
- 五分钟了解--指纹浏览器与普通浏览器的区别
- 深富策略:消费白马迎来反攻 能否配置?
- 转录组数据分析(2)——基因组比对STAR
热门文章
- WebService部署服务器调试时提示 “测试窗体只能用于来自本地计算机的请求”解决方法...
- Linux软件安装管理 - CentOS (三) ---- 源码包管理
- 《LINUX内核设计与实现》第五章学习总结
- 【转】C#获取当前路径7种方法
- oracle 的行级触发器
- 2013 QConf上海软件开发大会总结
- C#中使用JavaScriptSerializer类实现序列化与反序列化
- [CodeForces1070C]Cloud Computing(2018-2019 ICPC, NEERC, Southern Subregional Contest )
- RAID 0、1、5、1+0总结
- WCF 4.0 REST服务解决Method Not Allowed错误