从异常堆栈中还原 ProGuard 混淆过的代码
在Android开发中我们经常会用到代码混淆, 但是如果这时候我们的app出现了崩溃, 返回的调用栈就比较麻烦,
不知道到底哪里有问题, 如下
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)at android.view.LayoutInflater.inflate(LayoutInflater.java:396)at android.view.LayoutInflater.inflate(LayoutInflater.java:352)at android.view.View.inflate(View.java:16119)at com.tvmao.android.a.b.d(Unknown Source)at com.tvmao.android.a.b.getView(Unknown Source)at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)at android.widget.AbsListView.obtainView(AbsListView.java:2273)at android.widget.ListView.makeAndAddView(ListView.java:1769)at android.widget.ListView.fillDown(ListView.java:672)at android.widget.ListView.fillFromTop(ListView.java:733)
那么我们混淆的代码不能还原吗? 当然有, 其实谷歌已经为我们准备好了:
ProGuard 提供了命令行和 GUI 工具来还原混淆后的代码。
该工具位于 <android-sdk>/tools/proguard/bin/ 目录下。
里面的 proguardgui.bat 为 GUI 工具,
1) 运行 proguardgui.bat
2) 从左边的菜单选择 “ReTrace”
3) 在上面的 mapping 文件中选择你的 mapping 文件 ,在下面输入框输入要还原的代码
4) 点击 “ReTrace!” 按钮
retrace.bat 为命令行工具, 把 mapping 文件和 要还原的堆栈信息保存在 stacktrace 文件中,
然后把这两个文件复制到 retrace.bat 目录下,运行如下命令即可。
retrace.bat -verbose mapping.txt stacktrace.txt > out.txt
软件截图如下
从异常堆栈中还原 ProGuard 混淆过的代码相关推荐
- Android:如何从堆栈中还原ProGuard混淆后的代码
本文翻译自Android: How To Decode ProGuard's Obfuscated Code From Stack Trace 本篇文章是写给那些在他们的应用中使用ProGuard并且 ...
- VAE逻辑整理及VAE在异常检测中的小实验(附代码)
VAE逻辑整理及VAE在异常检测中的小实验(附代码) Variance和control variate 两种常见的分类器 相应代码 Minst数据集的训练和重构 KDD99数据 本文主要讲解一下整个 ...
- apk反编译(6)用ProGuard 混淆、压缩代码,压缩资源。
1.android官方文档 https://developer.android.com/studio/build/shrink-code 主要内容如下: 1.1 压缩代码 混淆生成的文件:<m ...
- python自定义全局异常_flask中主动抛出异常及统一异常处理代码示例
本文主要介绍的是flask中主动抛出异常及统一异常处理的相关内容,具体如下. 在开发时,后台出现异常 ,但不想把异常显示给用户或者要统一处理异常时,可以使用abort主动抛出异常,再捕获异常返回美化后 ...
- IDEA JDK1.8 ProGuard 混淆Maven项目代码
直接复制到pom中即可使用 <build><plugins><plugin><groupId>com.github.wvengen</groupI ...
- iOS_异常堆栈报告分析
在使用 Xcode 工具的开发过程中, 面对运行异常, 很多初学者往往毫无头绪, 不知道如何跟踪异常堆栈, 如何分析异常堆栈报告. 这里就给大家介绍如何<b>跟踪异常堆栈</b> ...
- 使用Retrace还原被ProGuard混淆后的崩溃堆栈
AndroidSDK的tools中提供了混淆和还原的jar文件,当然也可以直接下载ProGuard相关的jar: http://sourceforge.net/projects/proguard/ 命 ...
- 安卓中ProGuard混淆基本使用
1. 简介 因为Java代码是非常容易反编码的,为了很好的保护Java源代码,我们需要对编译好后的class文件进行混淆. ProGuard是一个用于Android开发用于混淆最终的项目,增加项目被 ...
- JVM解惑:消失的异常堆栈,log中打印异常堆栈为空
最近线上发现很多异常没有堆栈信息,只有一句描述,如下: java.lang.NullPointerException: null 排查问题时受到了一些阻碍.然后发现无论是在本地环境还是测试环境,堆栈信 ...
最新文章
- SpringBoot如何自动生成实体类和Dao层以及映射文件(mybatis generator 自动生成代码)
- Linux 网页挂马实验,网页挂马详细教程
- java语言中的浮点型数据分为,Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou...
- 脾气好的领导不是好领导
- OC无法进行多人会话
- 带你玩转JavaWeb开发之四 -如何用JS做登录注册页面校验
- kali 安装vmware 14 for linux 出现问题
- 如何合理封装你的轮子、飞机、大炮(以封装OkHttp为例)
- fanuc换刀宏程序详解_FANUC宏程序使用举例
- nodejs下载文件到本地并命名 和 删除文件
- 终端一直显示 (master) ,即终端一直处于master分支下的取消办法
- android camera2美颜,Nano Camera(多功能美颜相机)V2.1 安卓版
- 计算机函数if使用折扣率,excel1-服装采购表题目要求
- macOS上显示隐藏文件
- TCC(新加坡太一国际数字交易所):升值万倍的数字资产 成就多少亿万豪
- Hadoop——你不得不了解的大数据工具
- 《月薪5千与月薪5万的文案区别》!如何用立体思维去解决问题
- Javascript 书写规范
- 我的世界java1.15更新了什么动物_我的世界:原来1.15版本的更新“主题”不是蜜蜂,而是这些东西?...
- 抽奖摇号系统随机性算法介绍
热门文章
- 黑马程序员_JAVA相关基础知识
- 预测、迭代与优化:用AI探寻组合优化问题最优解
- MuleSoft知识总结-13.Mule组件(Set Variable,For Each,Choice)
- oracle如何删除一个用户下的所有数据?
- 各大android应用商店的展示权重 安卓应用商店关键词+下载量+评价+其他这几项占的权重(仅供参考)
- Mongodb 设置账号密码
- 21条最佳实践,全面保障 GitHub 使用安全
- macd的python代码同花顺_手把手教你妙用MACD指标
- 利用appimage工具对开发好的项目进行打包
- 爬虫基础(6)网页解析之XPath库