java maven 混淆_使用proguard实现maven工程代码混淆
proguard简单来说是为了防止反编译,更准确的说,是使得代码易读性变差。
maven pom配置中加入以下:
com.github.wvengen
proguard-maven-plugin
2.0.11
package
proguard
true
true
pg
${basedir}/proguard.conf
${java.home}/lib/rt.jar
${java.home}/lib/jce.jar
classes
${project.build.finalName}-pg.jar
${project.build.directory}
在pom同级目录下添加proguard.conf文件:
# 忽略所有警告,否则有警告的时候混淆会停止
-ignorewarnings
# JDK目标版本1.8
-target 1.8
# 不做收缩(删除注释、未被引用代码)
-dontshrink
# 不做优化(变更代码实现逻辑)
-dontoptimize
# 不路过非公用类文件及成员
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
# 优化时允许访问并修改有修饰符的类和类的成员
-allowaccessmodification
# 确定统一的混淆类的成员名称来增加混淆
-useuniqueclassmembernames
# 不混淆所有包名,本人测试混淆后WE
java maven 混淆_使用proguard实现maven工程代码混淆相关推荐
- 代码混淆的原理是什么?常见代码混淆方法介绍
移动应用代码安全非常重要,代码逆向会导致代码逻辑被获取,进一步导致控制流被hook,安全防线被破,给APP安全带来巨大风险,因此开发者一般都会进行代码混淆保护.本文主要介绍了代码混淆的原理.方法.以及 ...
- android微信第三方登陆混淆,基于微信api Android程序签名+代码混淆
微信开放平台真是独特啊!!! 微信的ap调用确实别新浪微博,人人,QQ互联这些方便很多,也不用判断绑定什么的,让人眼前一亮.但是到代码混淆这一步,我真瞎了,网上关于微信签名混淆资料讲的让人摸不着头脑, ...
- Python-编写Python脚本进行iOS代码混淆(iOS防黑加固之代码混淆篇)
前言 最近一直在看Python,也很喜欢Python的灵活性:今天主要想说的是iOS的代码混淆,为什么想做代码混淆?为了APP的安全,为了防止别人破壳轻易破解我们代码:还有就是做 马甲包 了,我们知道 ...
- java war包混淆_使用proguard混淆java web项目代码
-injars 'Y:\src.jar' #需要混淆的jar -outjars 'Y:\java\src.jar' #输出jar -libraryjars 'C:\java\jre6\lib\rt.j ...
- 如何导入maven源文件_如何正确导入maven项目到eclipse?
Eclipse不允许一个项目被导入不止一次,在您的情况下,来自中继线和分支. This article显示了如何通过自定义maven配置文件绕过此限制.基本上,步骤是: >将以下配置文件添加到您 ...
- java 重复代码优化_利用注解 + 反射消除重复代码(Java项目)
1. 案例分析 1.1 案例场景 假设银行提供了一些 API 接口,对参数的序列化有点特殊,不使用 JSON,而是需要我们把参数依次拼在一起构成一个大字符串 按照银行提供的API文档顺序,将所有的参数 ...
- java动态规划解法_动态规划通用解法总结(示例代码)
背景:leetcode刷题遇到动态规划的题目,做不出来时看别人的code,也可以理解,但还是没有找到create solution的技巧,单纯的comprehend and remeber,直到遇到了 ...
- java滥用接口_吐槽一下项目中的代码坏味道:滥用java常量
我们的项目中是否充斥着类似以下的代码呢?定义一个专门存放常量的java类(接口),非常多其它类依赖该常量类. public interface IConstant { int ZERO = 0; St ...
- Java三行情书_函数式编程思维在三行代码情书中的应用
函数式编程概述 如今主流的编程语言,函数式编程范式或多或少都融入其中成了"标配",或者说主流语言都在进行函数式方面的扩充,这是一个大趋势.以Java为例,随着 Lambda块 和 ...
最新文章
- Python——Entry、Text控件
- 甚长基线干涉测量技术(VLBI)基础
- JAVA_Java常用核心包(概念)
- yum工具安装Nginx
- 晶闸管有几个pn结_晶闸管的电路符号和图片识别
- 堆栈向下增长和向上增长的理解
- go语言json字符串解析为结构体数组,结构体指针的数组
- Codeforces 985C (贪心)
- 简单解决“无法打开内核设备:\\Global\\vmx86”错误
- Java 8中的策略模式
- 实习期间的一些思考整理(3)2018.4.12~4.13
- 如何能能够学好软件编程技术
- netbsd配置gnome桌面
- [转载] python列表解释(list comprehension)记录
- chrome怎么调用硬件_浏览器发展简史——IE帝国是如何被chrome打败的?
- 卡尔曼滤波原理及公式推导
- word中插入常用几种公式编辑器
- 电商后台系统:管理后台之账号管理(一)
- 【WiFi】Wi-Fi 5(802.11ac) 与 Wifi 6 (802.11ax)RF的关键变化
- 电脑饥荒服务器未响应,《饥荒》联机版常见问题及解决方法一览
热门文章
- Python机器学习基础
- 编写高效的java代码
- 对平稳马尔可夫链(stationary distribution of a Markov chain)的学习
- Linux内存管理:slub分配器
- 世界三大数学软件:MATLAB 2017-2019/Mathematica 11/Maple 2018-2019
- 中小型企业Web开发框架
- Python读取指定文件夹中的所有图片并保存
- append html 是字符串,jquery .html()vs .append()
- 让最小化安装的CentOS 6.8能够浏览网页
- DNS知识及域名解析内容深入浅出超详细总结附DNS配置教程