Android混淆机制

2023-10-27

java代码的混淆


常见的混淆的方式有两种, Proguard (免费)和 DexGuard (要钱)。

  • Proguard 与 DexGuard 的关系

    DexGuard 是基于 ProGuard 的。这就是为什么它是如此的原因很容易升级到DexGuard。但是这两种产品提供广泛不同的功能。ProGuard的是Java字节码通用的优化,同时 DexGuard 提供了先进的 Android 应用程序的保护。在这篇博客中,你会发现 ProGuard,并将 DexGuard 之间的差别的概述。详情

Proguard

Proguard 4个特性

在 Android 中使用 Proguard 不仅仅可以为我们提供混淆的功能,事实上 Proguard 还提供了以下4点功能

  1. 混淆:使用无意义的简短字母组合对类名、方法名、属性进行重命名。
  2. 压缩: java 源代码被编译成字节码。 Proguard 的压缩功能通过分析字节码,能够检测并移除没有使用的类、字段、方法等。
  3. 优化:优化字节码,同时移除没有使用到的命令。
  4. 预校验:对上述处理后的代码进行预校验。
Proguard 的使用

在需要混淆的 Module 中的 build.gradle 文件下添加如下配置即可。

android {
 ...
    buildTypes {
        release {
            minifyEnabled true // true 表示使用 proguard
            proguardFile 'proguard-android.cfg'//项目中的混淆配置文件

        }
    }
             }

dexGuard

C/C++ 代码的混淆


native层混淆并没有统一的标准方案,常见的 方法是使用花指令。使得native层在被反编译时出错

资源文件的混淆


和native层一样并没有统一的标准方案,目前有两个方案,美团和微信两种。微信的已开源点击

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android混淆机制 的相关文章

随机推荐

  • Markdown基础语法详细版

    文章目录 1 Markdown简介 2 Markdown特点 3 Markdown基本语法 3 1 标题 3 2 斜体和粗体 3 3 换行 3 4 分割线 3 5 列表 3 5 1 无序列表 3 5 2 有序列表 3 5 3 定义型列表 3
  • Linux应用编程(文件IO进阶)

    一 Linux 系统如何管理文件 1 1 静态文件与 inode 文件存放在磁盘文件系统中 并且以一种固定的形式进行存放 我们把他们称为静态文件 每一个文件都必须对应一个 inode inode 实质上是一个结构体 这个结构体中有很多的元素
  • 手写个简单的promisify方法

    node中为了能方便使用async await语法 通常会使用promisify方法将node中遵循错误优先的api接口转换 返回一个Promise实例 从而无缝衔接使用async await语法 例如 async function var
  • CGAL点云处理之体素下采样

    体素下采样 点云体素采样 通过指定大小的网格 每个网格保留一个点云数据 void gridSimplifyPointsByCgal Point set points double threshold int size double spac
  • android五种布局局限性,android ConstraintLayout布局从入门到放弃

    布局优化是性能优化的一个方向点 包括了根据需求应该选用哪种布局容器 ViewStub懒加载 如何减少布局层级等 今天我们要探讨的就是如何使用ConstraintLayout来优化我们的布局层级 提出问题 为什么要用这个布局 怎么用这个布局
  • 死锁的预防和解除

    产生死锁的原因主要是 1 系统资源不足 2 进程运行推进的顺序不合适 3 资源分配不当等 如果系统资源充足 进程的资源请求都能够得到满足 死锁出现的可能性就很低 否则就会因争夺有限的资源而陷入死锁 其次 进程运行推进顺序与速度不同 也可能产
  • flutter直接读取服务器文件的内容,flutter 如何实现文件读写(使用篇)

    flutter文件读写可以对磁盘文件进行操作 实现某些业务场景 那么我们开始来讲下这个文件读写操作 使用的库插件 package dart io 用于数据处理 path provider 用于获取路劲 操作步骤 1 获取正确的本地路径 2
  • 【跑实验07】RuntimeError: Argument #6: Padding size should be less than the corresponding input dimension

    最近在尝试跑实验的时候 我们的部分代码为 patch h 28 patch w 28 feat dim 768 transform T Compose T GaussianBlur 9 sigma 0 1 2 0 T Resize patc
  • 暗黑战神学习笔记

    暗黑战神游戏开发游戏学习笔记 第一章 初始场景与UI界面制作 光照系统 有哪些参数可以设置光源 1 点光源 2 window界面下的LightSetting 光照系统的优化方法 Animation系统 第二章 UI逻辑框架与配置文件 第三章
  • 【线性代数】从矩阵分块的角度理解矩阵乘法

    一 矩阵分块法介绍 概念 例 二 使用矩阵分块法计算矩阵的积 1 分块矩阵计算的数学步骤 使用Numpy计算例1 import numpy as np A np mat 1 0 0 0 0 1 0 0 1 2 1 0 1 1 0 1 B n
  • C++智能指针——auto_ptr详解

    前言 从之前智能指针的介绍中可以了解到智能指针主要作用是管理内存 避免内存泄漏和悬垂指针 之前介绍的不管是智能指针与引用计数详解还是智能指针与句柄详解 其核心就是通过一个类来管理被new出来的对象 具体的技术就是靠引用计数 auto ptr
  • Android Studio系列:安装并使用JetBrains Mono字体

    下载jetbrains mono字体 https www jetbrains com lp mono 解压 打开JetBrainsMono 2 242 fonts ttf 全选 然后安装 重启Android studio 一定要重启 然后选
  • 做SLAM实验时g2o的安装问题cmake的版本问题及git下载历史版本代码方法总结

    博主之前跑了ORBSLAM2做了相关实验 半年没碰之后 又重新来弄发现 WTF g2o用不了 cmake版本过低无法编译 直接修改CMakeLists txt文件还不行 好吧 我屈服了 升级cmake吧 升级到了3 2爽歪歪腰不酸了腿也利索
  • STM32使用HAL库BH1750光照度传感器

    开发环境 单片机 STM32F103C8T6 光照度传感器 BH1750 IDE KEIL STM32CUBEMX 单片机配置 1 STM32CUBEMX BH1750代码 1 头文件 BH1750 光照数据计算 LUX LUX 读取数据
  • JS与PHP通过RSA加密传输密码

    JS与PHP通过RSA加密传输密码 第一次写加密传输时网上看了一些博客将如何实现的 但实际过程中碰到了一些麻烦 一直没成功 现在搞定了来总结一下以便以后参考 实现主要都是参考http www ohdave com rsa 提供的开源代码及d
  • 算法—二叉树递归遍历

    测试的二叉树的结构 root lfb1 rtb1 rtb2 控制台输出的遍历结果 从根节点开始 前序遍历此二叉树 root lfb1 rtb1 rtb2 从根节点开始 中序遍历此二叉树 lfb1 root rtb1 rtb2 从根节点开始
  • 思考:语义过程

    2020 06 14 我有点明白泛化过程的含义了 当时也在阿里的那个文章中看到过 就是说 现在很多机器学习的泛化能力差在网络安全方面 泛化能力 我的理解就是 如果是想模型硬性的记住一些东西 那他就没有泛化能力 但是如果你能够有一些泛化能力
  • 【AIGC】一款离线版的AI智能换脸工具V2.0分享(支持图片、视频、直播)

    随着人工智能技术的爆发 AI不再局限于大语言模型 在图片处理方面也有非常大的进步 其中AI换脸也是大家一直比较感兴趣的 但这个技术的应用一直有很大的争议 今天给大家分享一个开源你的AI换脸工具2 0 只需要一张所需脸部的图像 无需数据集 无
  • Java使用GDAL

    在使用Java处理图像时使用Gdal 为了保持软件在Windows Linux的通用性 本文着重介绍Windows和Linux环境的gdal配置 为了简便期间 使用gdal 2 2 3 一 Windows Windows下gdal配置比较简
  • Android混淆机制

    java代码的混淆 常见的混淆的方式有两种 Proguard 免费 和 DexGuard 要钱 Proguard 与 DexGuard 的关系 DexGuard 是基于 ProGuard 的 这就是为什么它是如此的原因很容易升级到DexGu