`
fantao005x
  • 浏览: 34590 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

代码混淆

 
阅读更多
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#代码混淆源码"正是这样一个工具,旨在帮助开发者通过加密和混淆其C#源代码来提高代码的安全性。 混淆源码的主要目的是使得恶意...

    代码混淆器,专业混淆

    代码混淆是一种技术,主要用于保护软件源代码,尤其是用于防止反编译、逆向工程和非法复制。在Java、JavaScript、Python等编程语言中,代码混淆是常见的安全措施。标题中的"代码混淆器,专业混淆"指的是一个专门用于...

    Spring Boot + Allatori 代码混淆demo

    Spring Boot作为一个流行的微服务框架,广泛应用于企业级开发,而Allatori则是一个强大的Java代码混淆工具,它能有效地保护Java字节码,使其难以理解和反编译。下面将详细介绍Spring Boot结合Allatori进行代码混淆的...

    SpringBoot + proguard+maven多模块实现代码混淆

    基于SpringBoot+Maven多模块工程利用proguard组件实现代码混淆的代码demo,代码清晰完整,导入idea或eclipse即可运行。 使用 proguard 混淆代码只能增加阅读和理解的难度, 并不能百分百保证代码安全。常用的应用...

    cpp-CObjectiveC项目代码混淆工具

    在IT行业中,代码混淆是一种常见的安全措施,用于保护软件源代码免受逆向工程的攻击。本项目"cpp-CObjectiveC项目代码混淆工具"专注于C++和Objective-C项目的代码混淆,利用C++语言和Qt库进行开发。这个工具旨在帮助...

    iOS代码混淆的demo

    本文将深入探讨iOS代码混淆技术,这是提高应用程序安全性的关键手段之一。代码混淆能够使原始代码变得难以理解,从而降低被恶意分析或破解的风险。 首先,我们需要了解什么是代码混淆。代码混淆是一种软件保护技术...

    代码混淆Eclipse插件Jocky

    代码混淆是一种安全技术,主要应用于Java、Android等编程语言,用于保护软件源代码不被轻易逆向工程解析。它通过重命名类、方法和变量,打乱代码结构,使原始代码变得难以理解,从而增强软件的安全性。在Android开发...

    Android 实现代码混淆的实例

    在Android开发中,代码混淆是一项重要的安全措施,它主要用于保护应用程序源代码,使其难以被逆向工程解析。本文将深入探讨Android代码混淆的原理、实现方法以及如何编写混淆规则。 首先,代码混淆(Obfuscated ...

    Unity CodeGuard代码混淆

    Unity CodeGuard代码混淆 包体导入即可 自定义配置混淆程度

    代码混淆实践demo

    代码混淆是一种安全技术,主要应用于软件开发中,尤其是iOS和Android平台,用于保护应用程序的源代码不被轻易逆向工程解析。在这个“代码混淆实践demo”中,我们重点关注的是Swift编程语言在iOS开发中的应用,以及...

    Javascript Obfuscator代码混淆

    在Web开发中,尤其对于那些包含商业逻辑或者敏感信息的JavaScript代码,使用代码混淆是非常重要的安全措施。 混淆(Obfuscation)这个术语来源于拉丁语,意味着“使迷惑”。在编程领域,它指的是将源代码转化为一种...

    JS代码混淆软件(小巧实用)

    这就是JS代码混淆软件的角色所在。本文将深入探讨JS代码混淆的基本概念、目的以及如何使用混淆软件来增强代码的安全性。 一、JS代码混淆的基本概念 代码混淆是将源代码转换为看似无意义的形式,但不影响其功能的...

    yGuard---java代码混淆工具

    yGuard是一款专业的Java代码混淆工具,它主要用于保护Java应用程序,防止恶意用户逆向工程分析代码,从而保护知识产权和商业机密。代码混淆是通过改变源代码中的类名、方法名、变量名,甚至修改字节码,使得原始代码...

    web代码混淆方案.混淆js代码,压缩css代码

    标题和描述中提到的"web代码混淆方案.混淆js代码,压缩css代码"正是针对这两个问题提出的解决方案。混淆JavaScript (JS) 和压缩CSS代码不仅可以防止他人轻易地阅读和复制你的源代码,还可以有效地减少网络传输的数据...

    java代码混淆器proGuard

    Java代码混淆器ProGuard是Java开发中用于保护和优化应用程序的重要工具。它的主要功能是对Java字节码进行混淆,使得代码难以被逆向工程解析,从而提高代码的安全性。混淆过程中,函数变量、类和方法名会被重命名为...

    maven 代码混淆.zip

    在Java开发领域,尤其是涉及到Android应用开发时,代码混淆是一个重要的步骤,用于保护源代码的安全性和优化应用程序的体积。本文将深入探讨`maven`与`代码混淆`的相关知识点,帮助开发者理解如何在Maven项目中实现...

    iOS马甲包代码混淆工具

    iOS代码混淆加密工具 制作iOS马甲包,包括代码加密、代码混淆、修改方法名、修改类名、生成垃圾代码、修改工程名等 https://zfj1128.blog.csdn.net/article/details/95482006

    android apk代码混淆

    ### Android APK代码混淆详解 在Android开发过程中,为了保护源代码不被轻易反编译以及减少APK包的体积,通常会采用代码混淆技术。本文将详细介绍如何进行Android项目的代码混淆,并结合给定的配置文件内容,深入...

    springboot工程(单个maven工程)利用proguard实现代码混淆

    基于springboot搭建一个简单案例,利用proguard插件实现代码混淆,增加源代码的阅读和理解的难度, 并不能百分百保证代码安全。常用的应用场景是项目需要部署到客户机器上,一定程度上防止代码泄露。 ProGuard 是一个...

    c语言、头文件代码混淆器

    自治c语言代码混淆器,可选择移除c语言注释、变量名混淆、函数名混淆,#pragma行删除,#region行删除,空行删除。 可屏蔽不被混淆的关键词、导入导出关键词列表,清空关键词等功能。 可以保护在需要将源码给出时...

Global site tag (gtag.js) - Google Analytics