使用ProGuard进行Android代码混淆(保姆级教程)

一、ProGuard的功能

ProGuard是一个混淆代码的开源项目,主要是用来对java代码进行混淆,当然也就可以对java代码进行混淆,ProGuard主要有四个功能:压缩(Shrink),优化(Optimize),混淆(Obfuscate)和预检(Preveirfy)。

压缩: 就是将代码中没用的东西给删掉,比如你留下的没用的但是忘记删除的一些测试代码或者无用的类等。

优化: 对字节码进行优化删除无用的指令。

混淆: 使用cuyjno(这是我用脸在键盘上摩擦打出来的)等无意义的名称对类,字段和方法进行命名。

预检: 检查处理后代码能否正确执行。

ProGuard的这四个步骤都是可选的,我们可以通过配置脚本来决定执行其中的哪几个步骤。

二、开启ProGuard

如果要开启proguard,我们首先要把下面这个东西给添加到build.gradle中(这个是:app下的build.gradle,初学者可能会搞错),一般来说,Android studio会自动帮我们给添加好了,然后我们把这个minfyEnable改为true。就像下面这样。

buildTypes {release {minifyEnabled trueshrinkResources trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}

当我们创建Android项目时,Android studio已经帮我们生成了proguard-rules.pro的文件(在Gradle Scripts下面)

我们可以在这个文件里面写入一些规则,比如哪些类需要保留,哪些类不保留,然后我们打包apk

我们将apk打包好后放到逆向软件中,然后进行一个逆向

然后我们发现,原来的变量名全部变成了a,b,c这类没有任何意义的字符,这样别人就很难分析你的代码。

变量名全部变成了a,b,c这类没有任何意义的字符,这样别人就很难分析你的代码。

使用ProGuard进行Android代码混淆(保姆级教程)相关推荐

  1. Vision Transformer(VIT)代码分析——保姆级教程

    目录 前言 一.代码分析 1.1.DropPath模块 1.2.Patch Embeding 1.3.Multi-Head Attention 1.4.MLP 1.5.Block 1.6.Vision ...

  2. (一)基于知识图谱的医疗问答系统(实例+代码理解)保姆级教程

    本篇文章内容来源于刘焕勇老师在Github上的开源项目.https://github.com/liuhuanyong/QASystemOnMedicalKG 如果打不开或者是想要数据集.源码等文件,或 ...

  3. 利用Simulink、STM32CUBEMX、STM32-MAT/TARGET自动生成简单的led灯闪烁代码(保姆级教程)

    1.简介 这里利用基于STM32F103RCT6的一块自带led灯的开发板,首先通过STM32CUBEMX产生.ioc配置文件,其次对Simulink进行所必须的配置,然后利用Simulink的图形化 ...

  4. PHP微信支付V3利用官方SDK从申请到代码完成保姆级教程

    申请流程及配置 申请以及配置流程参考官方:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_6_1.shtml 根据官方的指导,我们 ...

  5. 『PHP』手把手教你使用phpstorm+xdebug调试php代码(保姆级教程)

    文章目录 前言 搭建调试用服务器 配置phpstorm项目和php.ini 接入调试 ①浏览器调试(推荐) ②phpstorm调试 完 前言 环境基于: phpstorm 2020.1 phpstud ...

  6. android加密墙,Android代码混淆加密配置(Proguard文件解析)

    Android代码混淆加密配置(Proguard文件解析) Android代码混淆加密配置(Proguard文件解析) 为了防止自己的APP被轻易反编译,我们需要对APK进行混淆,或者特殊加密处理.可 ...

  7. Android 代码混淆Proguard

    混淆概念 Android代码混淆,又称Android混淆,是伴随着Android系统的流行而产生的一种APP保护技术,用于保护APP不被破解和逆向分析. 在Android的具体表现就是打包时,将项目里 ...

  8. 安卓与“Proguard”——安卓的代码混淆

    什么是代码混淆 混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义.被混淆过的程序代码,仍然遵照 ...

  9. Android反编译工具的使用(保姆级教程)

    Android反编译工具的使用(保姆级教程) 网上关于Android反编译的文章很多,但是好多都比较杂,就打算自己写一下,顺便也能加深一下印象. 一.常用反编译文件的介绍 apktool apktoo ...

最新文章

  1. ELECTRA:超越BERT,2019年最佳NLP预训练模型
  2. 【django】查询集QuerySet
  3. 一个成功敏捷团队的失败历程
  4. QT实现maroon游戏
  5. python return用法_Python 为什么没有 void 关键字?
  6. App Store 排名获取。
  7. vm磁盘映射 不能启动_Oracle的启动与关闭-数据库(4)
  8. LeetCode 934. 最短的桥(2次BFS)
  9. 贵广网络跨界转型 实现智慧城市的平台创新
  10. spring+springmvc+mybatis配置
  11. (69)Vue-cli 打包与部署
  12. Xilinx FPGA PLL输出不能直接连接IO解决方法
  13. NB-IOT ---5G时代三兄弟,NB-IoT到底有多少优势?
  14. Iframe的高级操作
  15. transform3D转换
  16. StringBuilder 使用方法
  17. Delphi开发经验谈
  18. 渝粤题库 陕西师范大学 《语言学概论》 作业
  19. 刷python题库的网站_大神教你刷bios工具
  20. 区块链的硬分叉、软分叉介绍

热门文章

  1. WhatsApp 如何启用端到端加密备份数据
  2. 手机如何用非默认打开html,手机设置默认浏览器方法
  3. 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day5
  4. 罪恶都市洛杉矶java_「洛杉矶时间」Java代码获取美国洛杉矶的时间 - seo实验室...
  5. 创业板博傻游戏很快完毕,留神践踏!
  6. 淡淡的思念,淡淡的情怀
  7. 小米12S Pro什么时候上市 小米12S Pro配置怎么样
  8. 破解无线网络连接密匙
  9. word页面设置技巧
  10. 《自然语言处理实战入门》 ---- 第4课 :中文分词原理及相关组件简介 之 汉语分词领域主要分词算法、组件、服务(上)...