首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ProGuard -混淆资源文件中的类名

ProGuard是一个用于混淆和优化Java字节码的开源工具。它可以在编译Java代码之后,对生成的字节码进行优化和混淆,以增加应用程序的安全性和性能。

混淆是指将代码中的类名、方法名、变量名等标识符进行重命名,使其难以被逆向工程分析和理解。通过混淆,可以有效防止代码被反编译和盗用,提高应用程序的安全性。

ProGuard的优势包括:

  1. 安全性增强:通过混淆代码,使得逆向工程师难以理解和分析代码,提高应用程序的安全性,防止代码被盗用和篡改。
  2. 性能优化:ProGuard可以对字节码进行优化,去除无用的代码和资源,减小应用程序的体积,提高应用程序的运行效率和响应速度。
  3. 资源压缩:ProGuard可以对资源文件进行压缩,减小应用程序的安装包大小,节省用户的流量和存储空间。
  4. 代码优化:ProGuard可以对字节码进行优化,去除冗余的代码和方法,提高应用程序的执行效率。

ProGuard的应用场景包括:

  1. Android应用开发:ProGuard在Android开发中被广泛使用,用于混淆和优化应用程序的代码,提高应用程序的安全性和性能。
  2. Java应用开发:ProGuard也可以用于Java应用开发,对生成的字节码进行混淆和优化,提高应用程序的安全性和性能。

腾讯云相关产品和产品介绍链接地址:

腾讯云没有专门针对ProGuard的产品,但可以使用腾讯云的云安全产品和服务来增强应用程序的安全性,如腾讯云安全组、腾讯云Web应用防火墙(WAF)等。具体产品和服务详情,请参考腾讯云官方网站:https://cloud.tencent.com/product/security

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆报错信息 | Proguard 混淆映射文件 mapping.txt )

文章目录 一、Proguard 混淆报错信息 二、Proguard 混淆映射文件 mapping.txt 更多 ProGuard 混淆配置参考 : https://www.guardsquare.com.../en/products/proguard/manual/usage 一、Proguard 混淆报错信息 ---- 前提 : proguard-rules.pro 混淆配置配置保留行数 ; # 保留行数...(Handler.java:30) , 报错混淆信息 , 可读性很差 ; 二、Proguard 混淆映射文件 mapping.txt ---- 前提 : proguard-rules.pro 混淆配置配置保留行数...; # 保留行数 -keepattributes SourceFile,LineNumberTable Proguard 混淆后 , 会提供一个 原始代码 与 混淆代码 对应关系文件 mapping.txt...() -> 39:42:void sendMessage(kim.hsl.handler.Message) -> a kim.hsl.handler.Handler 混淆成了

95500

【Android 安全】DEX 加密 ( Proguard keep 用法 | Proguard 默认混淆结果 | 保留及成员混淆结果 | 保留注解以及被注解修饰成员方法 )

文章目录 一、Proguard 默认混淆结果 二、Proguard 保留及成员混淆结果 三、Proguard 保留注解以及被注解修饰/成员/方法 更多 ProGuard 混淆配置参考 : https...://www.guardsquare.com/en/products/proguard/manual/usage 一、Proguard 默认混淆结果 ---- ProGuard 默认混淆结果 , 就是没有...人为添加保留任何设置 , 使用是 默认混淆文件 , 除了 MainActivity , 以及 MainActivity 3 个内部类 , IdleHandler , Handler , Thread..., 其余 Java 文件都被混淆 ; 二、Proguard 保留及成员混淆结果 ---- 在 应用 Module 下 proguard-rules.pro 中进行如下配置 : # 保留 MainActivity... -keep public class kim.hsl.handler.MainActivity 混淆结果如下 : 可以看到 MainActivity 被保留下来 , 成员由于没有配置 , 因此被混淆

1.6K00

java文件public 要和文件保持一致

Java保存文件必须与一致; 如果文件只有一个文件必须与一致; 一个Java文件只能有一个public; 如果文件不止一个文件必须与public一致...; 如果文件不止一个,而且没有public文件可与任一一致。...虽然不是很常用,但编译单元内完全不带public也是可能。这种情况下,可以随意对文件命名。(尽管随意命名会使得人们在阅读和维护代码时产生混淆。)...一个Java文件可以有多个作为内部类/Adapter/其它,但是只能有一个public,且必须和文件一致。这是这类语言一个不好地方。...但是当你被 public 修饰时,此时文件必须和该类保持一致(例如 public class A{} 只能放在 A.java 文件,不然在用 javac 编译时会提示错误: A 是公共,应在名为

1.4K20

Android 混淆那些事儿

混淆不仅能将代码、字段、方法名变为无意义名称,保护代码,也由于移除无用、方法,并使用简短名称对、字段、方法进行重命名缩小了程序size。...Android Studio 默认混淆方案及字段解读 开启混淆 参见google官方文档压缩代码和资源 要通过Proguard启动代码压缩,在build.gradle文件内相应构建类型添加minifyEnabled...: 参见Proguard官方字段解读 不使用大小写混写 -dontusemixedcaseclassnames 默认情况下混淆可以包含大小写字符混合。...(1)微信资源混淆方案: 微信资源混淆是自己做了一个安装包解压并且用7z极限压缩打包器,修改内容也是resources.arsc,优点是可以最大地混淆,不依赖源码与编译过程,无需在编译过程修改源文件...混淆资源文件: ? 混淆资源文件: ? 可以看到资源文件路径以及文件都被混淆了。

3.2K50

【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )

开启 Proguard , 在编译时 , 会自动进行如下一系列优化 : 压缩 Shrink : 检查 并 删除 没有使用 , 字段 , 方法 , 属性 ; 这里要注意 , 如果通过反射使用一个时...层代码 , 使用无意义标识符替代 Java , 变量 , 方法名 等名称 ; 预检 Preveirfy : 预检 Java 平台上预处理代码 ; 开启 ProGuard 配置...minifyEnabled true 配置 , 并配置 proguardFiles 混淆配置文件 , 在 Android Studio , 一般会生成一个默认混淆配置文件 ; android {...’ , 配置了两个文件, 其中 proguard-android-optimize.txt 是默认混淆配置文件 , 由系统自动生成 ; proguard-rules.pro 是用户自己配置混淆配置文件..., 在进行打包时 , 将这两个 ProGuard 配置文件进行合并处理 ; 二、混淆文件编写 ---- 混淆文件编写 : 引用第三方库及服务 , 一般不进行混淆 , 去相应开源页面 , 查找混淆配置

3.6K20

一篇文章带你领略Android混淆魅力

从上面两张图可以看出:经过混淆处理之后,我们 APK 、成员等都被替换为随机、无意义名称,增加了代码阅读和理解困难程度,提高了反编译成本。...以上代码 proguard-android.txt 表示 Android 系统为我们提供默认混淆规则文件,而 proguard-rules.pro 则是我们想要自定义混淆规则,至于如何自定义混淆规则我们将在接下来会讲到...原因在于: 四大组件使用前都需要在 AndroidManifest.xml 文件中进行注册声明,然而混淆处理之后,四大组件就会被篡改,实际使用与 manifest 中注册并不匹配,故而出错...其他应用程序访问组件时可能会用到,如果经过混淆,可能会无法找到对应组件或者产生异常。...6 涨姿势操作 经过上文介绍,我们知道,APK 在经过代码混淆处理后,包、成员被转化为无意义、难以理解名称,增加反编译成本。

94020

Android开发:请你吃一顿史上最全Android混淆大餐

从上面两张图可以看出:经过混淆处理之后,我们 APK 、成员等都被替换为随机、无意义名称,增加了代码阅读和理解困难程度,提高了反编译成本。...以上代码 proguard-android.txt 表示 Android 系统为我们提供默认混淆规则文件,而 proguard-rules.pro 则是我们想要自定义混淆规则,至于如何自定义混淆规则我们将在接下来会讲到...原因在于: 四大组件使用前都需要在 AndroidManifest.xml 文件中进行注册声明,然而混淆处理之后,四大组件就会被篡改,实际使用与 manifest 中注册并不匹配,故而出错...其他应用程序访问组件时可能会用到,如果经过混淆,可能会无法找到对应组件或者产生异常。...涨姿势操作 经过上文介绍,我们知道,APK 在经过代码混淆处理后,包、成员被转化为无意义、难以理解名称,增加反编译成本。

4.2K30

Android Proguard(混淆)

(下面会讲) 除了proguard之外,还有一个DexGuard,是专门用来优化混淆Android应用。它功能包括资源混淆,字符串加密,加密和dex文件分割等。...元素已经存在在mapping文件元素,按照映射表重命名;没有存在到mapping文件元素,重新赋一个新名字。mapping文件可能引用到输入文件。...adaptresourcefilenames [file_filter] 如果资源文件与某类同,那么混淆资源文件被命名为与之对应混淆。...adaptresourcefilecontents [file_filter] 指定资源文件混淆名字更新。根据被混淆名字前后映射关系,更新文件对应。...代表文件一个字符 * 代表文件一部分,不包括文件分隔符 ** 代表文件一部分,包括文件分隔符 !

2.6K30

Android混淆你了解多少?

] 从上面两张图可以看出:经过混淆处理之后,我们 APK 、成员等都被替换为随机、无意义名称,增加了代码阅读和理解困难程度,提高了反编译成本。...以上代码 proguard-android.txt 表示 Android 系统为我们提供默认混淆规则文件,而 proguard-rules.pro 则是我们想要自定义混淆规则,至于如何自定义混淆规则我们将在接下来会讲到...原因在于: 四大组件使用前都需要在 AndroidManifest.xml 文件中进行注册声明,然而混淆处理之后,四大组件就会被篡改,实际使用与 manifest 中注册并不匹配,故而出错...其他应用程序访问组件时可能会用到,如果经过混淆,可能会无法找到对应组件或者产生异常。...5涨姿势操作 经过上文介绍,我们知道,APK 在经过代码混淆处理后,包、成员被转化为无意义、难以理解名称,增加反编译成本。

1.8K00

Android 代码混淆机制

编写混淆脚本 找到Android项目目录下proguard-project.txt”文件,在proguard-project.txt文件,你需要做就是指定混淆规则,还有指明要过滤那些文件或代码块...(混淆后生产映射文件 map -> 转化后映射 -optimizations !...,友盟SDK需要引用导入工程资源文件 public static final int *; } 具体哪行代码是什么作用大部分上面都有注释,比较常用有以下几点: 1.从脚本可以看到,混淆中保留了继承自...2.保留了所有的Native变量,所有中部分以设定了固定参数格式构造函数,枚举等等。(详细信息请参考\examples例子及注释) 3.需要序列化和反序列化不能被混淆。...(注:Java反射用到也不能被混淆) 4.保持R文件不被混淆,否则,你反射是获取不到资源id

1.4K20

如何在10分钟内让Android应用大小减少 60%?

文件: -dontusemixedcaseclassnames: 表示混淆时不使用大小写混淆。...proguard中一共有三组六个keep关键字含义 keep 保留成员,防止它们被混淆或移除。 keepnames 保留成员,防止它们被混淆,但当成员没有被引用时会被移除。...keepclasseswithmembers 保留成员,防止它们被混淆或移除,前提是指名成员必须存在,如果不存在则还是会混淆。...keepclasseswithmembernames 保留成员,防止它们被混淆,但当成员没有被引用时会被移除,前提是指名成员必须存在,如果不存在则还是会混淆。...proguard-android-optimize.txt proguard-android.txt 就像文件那样,“proguard-android-optimize.txt”是更积极混淆选项

82820

android 混淆规则作用,Android代码混淆详解

一、混淆意义 混淆代码并不是让代码无法被反编译,而是将代码、方法、变量等信息进行重命名,把它们改成一些毫无意义名字,同时也可以移除未被使用、方法、变量等。...2、移除未被使用、方法、变量等。 二、混淆规则和配置 凡是需要在AndroidManifest.xml中去注册所有以及从父重写方法名都自动不会被混淆。...对于没有被引用文件&没有在配置文件keep.xml声明保存文件,打包后是没有内容,声明保存文件有内容(资源文件和layout文件)。...(5)proguard文件夹 代码混淆生成apk之后,项目下面会多出来一个proguard文件夹,proguard文件四个文件作用。...dump.txt : 描述了apk中所有文件内部结构体。 mapping.txt : 列出了原始、方法和名称与混淆代码间映射。 seeds.txt : 列出了没有混淆和方法。

1.7K30

如何在10分钟内让Android应用大小减少 60%?

文件: -dontusemixedcaseclassnames: 表示混淆时不使用大小写混淆。...proguard中一共有三组六个keep关键字含义 keep 保留成员,防止它们被混淆或移除。 keepnames 保留成员,防止它们被混淆,但当成员没有被引用时会被移除。...keepclasseswithmembers 保留成员,防止它们被混淆或移除,前提是指名成员必须存在,如果不存在则还是会混淆。...keepclasseswithmembernames 保留成员,防止它们被混淆,但当成员没有被引用时会被移除,前提是指名成员必须存在,如果不存在则还是会混淆。...proguard-android-optimize.txt proguard-android.txt 就像文件那样,“proguard-android-optimize.txt”是更积极混淆选项

1.6K10

Maven - 代码混淆Proguard踩坑记

因为Java代码很容易被反编译,所以有时候需要对代码进行混淆,以保护你知识产权。 ProGuard主要做了三件事: 压缩代码 - 它会删除程序没有用到、属性和方法,让程序变小。...混淆代码 - 它会把、属性和方法名改成难懂名字,让代码变得很难看懂。...# 指定不进行字节码级别的优化 -dontoptimize # 混淆时不生成大小写混合 -dontusemixedcaseclassnames # 混淆时使用唯一成员命名策略 -useuniqueclassmembernames...# 同上,再次指定不生成大小写混合 -dontusemixedcaseclassnames # 混淆后,对使用Class.forName('className')等进行相应替代 -adaptclassstrings...运行时错误:检查混淆JAR包是否有必要资源文件,并确保它们在混淆过程未被移除。 推荐 推荐 代码加密classfinal , 不推荐Proguard,太复杂

22600

Flutter App混淆加固、保护与优化原理

一、混淆原理 混淆是一种代码保护技术,通过修改源代码或编译后代码,使其难以阅读和理解。混淆主要目的是提高反编译和逆向工程难度。通常,混淆可以通过以下方法实现: 重命名变量、函数和。...这些文件可用于还原混淆堆栈跟踪。 2.2、混淆Android原生代码 要对Android原生代码进行混淆,请在android/app/build.gradle文件启用ProGuard或R8。...('proguard-android-optimize.txt'), 'proguard-rules.pro' } } 此外,确保在proguard-rules.pro文件添加必要混淆规则,例如保留与...可以根据设置对函数名、变量等关键代码进行重命名和混淆处理,降低代码可读性,增加ipa破解反编译难度。可以对图片,资源,配置等进行修改名称,修改md5。...保留JSON对应Java Bean对象:在proguard-rules.pro文件中保留与JSON相关Java Bean对象,使用-keep指令来保留这些

80010

Flutter App混淆加固、保护与优化原理

一、混淆原理 混淆是一种代码保护技术,通过修改源代码或编译后代码,使其难以阅读和理解。混淆主要目的是提高反编译和逆向工程难度。通常,混淆可以通过以下方法实现: 重命名变量、函数和。...这些文件可用于还原混淆堆栈跟踪。 2.2、混淆Android原生代码 要对Android原生代码进行混淆,请在android/app/build.gradle文件启用ProGuard或R8。...('proguard-android-optimize.txt'), 'proguard-rules.pro' } } 此外,确保在proguard-rules.pro文件添加必要混淆规则,例如保留与...可以根据设置对函数名、变量等关键代码进行重命名和混淆处理,降低代码可读性,增加ipa破解反编译难度。可以对图片,资源,配置等进行修改名称,修改md5。...保留JSON对应Java Bean对象:在proguard-rules.pro文件中保留与JSON相关Java Bean对象,使用-keep指令来保留这些

34810

Android 代码混淆 混淆方案

提供混淆前后、方法、成员等对照表 seeds.txt 列出没有被混淆和成员 usage.txt 列出被移除代码 我们可以根据 seeds.txt 文件检查未被混淆和成员是否已包含所有期望保留...(很多老混淆文件里会加,现在已经没必要) proguard-android.txt已经存在一些默认混淆规则,没必要在 proguard-rules.pro 重复添加 混淆简介 Android混淆...”可以分为两部分,一部分是Java 代码优化与混淆,依靠 proguard混淆器来实现;另一部分是资源压缩,将移除项目及依赖未被使用资源(资源压缩严格意义上跟混淆没啥关系,但一般我们都会放一起用...' 这行代码定义了混淆规则由两部分构成:位于 SDK tools/proguard/ 文件 proguard-android.txt 内容以及默认放置于模块根目录 proguard-rules.pro...{ *; } } 不混淆某个子类 -keep public class * extends com.biaobiao.example.Test { *; } 不混淆所有包含了

2.5K30

Android插件化基础3----Android编译打包流程详解

合法性,然后对res目录下资源目录进行处理,处理函数为makeFileResource(),处理内容包括资源文件合法性检查,向资源表table添加条目等,处理完后调用compileResourceFile...、方法都会被设置为private、static或final,不实用参数会被移除,此外,有些方法会被标记为内联,在混淆不会走ProGuard会对非Entry Point和方法进行重命名。...(五)、ProGuard基本命令 1、关键字: keep关键字 keep:保留成员,防止他们被混淆 keepnames:保留成员防止被混淆,但成员如果没有被引用将被删除 keepclassmember...-dontpreverify # 有了verbose这句话,混淆后就会生成映射文件 # 包含有->混淆映射关系 # 然后使用printmapping指定映射文件名称 -verbose...3、对于自定义混淆处理 比如我们引用了一个叫做AndroidLib库,我们需要对Lib也进行混淆,然后在主项目的混淆文件中保留AndroidLib成员 4、使用annotation

2K22

Android 代码混淆规则

ProGuard是一个免费Java文件收缩,优化,混淆和预校验器。它可以检测并删除未使用,字段,方法和属性。它可以优化字节码,并删除未使用指令。...Proguard作用 Android混淆”可以分为两部分,一部分是 Java 代码优化与混淆,依靠 proguard 混淆器来实现;另一部分是资源压缩,将移除项目及依赖未被使用资源(资源压缩严格意义上跟混淆没啥关系...main -> 渠道 -> 构建类型 举个例子,假如重复资源同时存在于main文件夹和不同渠道,gradle 会选择保留渠道资源。...“移除资源”流程则见知意,需要注意是,类似代码,混淆资源移除也可以定义哪些资源需要被保留,这点在下文给出。 3....class * extends com.android.proguard.example.Test { *; } 4.4 不混淆所有包含了“model”及其成员 -keep public

2.5K10

Android-Proguard(混淆)

build.gradle文件设置minifyEnabled为true,然后可以到proguard-rules.pro文件中加入我们混淆规则即可。...大家看到了,有两个混淆文件proguard-android.txt和proguard-rules.pro,proguard-rules.pro是我们需要自己编写混淆文件proguard-android.txt...除了proguard之外,还有一个DexGuard,是专门用来优化混淆Android应用。它包括资源混淆,字符串加密,加密和dex文件分割等。...二:接下来我们来说一说混淆基本规则: ? 但如果你用两颗星,会发现,虽然被保持了,但里面的变量都变了,那如果我们既要本包保持和内容又要子包保存呢?...; 3,AndroidMainfest混淆,所以四大组件和Application子类和Framework层下所有的默认不会进行混淆

1.3K40
领券