使用ProGuard进行Android代码混淆(保姆级教程)
使用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代码混淆(保姆级教程)相关推荐
- Vision Transformer(VIT)代码分析——保姆级教程
目录 前言 一.代码分析 1.1.DropPath模块 1.2.Patch Embeding 1.3.Multi-Head Attention 1.4.MLP 1.5.Block 1.6.Vision ...
- (一)基于知识图谱的医疗问答系统(实例+代码理解)保姆级教程
本篇文章内容来源于刘焕勇老师在Github上的开源项目.https://github.com/liuhuanyong/QASystemOnMedicalKG 如果打不开或者是想要数据集.源码等文件,或 ...
- 利用Simulink、STM32CUBEMX、STM32-MAT/TARGET自动生成简单的led灯闪烁代码(保姆级教程)
1.简介 这里利用基于STM32F103RCT6的一块自带led灯的开发板,首先通过STM32CUBEMX产生.ioc配置文件,其次对Simulink进行所必须的配置,然后利用Simulink的图形化 ...
- PHP微信支付V3利用官方SDK从申请到代码完成保姆级教程
申请流程及配置 申请以及配置流程参考官方:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_6_1.shtml 根据官方的指导,我们 ...
- 『PHP』手把手教你使用phpstorm+xdebug调试php代码(保姆级教程)
文章目录 前言 搭建调试用服务器 配置phpstorm项目和php.ini 接入调试 ①浏览器调试(推荐) ②phpstorm调试 完 前言 环境基于: phpstorm 2020.1 phpstud ...
- android加密墙,Android代码混淆加密配置(Proguard文件解析)
Android代码混淆加密配置(Proguard文件解析) Android代码混淆加密配置(Proguard文件解析) 为了防止自己的APP被轻易反编译,我们需要对APK进行混淆,或者特殊加密处理.可 ...
- Android 代码混淆Proguard
混淆概念 Android代码混淆,又称Android混淆,是伴随着Android系统的流行而产生的一种APP保护技术,用于保护APP不被破解和逆向分析. 在Android的具体表现就是打包时,将项目里 ...
- 安卓与“Proguard”——安卓的代码混淆
什么是代码混淆 混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义.被混淆过的程序代码,仍然遵照 ...
- Android反编译工具的使用(保姆级教程)
Android反编译工具的使用(保姆级教程) 网上关于Android反编译的文章很多,但是好多都比较杂,就打算自己写一下,顺便也能加深一下印象. 一.常用反编译文件的介绍 apktool apktoo ...
最新文章
- ELECTRA:超越BERT,2019年最佳NLP预训练模型
- 【django】查询集QuerySet
- 一个成功敏捷团队的失败历程
- QT实现maroon游戏
- python return用法_Python 为什么没有 void 关键字?
- App Store 排名获取。
- vm磁盘映射 不能启动_Oracle的启动与关闭-数据库(4)
- LeetCode 934. 最短的桥(2次BFS)
- 贵广网络跨界转型 实现智慧城市的平台创新
- spring+springmvc+mybatis配置
- (69)Vue-cli 打包与部署
- Xilinx FPGA PLL输出不能直接连接IO解决方法
- NB-IOT ---5G时代三兄弟,NB-IoT到底有多少优势?
- Iframe的高级操作
- transform3D转换
- StringBuilder 使用方法
- Delphi开发经验谈
- 渝粤题库 陕西师范大学 《语言学概论》 作业
- 刷python题库的网站_大神教你刷bios工具
- 区块链的硬分叉、软分叉介绍
热门文章
- WhatsApp 如何启用端到端加密备份数据
- 手机如何用非默认打开html,手机设置默认浏览器方法
- 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day5
- 罪恶都市洛杉矶java_「洛杉矶时间」Java代码获取美国洛杉矶的时间 - seo实验室...
- 创业板博傻游戏很快完毕,留神践踏!
- 淡淡的思念,淡淡的情怀
- 小米12S Pro什么时候上市 小米12S Pro配置怎么样
- 破解无线网络连接密匙
- word页面设置技巧
- 《自然语言处理实战入门》 ---- 第4课 :中文分词原理及相关组件简介 之 汉语分词领域主要分词算法、组件、服务(上)...