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

SpringBoot 玩一玩代码混淆,防止反编译代码泄露

混淆 该篇玩的代码混淆 ,是其中一种手段。 我给你看,但你反编译看到的不是真正的代码。 先看一张效果示例图 : 开搞 正文 先看一下我们混淆一个项目代码,要做啥?...一共就两步 第一步, 项目路径下,新增一份文件 proguard.cfg : proguard.cfg #指定Java的版本 -target 1.8 #proguard会对代码进行优化压缩,他会删除从未使用的类或者类成员变量等...} #保留参数名,因为控制器,或者Mybatis等接口的参数如果混淆会导致无法接受参数,xml文件找不到参数 -keepparameternames # 保留枚举成员及方法 -keepclassmembers...第二步,pom文件 加入proguard 混淆插件 : build标签里面改动加入一下配置 ...-- 以下配置说明执行mvn的package命令时候,会执行proguard--> <phase

57630
您找到你想要的搜索结果了吗?
是的
没有找到

最新版SpringBoot结合ProGuard实现代码混淆

SpringBoot结合ProGuard实现代码混淆 参考案例 前言 ProGuard集成 1.maven的配置 2.相关异常解决 注意事项 参考案例 1、Springboot+proguard+maven...混淆. 2、proguard-spring-boot-example 3、官方解释 4、Proguard的Keep使用方法 5、ProGuard 最全混淆规则说明 6、ProGuard代码混淆技术详解...项目并且实现代码混淆已经很舒服了。...Annotation-specified bean name ‘a’ for bean class 问题原因: 出现这个问题主要还是混淆之后,bean重名了,spring默认是把类名的首字母小写加载到容器里面...里面的方法名不会被混淆,这些你们可以自己定义,而且我这里定义了有标注@Component的类也保留类名,按照我上面的配置,基本可以不用重新构建beanName。

5.1K40

ProGuard Android 的使用姿势

上面的代码中,我给出了 Android Gradle 打包插件中的默认配置¹,接下去我会在 proguard-rules.pro 中加入其他的配置。...而有时候, Android 这些代码的依赖在运行时并不会被真正的调用。让我们看一个真实的例子。 ? 一个项目依赖 OkHttp 3.8.0 构建时的消息。...当运行时发生了 ClassNotFoundException 或 MethodNotFoundException 异常意味着您肯定缺失了某些类或者方法,也许是 ProGuard 移除了他们,又或者是因为错误配置依赖而导致无法找到他们...有些项目简单地在他们的文档或者 README 提及了必要的混淆规则,所以您需要复制粘贴这些规则到您的主 ProGuard 配置文件中。...tools 目录下(SDK/tools/proguard/proguard-android.txt),但在新版的 SDK Tools 和 Android Gradle 插件版本2.2.0+,可以构建时从

2.5K40

Android Instant App(安卓即时应用程序)中启用 ProGuard混淆

问题剖析 - 两种不同的构建方式 一个典型的场景中,模块化应用程序并使用新的 Gradle 插件后,您的项目结构将如下所示: ? 一个典型的多功能安装 + 即时应用程序项目。...现在我们明白了为什么 ProGuard混淆)会失败了,是时候解决这个问题了:确保我们为项目配置添加必要的保留规则,以防止不同模块(一个模块中定义,另一个中使用)之间的类被移除或混淆。...我建议处理 ProGuard混淆错误前熟读 Android Studio 文档,ProGuard混淆)手册 以及我的一篇文章 。...它为资源文件和 Android Manifest 中使用的类生成所需的 ProGuard混淆)规则,但在构建即时应用程序的情况下,它们最终可能会出现错误的模块中。...你可以 GitHub 看看最新的一些使用 ProGuard混淆)配置的即时应用示例 来和你的相比较,或者练习本文中介绍的相关示例项目的方法。

2.5K30

聊聊如何进行代码混淆

源代码有时会因为反编译错误而变得更加模糊 其他 异常混淆、字符串加密混淆、引用混淆等 代码混淆的作用 不仅仅是保护代码,它也有精简编译后程序大小的作用。...1、下载的jar可以放到项目可以读到的地方。...,估计连代码的亲妈都很难认出这个代码 总结 自从知道allatori后,我基本都不用proguard。...他提供了很多示例 [d4e20056006ae7d4d39bcb2cbe66f78d.png] 因为allatori没有提供插件,其实我们使用的时候,可以把他制作成一个maven插件。...如何制作一个maven插件,可以参考我之前的文章 聊聊如何自定义实现maven插件 其实在springboot项目使用allatori,还遇到一点小坑。这个小坑是啥,留个悬念。下篇文章水一篇。

3.1K40

Android插件化、热补丁中绕不开的ProGuard的坑

Retrace 经过ProGuard处理后的字节码运行的堆栈已经跟没有处理之前的不一样了,除了出现名称的变化还伴随着逻辑的变化,程序崩溃后,开发者需要借助Retrace将错误堆栈恢复为没有经过ProGuard...背景 我们实施插件化、热补丁修复时,为了让插件、补丁和原来的宿主兼容,必须依赖ProGuard的applymapping功能的进行增量混淆,但在使用ProGuard的applymapping时会遇到部分方法混淆错乱的问题...,map中的键值对会被后出现的方法(以Class中的顺序为准)覆盖,可能会导致错误映射覆盖正确映射。...执行混淆时,MappingKeeper会把mapping中存在的映射关系为ProgramMethod的visitorInfo赋值,但是没有区分普通映射还是内联,虽然stop方法最初被正确的赋值为b,但是因为内联接下来被错误的赋值为...Sample 这个Bug有些项目很难复现,或者能复现该Bug的项目过于复杂,我们写了一个可以触发这个Bug的Sample。 下载项目后首先.

1.5K60

Android 代码混淆机制

编写混淆脚本 找到Android项目目录下的“proguard-project.txt”文件,proguard-project.txt文件中,你需要做的就是指定混淆规则,还有指明要过滤那些文件或代码块...eclipse签名打包出APK文件了,但是有时候可能有混淆脚本有错误或遗漏,导致打包失败的情况,这时候就得检查混淆文件哪里出了错。...二、通过ProGuard工具混淆代码 如果你想把你的Android项目打包成jar文件然后再混淆,那这种方法比较适合 下载运行ProGuard工具 1.首先到http://proguard.sourceforge.net.../下载proguard,目前我下载并使用的是proguard5.1 2.解压proguard5.1,执行 bin目录下的proguardgui.bat文件打开ProGuard工具 从Android项目到处...eclipse中右键点击项目Export–>Java–>JAR file–>Next,然后出现如下界面 只需要选择java文件即可,其他配置文件什么的都不用选择 配置ProGuard工具 1.打开

1.3K20

Android性能优化(十)之App瘦身攻略

备注:对于Proguard,虽然效果很明显,但仍然需要谨慎; 代码混淆会拖慢项目构建速度,因此debug模式下关掉Proguard不至于RD在运行代码的时候抓狂; 因为debug模式下关掉了Proguard...,如果混淆规则没有配置好,Release模式可能会出现debug模式下不出现的Bug; Proguard也不是你想搞就能搞,如果App做了一段时间之后再来做Proguard项目包结构不规范的话,那Proguard...4.3 对图片进行压缩 之前我项目里发现过文件大小过1M的图片,可能是由于UI同学和RD同学的双重疏忽,导致如此大的图片到了项目中,对Apk体积的影响自然不言而喻。...理论对应CPU架构的So的执行效率是最高的,但是这样会导致libs目录下放置各个架构平台的So文件,Apk文件的大小自然也就更大了。...7.5 其它 类如插件化,将Dex与资源文件放在服务端,需要时下载;但是插件化实施以及与现有项目结合难度不小,也超出本文主题,不细说; 通过 build.gradle配置include来针对每个CPU

1.6K30

Gradle教程–基础篇

wrapper(安装辅助工具) 下面我用一个开源项目开详细分析一下,加深自己对 Gradle 理解,首先这个项目有两个Moudle,一个是应用程序模块,一个是库模块 1. 9GAG/build.gradle...在编译过程中,如果Gradle插件版本与Gradle版本不匹配,编译就会失败。...proguardFiles这部分有两段,前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,免去了我们很多事,这个文件的目录在 /tools/proguard/proguard-android.txt..., 后一部分是我们项目里的自定义的混淆文件,目录就在 app/proguard-rules.txt , 如果你用Studio 1.0创建的新项目默认生成的文件名是 proguard-rules.pro..., 这个名字没关系,在这个文件里你可以声明一些第三方依赖的一些混淆规则,由于是开源项目,9GAG里并未进行混淆

72820

深入探索 Android 包瘦身(

5)、最后,使用以下命令将两个文件权限设置为 可执行 即可: sudo chmod a+x file 2、使用ApkTool分析APK 我们命令行下输入以下命令对 APK 进行反编译,如下所示...而它的作用具体可以细分三点,如下所示: 1、压缩(Shrinking) 默认开启,以减小应用体积,移除未被使用的类和成员,并且 会在优化动作执行之后再次执行,因为优化后可能会再次暴露一些未被使用的类和成员...最后,注释 4处,我们可以配置混淆文件的位置,其中 proguard-android.txt 为 sdk 默认混淆配置,它的位置位于 android-sdk/tools/proguard/proguard-android.txt...,此外,proguard-android-optimize.txt 也是 sdk 默认混淆配置,但是它 默认打开了优化开关。...LZMA 的 主要功能 如下: 1)、压缩速度:3 GHz双核CPU为3 MB / s。 2)、减压速度:现代3 GHz CPU(Intel,AMD,ARM)为20-50 MB / s。

1.9K30

Android Studio下打jar包及使用jar包

7,命令成功执行,如下图 8,打包产生的jar包,如下图: 产生的mySdk.jarmylibrary\build\libs下 9,打包过程中出错处理 Error:(1, 1) 错误: 非法字符: '...\ufeff' android studio Error:(1 IntelliJ IDEA :Error:(1 我的解决办法: 我电脑没有notepad++,但有Sublime Text,我把CgmLibrary...第一篇:安装配置gradle - 推酷 可以android studio 下的terminal内执行以上命令 第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建...-Android-第七城市 二、Android Studio下使用jar包 1,本项目中使用jar包 2,其他项目中使用jar包 (1)新建项目 新建项目 (2)把jar包复制到项目的lib目录下...包内的所有Activity和Service都要注册,否则会无法调用Service(遇到的问题,没写BleLibaray和BleService) 三、混淆Android Jar包 遇到的问题:内部接口无法混淆

4.7K50

壹二APP开发实践回顾总结出40条精要

v3.7 加载Gif 的时候,缓存策略不能使用Result,不然显示不出来; 7、一个类中内部类又调用其他内部类的,混淆的时候似乎会有问题; 7.1、 抄 umeng 混淆指定的代码的时候写入了下面这两行...-dontshrink -dontoptimize 7.2、如果你执行了7.1,请记得在混淆里面多配置。...它包括相同的 ProGuard 规则,但还包括其他字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。...说到这里你也要小心引入或者打开了 -dontobfuscate ,这个就是说不混淆了。所以最后你是不是发现混淆和不混淆怎么都一样了?! 我抄 zxing 的时候不小心引入了。...View是动态测量设置宽度或者高度时也是有问题的; 16、CardView 默认是带有背景色的,特定情况下,会出现背景色覆盖不了的情况。

85640

Android 混淆那些事儿

Android Studio 默认混淆方案及字段解读 开启混淆 参见google官方文档压缩代码和资源 要通过Proguard启动代码压缩,build.gradle文件内相应的构建类型中添加minifyEnabled.../proguard/ 文件夹获取默认ProGuard 设置。...它包括相同的 ProGuard 规则,但还包括其他字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。...,不同的gradle版本带有不同的默认混淆文件,项目根目录的build/intermediates/proguard-files/proguard-android.txt-2.3.3(笔者用的gradle...请参见ProGuard官方问题解答; 参考文献: 1、Android 项目的代码混淆,Android proguard 使用说明 2、google 混淆官方文档 3、混淆官方网址 4、Android混淆快速配置之

3.2K50

Android 代码混淆规则

Proguard作用 Android中的“混淆”可以分为两部分,一部分是 Java 代码的优化与混淆,依靠 proguard 混淆器来实现;另一部分是资源压缩,将移除项目及依赖的库中未被使用的资源(资源压缩严格意义混淆没啥关系...-dontshrink 关闭压缩 优化(Optimization):默认开启,字节码级别执行优化,让应用运行的更快。...需要注意的是,这一流程不受shrinkResources属性控制,也无法被禁止, gradle 必然会做这项工作,因为假如不同项目中存在相同名称的资源将导致错误。...同时,如果重复资源同一层次出现,比如src/main/res/ 和 src/main/res2/,则 gradle 无法完成资源合并,这时会报资源合并错误。...Proguard使用 7.1 开启混淆 项目的可执行工程Module中打开build.gradle文件进行编辑: android { ......

2.4K10
领券