摘要:上一篇文章介绍了混淆的基础知识,其中包括保留指定的包名、类名、方法名以及字段名,然后总结了通配符和keep关键字的用法,这篇文章主要将要广义的混淆,其中包括:压缩、优化、混淆几个阶段,读完文章,你将会明白什么是压缩,ProGuard支持哪几种优化的方式,以及-keep和-keepnames,-keepclassmembers和-keepclassmembernames,-keepclasse
Android提供了Progurd方式来混淆apk中的代码,其核心的逻辑是在代码层将一些易懂的源代码类名,方法名称替换成毫无意义的a、b、c、d…,这样当别人反编译出你的Apk文件时,看到的源代码也无法还原其本身的逻辑。proguard混淆语法-libraryjars class_path 应用的依赖包,如Android-support-v4   -keep [,modifier,...
转载 2023-08-29 11:52:03
398阅读
在需要混淆的工程目录下(package/apps/下的工程)添加proguard.flags文件,该文件即为网络传说中的proguard.cfg,只是命名不一样而已,然后再Android.mk中添加如下两句:LOCAL_PROGUARD_ENABLED := full LOCAL_PROGUARD_FLAG_FILES := proguard.flags 上面的full 也可以是custom,如果
转载 2024-08-24 19:50:45
190阅读
#AndroidX混淆开始-keep class com.google.android.material.** {*;}-keep class androidx.** {*;}-keep public class * extends androidx.**-keep interface androidx.** {*;}-dontwarn com.google.android.mater...
原创 2023-05-15 15:33:53
96阅读
# 如何实现AndroidX Kotlin混淆 ## 1. 概述 在Android开发中,混淆是一种将代码转换为难以理解的形式的过程,以增加代码的安全性和减小最终APK的大小。在使用AndroidX和Kotlin开发应用时,混淆也是必不可少的一环。本文将详细介绍如何在AndroidX Kotlin项目中实现混淆。 ## 2. 流程 下面是实现AndroidX Kotlin混淆的整个流程,可以用
原创 2024-06-01 05:25:07
134阅读
写给Android 混淆小白的快速混淆方法为啥子要混淆开始混淆第一步先特别介绍的是与保持相关元素不参与混淆的规则相关的几种命令:快速混淆?如果依赖的非主流的开源库作者没提及有关混淆的东西,demo里也没找到,怎么办?如果导入了SDK,官网没有提及有关混淆的事项,demo里也没找到,怎么办?模板时间 为啥子要混淆简单来说,Android 进行ProGuard,可以起到压缩,混淆,预检,优化的功能,虽
转载 2024-02-14 15:26:32
256阅读
# AndroidX 添加默认混淆教程 ## 概述 在Android开发中,混淆是一种保护代码的方法,通过混淆可以使得代码难以被逆向工程破解。AndroidX是支持Android开发的一组库,本文将教你如何在AndroidX项目中添加默认的混淆配置。 ## 流程概要 以下是添加默认混淆的流程概要: ```mermaid journey title 添加默认混淆配置流程 sec
原创 2024-03-10 06:26:04
147阅读
前言: APP在发布之前,为了保证apk的安全,同时尽可能减小apk的大小,我们通常在build时打开混淆和压缩功能,这样做有以下好处: * 代码缩减(即摇树优化):从应用及其库依赖项中检测并安全地移除不使用的类、字段、方法和属性(这使其成为了一个对于规避 64k 引用限制非常有用的工具)。例如,如果您仅使用某个库依赖项的少数几个 API,缩减功能可以识别应用不使用的库代码并仅从应用中移除这部分代
转载 2024-10-24 15:57:45
81阅读
Allatori混淆技术介绍 Allatori是一个Java 混淆器,它属于第二代混淆器,因此它能够全方位的保护你的知识产权。 Allatori具有以下几种保护方式:命名混淆,流混淆,调试信息混淆,字符串混淆,以及水印技术。对于教育和非商业项目来说这个混淆器是免费的。支持war和jar文件格式,并且允许对需要混淆代码的应用程序添加有效日期。 有项目需要对代码进行保护,比较初级的方案就是对代码进行混
在android Studio中做混淆,基本就是对Proguard-rules.pro文件的操作。混淆的过程也是有规律可循的。下面我将分几个部分来分别介绍混淆过程。(1)如何开启混淆。(2)混淆的公共部分。(3)需要我们不混淆的代码。(4)libs下的第三方Jar包的混淆方式。(5)complie的第三方Jar包的混淆方式。(6)代码注释的混淆方式。如何开启混淆在Android Stud
转载 2023-07-26 20:33:25
379阅读
# Android混淆忽略class 在Android开发中,混淆是一项非常重要的安全措施,通过混淆可以有效地保护代码不被反编译。在混淆的过程中,有时候我们需要忽略某些特定的类,以避免混淆导致程序出现问题。本文将介绍如何在Android项目中忽略特定的类进行混淆。 ## 为什么需要忽略特定类进行混淆 在Android项目中,有些类可能包含一些关键的业务逻辑或者特定的功能,如果这些类被混淆导致
原创 2024-02-24 05:05:49
67阅读
# Android Fastjson 忽略混淆实现教程 ## 关系图 ```mermaid erDiagram DEVELOPER ||--o NEWBIE : 教授 ``` ## 教程内容 ### 流程概述 在Android开发中,使用Fastjson库进行Json数据的解析和处理是很常见的。但是在混淆代码的过程中,可能会导致Fastjson无法正常解析数据。因此,我们需要进行
原创 2024-05-27 06:46:33
141阅读
反编译准备工作安装APKTOOL how to install安装dex2jar install(sourceforge下的dex2jar-0.0.9.15.zip)安装jd gui install使用方法apktool 安装和使用参照文档dex2jar使用 从apk所在的目录打开终端 (从文件夹打开终端),运行softrice$ unzip ./app-release.apk 文件夹下出现cl
Android资源混淆 + 混淆忽略 .so库
转载 2017-05-08 15:00:00
511阅读
浅谈Android保护技术__代码混淆   代码混淆 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行 为。 将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无
转载 2024-06-02 12:57:38
0阅读
首先示例一个Android项目 , 里面包含所需要的混淆脚本以及 一些经常使用的第三方Jar包问题1 : 如果你创建的项目里没有自带proguard.cfg这个混淆脚本,那么说明你的SDK 小于2.3 或者 你的SDK信息不完整解决的办法:1) 更新SDK版本2)在你的项目里自己建一个proguard.cfg脚本,当然你的proguard.cfg脚本里需要依据你的项目的不同情况制定一些混
# 如何在Android中实现混淆忽略某个目录 当你在开发Android应用时,使用代码混淆工具(如ProGuard或R8)来保护应用代码是非常重要的。然而,在某些情况下,你可能希望对特定目录或包的代码进行混淆时排除,这样可以避免影响到一些关键组件的运行。下面,我们将详细讨论如何实现这一过程。 ## 整体流程 在这个过程中,我们将遵循以下步骤: | 步骤 | 描述 | |------|--
原创 2024-10-26 06:43:41
88阅读
# 新手指南:如何实现 AndroidX 配置 在 Android 应用开发中,AndroidX 是一个重要的库,可以帮助你更方便地进行应用开发。对于刚入行的开发者来说,掌握 AndroidX配置流程是非常重要的一步。本文将系统性地为你解释这个过程,详细说明每一个步骤。 ## AndroidX 配置流程 以下是实现 AndroidX 配置的流程步骤: | 步骤 | 描述
原创 9月前
150阅读
介绍Java的字节码一般是非常容易反编译的, 而android采用java编写, 生成的apk安装文件实际上就是一个压缩包, 可以将其解压缩, 再借用其他工具就能被反编译出来. 为了能对源代码就行一些必要的保护, 我们可以对编译好的class文件进行混淆处理. ProGuard的就是一个混淆器, 混淆器通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆, 混淆
转载 2023-06-14 11:44:03
160阅读
JavaScript和TypeScript都没有对混入进行内置的语法支持,但是通过js结构化的语言,想实现混入是很简单的。我们都知道类只支持扩展一个类,而混入就是让类支持多个扩展类,其中C++和python都是支持多继承的,而且相对语法扩展支持都比较完善。现在,本文章将使用TS实现一个简易版的混入:先定义一个类型,相当于接口约束(主要约束类的结构):type Constructor = new()
  • 1
  • 2
  • 3
  • 4
  • 5