(聚焦安卓)ProGuard混淆工具的使用

3,578 阅读1分钟

ProGuard简介

  • ProGuard是Android SDK 自带混淆工具,在sdk目录中的位置如下:
# ProGuard 工具所在的目录
Android/sdk/tools/proguard/
  • proguard/bin目录提供了如下可执行工具:
-> proguardgui:可视化混淆集成工具;
-> retrace:提供命令对混淆后的代码进行追踪还原;

ReTrace反混淆

ReTrace用来对混淆后的代码或log进行还原,多用来查看crash日志。

使用retrace.sh命令还原混淆后的代码如下:

# retrace.sh命令利用mapping.txt还原日志并输出到out.txt文件中
$ retrace.sh -verbose mapping.txt log.txt > out.txt

proguardgui可视化混淆工具

proguardgui是可视化混淆工具界面,以下会介绍它启动并反混淆的两种方式;

方法一、proguardgui.jar

proguardgui.jar反混淆的操作步骤如下:

  1. 打包的时候保留mapping.txt文件,用来还原混淆代码(或日志);
# mapping.txt所在目录如下
app/build/outputs/mapping/release
  1. 用mapping.txt文件来还原混淆过的apk输出的日志:
# 1. 找到proguardgui.jar所在目录:
Android/sdk/tools/proguard/lib
# 2. 打开proguardgui.jar文件
# 3. 选择retrace(跟踪日志),进行如下还原操作:
    ->选择打包时保存的mapping文件
    ->输入混淆后的代码(或日志)
    ->按retrace按钮
    ->还原成功

方法二、命令行启动proguardgui可视化界面

  1. 配置ProGuard环境变量;
# 如:MacOS在环境变量中添加如下环境变量
export PATH=$PATH:$ANDROID_HOME/tools/proguard/bin
  1. 命令打开proguardgui可视化界面:
# 打开可视化工具,直接运行以下命令
# proguardgui.sh内部是打开Android/sdk/tools/proguard/lib/proguardgui.jar文件
$ proguardgui.sh
  1. 选择retrace菜单, 按照方法一的第二步,对混淆日志进行还原;