记一篇Android混淆的坑

Android混淆代码所遇到的坑 前言  之前一直没有处理过代码混淆,只了解一些相关的知识,代码一直都使用360加固了。今天公司要求使用代码混淆,那就听从安排,搞呗。第一步:  在使用混淆代码之前,需要在gradle文件中更改一些配置,需要更改的配置如下:buildTypes { release { minifyEnabled true proguardFiles g... 阅读详情

                                                                                                     记一篇Android混淆的坑

目前大多数app打包都使用了代码混淆,而至于为什么要使用代码混淆以及混淆的优势是什么这篇文章我就不说明了,今天主要记录下使用混淆后出现的问题。

1先说下背景吧,之前项目突然编译很慢很慢,甚至一个小时都编译不过,也不报错,当时想了尝试了很多种方式(没有翻墙)于是就把Gradle插件版本改了,最终还是没解决问题。猜想的是网络原因,第二天就自动好了

2.这次我要说的坑与上面有很大的关系,最近打算发布新版本,突然发现打包后运行直接闪退,我看了本地日志都是第三方空指针,但是我很确定的是混淆规则都是按照官方文档配置的,但是无论怎么修改混淆配置文件都会空指针,这个问题困扰了我几天。上班有时间就在研究,什么清除缓存,重启as,还原混淆配置文件都尝试了,都无法解决问题,甚至我把最近新加的第三方框架都注释了,还是一样,QQ,微信各种寻找撸友帮助,都没得到一个肯定的答案,混淆后有个mapping.txt文件可以还原代码,但是这是第三方空指针,总不能修改人家源码吧?更可恶的是混淆规则也是按照官方文档来的,这问题到底出现在那里?

这是空指针异常

这个空指针我大概看了下是网络请求方面的。怎么办?怎么办?(不开启混淆代码一切正常运行)

3.最后直到解决问题的一天,我仔细回顾了最近我对项目做了什么操作,eeeeeemmmmmmmmmmmmm,突然想起上次项目编译不过貌似修改过本地,我遇到赶紧对比了下Gradle版本,果然版本当时被我修改了,我尝试回归了之前的版本,果然混淆后项目正常运行,说实话之前在项目中使用混淆的时候从未想过Gradle版本会导致项目出问题,以前都是混淆规则配置有误才会出现这种问题。虽然问题解决了,但是有种搬起石头砸自己脚的感觉,最后奉劝各位没事别去修改什么gradle插件版本,as版本之类的,特别是去降低版本,混淆在平时debug模式都是关闭的,到了正式打包你很可能就忘记你修改过版本了,那时候你找问题就真正很难很难了................

4.写这篇文章就是给自己一个警告,也是给各位一个劝告,如果这篇文章有帮助到你,麻烦点赞支持一下,谢谢....

 

 

Android代码混淆 一、代码混淆作用: 防止反编译; 精简编译后的apk文件大小; 二、开启混淆: 在项目的build.gradle中开启混淆: 将minifyEnabled的值改为true即开启:其中debug为测试版本,release为发布版本 三、混淆说明: 开启混淆后Android会用自带的混淆进行代码混淆,如在安装Android SDK的目录下的proguard-android.txt或proguard-android-optimize.txt文件为默认混淆文件。对于自己定义的混淆需要在proguar 阅读详情

相关推荐

【OpenBMC 系列】4.启动流程 使用qume模拟ast2600-evb

1.安装openbmc适配的qume 2.启动bmc 3.使用bmc web

AiFool的博客 4459

Android 优化- 2. 代码混淆

Android代码混淆混淆基础配置 混淆基础配置 android{ buildTypes { release { ....... // 开启混淆会使编译时间变长,所以debug模式下建议不开启 minifyEnabled true shrinkResources true ...

初心一点的专栏 327

【ZZULIOJ】郑州轻工业大学oj题解整合

写在前面 关于ZZULIOJ题解 学习编程,想要巩固无非就是刷题或者做项目,然后因为我大一开始是刷郑轻的题目,就想着自己整合一下自己写的题目。既是复习也是笔记吧。 题解(内有题目描述) 1000 整数a+b 1001 植树问题 1002 简单多项式求值 1003 两个整数的四则运算 1004 三位数的数位分离 1005 整数幂 1006 求等差数列的和 1007 鸡兔同笼 1008 美元和人民币 1009 求平均分 1010 求圆的周长和面积 1011 圆柱体表面积 1012 求绝对值 1013 求两点间

蒟蒻乱写的博客 29万+

Android 从混淆引发的问题谈起

从事Android 已有2 、3年光景,但一直没有深入了解过混淆,和深入学习探究过混淆,只是知道有这么一个topic,直到前些天,遇到了一个问题 下定决心系统学习相关知识点。问题来源:自己再debug状态下没有任何问题,但是打了release包就有问题,要不是闪退,要不就是网络请求没有效果,数据请求错误。然后自己把release的混淆关闭,一切也没有问题,这个时候可以锁定问题出在混淆上了。 于是...

sjh_389510506的博客 851

OS实验xv6 6.S081 开坑

OS实验xv6 6.S081 开坑 终于把xv6 2019 6.S081做完了,网络部分没有写,因为有计网实验了。怎么说呢,xv6的坑有点多,能做完多亏了:和我同学ljj交流,参考RedemptionC老哥的博客(他写的非常详细,遗憾的是,他好像没有写mmap),再者就是参考这位老哥的做法(没有源码,写得不是特别详细,不过有借鉴作用,mmap就是借鉴了他的思想)……废话不多说了,直接开始。 实验指导 首推RedemptionC的博客 这位老哥的个人博客 xv6 6.S081官网(后面的实验都要参考官网

不定期更新系统使用、编程小技巧,哔哩哔哩账号:https://space.bilibili.com/399455629,欢迎关注 4493

fMRI独立成分分析方法(ICA)工具GIFT

详细介绍了进行fmri数据进行ICA分析的工具包GIFT的使用,和进行ICA分析的流程。

m0_58256026的博客 1万+

android代码混淆个人总结及踩坑

android代码混淆个人总结及踩坑 前言 公司项目使用组件化开发的形式,需要对自己负责的模块进行一些混淆配置,关于混淆相信做android开发的都或多或少有过一些接触,通过对混淆文件的配置从而将代码中的类名,方法名,成员变量等进行无意义的字符替换达到增加反编译难度的作用,这篇文章主要要说的问题就是在学习混淆过程中自己的一些总结想法。 混淆语法 这个网上有很多关于这块的资料,说的也比较清楚了,无非就是keep ,keep class,keep classmembers,,*,...等混淆命令的使用,

华 英雄 1665

python爬虫:采集求职者简历信息并进行人才分析

通过 Python 爬虫抓取求职者简历信息并进行人才分析,可以帮助企业快速筛选和匹配人才。但在实施过程中,必须严格遵守法律法规,确保数据来源合法合规。如果需要更复杂的分析,可以结合自然语言处理(NLP)和机器学习技术,进一步挖掘数据价值。

数据知道的博客 1万+

Android配置完混淆打包时卡住,transformClassesAndResourcesWithProguardForXXXRelease

项目在配置完混淆打包以后,卡在92%的打包进度不动,出现如下提示命令: Optimizing (pass 1/5)... <============-> 92% EXECUTING [3m 0s] > :cashier_scale:transformClassesAndResourcesWithProguardForDemoRelease > IDLE > IDLE ...

No errors,no gains! 2410

unity6000.0.3版本URP下ScriptableRendererFeature如何实现一张自定义贴图效果?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 584

基于Java+SpringBoot+微信小程序实现奶茶点单系统

再不用担心逢年过节的第一杯奶茶有没有人送了,制作一个奶茶点单系统自己当店主,开怀畅饮,一劳永逸。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 1万+

Android 打包过慢的解决方案

修复android打包过慢bug

qq_36428855的博客 2276

Dify 第 2 篇 Dify 插件离线安装

Dify是一个支持插件扩展的AI平台,其插件市场提供5种类型插件(模型、工具、Agent策略、扩展、插件包)。由于默认pip安装速度慢,可通过dify-plugin-repackaging工具将插件转换为离线包(使用阿里云镜像加速)。该工具提供两种方式:1)自备Python环境执行脚本;2)使用Docker环境(推荐)。脚本支持从Dify市场或GitHub下载插件,并重新打包为含依赖的离线包,便于通过"本地插件"方式快速安装。

甘蓝的专栏 1264

Android 混淆大全一篇就够了

############################################# # # 对于一些基本指令的添加 # ############################################## 代码混淆压缩比,在0~7之间,默认为5,一般不做修改 -optimizationpasses 5 # 混合时不使用大小写混合,混合后的类名为小写 -dontusemixedcaseclassnames # 指定不去忽略非公共库的类 -dontskipnonpubliclibrarycla.

一个踩这七色彩虹的路人甲 4845

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

安卓开发混淆讲解

Android混淆(ProGuard)从0到1 - 简书本文为原创,转载请注明出处:http://www.jianshu.com/p/1b76e4c10495 说在前面的 作为一个Android开发者,或多或少都知道点关于混淆的概...https://www.jianshu.com/p/1b76e4c10495 子模块的consumer-rules.pro被主模块用 子模块的proguard-rules.pro被子模块自己用 Android制作AAR包并混淆后加载调用 - 云+社区 - 腾讯云.

shuangrenlong的博客 7508

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

安卓开发之代码混淆

首先在build.gradle中将代码开启混淆false->true。Java层代码上上混淆,对抗反编译,jadx及jeb。看了一眼代码混淆的看不清楚了,估计用jeb才可以稍微看清楚点逻辑。在打包apk的时候有两种模式debug|release。debug调试模式release发布版本。so层上ollvm代码混淆,vmp加固等。今天我们这里说一下java代码混淆,记录一下,方便以后使用。众所周知,一般安卓开发,......

Codeooo 博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

安卓源码去掉混淆

安卓源码去掉混淆

似霰的博客 1973

Android 代码混淆 混淆方案

命令 | 作用 || — | — || -keep | 防止类和成员被移除或者被重命名 || -keepnames | 防止类和成员被重命名 || -keepclassmembers | 防止成员被移除或者被重命名 || -keepnames | 防止成员被重命名 || -keepclasseswithmembers | 防止拥有该成员的类和成员被移除或者被重命名 || -keepclasseswithmembernames | 防止拥有该成员的类和成员被重命名 |

2401_84121798的博客 1475

Android混淆心得

最近在做Android应用的混淆,踩了一些坑,这里记录分享下个人的心得。

成长之路 1万+

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

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2401_84123113的博客 1098

android代码混淆aar_android代码混淆个人总结及踩坑

前言公司项目使用组件化开发的形式,需要对自己负责的模块进行一些混淆配置,关于混淆相信做android开发的都或多或少有过一些接触,通过对混淆文件的配置从而将代码中的类名,方法名,成员变量等进行无意义的字符替换达到增加反编译难度的作用,这篇文章主要要说的问题就是在学习混淆过程中自己的一些总结想法。混淆语法这个网上有很多关于这块的资料,说的也比较清楚了,无非就是keep ,keep class,kee...

weixin_39789646的博客 1413

Android混淆总结

Android混淆总结

weixin_42602900的博客 4168

安卓混淆及反编译工具

目录 安卓混淆及反编译工具... 1 Eclipse编译混淆... 2 项目文件project.properties. 2 服务器编译混淆... 2 Android.mk. 2 混淆规则... 3 Java代码的混淆... 3 Proguard混淆规则汇总... 3 Native的混淆... 4 资源文件的混淆... 4 混淆的常见配置... 4 哪些不应该混淆... 8 ...

JannaLius的博客 1186

安卓混淆

一.名称解释和介绍 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。 Android SDK 自带了混淆工具Proguard。它位于SDK根目录\tools\proguard下面。如果开启了混淆,Proguard默认情况下会对所有代码,包括第三方包都进行混淆,可是有些代码或者第三方包是不能混淆的,这就需要我们手动...

xxdw1992的博客 1199
上一篇: 彻底解析Android缓存机制——LruCache
下一篇: android 更新安装apk出错
ZyClient
博客等级 码龄10年 29粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值