1.混淆配置文件
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
# 保护泛型, removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
public *;
}
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
-keepclasseswithmembernames class * {
native <methods>;
}
# keep entity for json
# android support
-keep class android.support.**{*;}
-dontwarn android.support.**
# annotation.
-keep public class android.annotation.** { *; }
-dontwarn android.annotation.**
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }
-keep class com.google.gson.examples.android.model.** { *; }
-keep class com.google.gson.** { *;}
-dontwarn com.google.gson.**
## end of Gson
# other libs
2.工程配置文件
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
3.需要注意的问题:
a.反射不能混淆
b.泛型不能混淆
c.序列化的不能混淆
d.自定义VIEW不能混淆
e.google的gson不能混淆
分享到:
相关推荐
源代码混淆是保护软件知识产权的一种重要手段,尤其是在开源和分发软件时。"好用的c#代码混淆源码"正是这样一个工具,旨在帮助开发者通过加密和混淆其C#源代码来提高代码的安全性。 混淆源码的主要目的是使得恶意...
代码混淆是一种技术,主要用于保护软件源代码,尤其是用于防止反编译、逆向工程和非法复制。在Java、JavaScript、Python等编程语言中,代码混淆是常见的安全措施。标题中的"代码混淆器,专业混淆"指的是一个专门用于...
Spring Boot作为一个流行的微服务框架,广泛应用于企业级开发,而Allatori则是一个强大的Java代码混淆工具,它能有效地保护Java字节码,使其难以理解和反编译。下面将详细介绍Spring Boot结合Allatori进行代码混淆的...
基于SpringBoot+Maven多模块工程利用proguard组件实现代码混淆的代码demo,代码清晰完整,导入idea或eclipse即可运行。 使用 proguard 混淆代码只能增加阅读和理解的难度, 并不能百分百保证代码安全。常用的应用...
在IT行业中,代码混淆是一种常见的安全措施,用于保护软件源代码免受逆向工程的攻击。本项目"cpp-CObjectiveC项目代码混淆工具"专注于C++和Objective-C项目的代码混淆,利用C++语言和Qt库进行开发。这个工具旨在帮助...
本文将深入探讨iOS代码混淆技术,这是提高应用程序安全性的关键手段之一。代码混淆能够使原始代码变得难以理解,从而降低被恶意分析或破解的风险。 首先,我们需要了解什么是代码混淆。代码混淆是一种软件保护技术...
代码混淆是一种安全技术,主要应用于Java、Android等编程语言,用于保护软件源代码不被轻易逆向工程解析。它通过重命名类、方法和变量,打乱代码结构,使原始代码变得难以理解,从而增强软件的安全性。在Android开发...
在Android开发中,代码混淆是一项重要的安全措施,它主要用于保护应用程序源代码,使其难以被逆向工程解析。本文将深入探讨Android代码混淆的原理、实现方法以及如何编写混淆规则。 首先,代码混淆(Obfuscated ...
Unity CodeGuard代码混淆 包体导入即可 自定义配置混淆程度
代码混淆是一种安全技术,主要应用于软件开发中,尤其是iOS和Android平台,用于保护应用程序的源代码不被轻易逆向工程解析。在这个“代码混淆实践demo”中,我们重点关注的是Swift编程语言在iOS开发中的应用,以及...
在Web开发中,尤其对于那些包含商业逻辑或者敏感信息的JavaScript代码,使用代码混淆是非常重要的安全措施。 混淆(Obfuscation)这个术语来源于拉丁语,意味着“使迷惑”。在编程领域,它指的是将源代码转化为一种...
这就是JS代码混淆软件的角色所在。本文将深入探讨JS代码混淆的基本概念、目的以及如何使用混淆软件来增强代码的安全性。 一、JS代码混淆的基本概念 代码混淆是将源代码转换为看似无意义的形式,但不影响其功能的...
yGuard是一款专业的Java代码混淆工具,它主要用于保护Java应用程序,防止恶意用户逆向工程分析代码,从而保护知识产权和商业机密。代码混淆是通过改变源代码中的类名、方法名、变量名,甚至修改字节码,使得原始代码...
标题和描述中提到的"web代码混淆方案.混淆js代码,压缩css代码"正是针对这两个问题提出的解决方案。混淆JavaScript (JS) 和压缩CSS代码不仅可以防止他人轻易地阅读和复制你的源代码,还可以有效地减少网络传输的数据...
Java代码混淆器ProGuard是Java开发中用于保护和优化应用程序的重要工具。它的主要功能是对Java字节码进行混淆,使得代码难以被逆向工程解析,从而提高代码的安全性。混淆过程中,函数变量、类和方法名会被重命名为...
在Java开发领域,尤其是涉及到Android应用开发时,代码混淆是一个重要的步骤,用于保护源代码的安全性和优化应用程序的体积。本文将深入探讨`maven`与`代码混淆`的相关知识点,帮助开发者理解如何在Maven项目中实现...
iOS代码混淆加密工具 制作iOS马甲包,包括代码加密、代码混淆、修改方法名、修改类名、生成垃圾代码、修改工程名等 https://zfj1128.blog.csdn.net/article/details/95482006
### Android APK代码混淆详解 在Android开发过程中,为了保护源代码不被轻易反编译以及减少APK包的体积,通常会采用代码混淆技术。本文将详细介绍如何进行Android项目的代码混淆,并结合给定的配置文件内容,深入...
基于springboot搭建一个简单案例,利用proguard插件实现代码混淆,增加源代码的阅读和理解的难度, 并不能百分百保证代码安全。常用的应用场景是项目需要部署到客户机器上,一定程度上防止代码泄露。 ProGuard 是一个...
自治c语言代码混淆器,可选择移除c语言注释、变量名混淆、函数名混淆,#pragma行删除,#region行删除,空行删除。 可屏蔽不被混淆的关键词、导入导出关键词列表,清空关键词等功能。 可以保护在需要将源码给出时...