- 浏览: 2196964 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
由于各种反编译工具的泛滥,作为Android程序员在2.3版本以前只能通过手动添加proguard来实现代码混淆
proguard这个工具是一个java代码混淆的工具
在2.3版本的sdk中 我们可以看到在android-sdk-windows/tools/下面多了一个proguard文件夹
google已经把proguard技术放在了android sdk里面 可以通过正常的编译方式也能实现代码混淆了
可以看见新建一个工程里面有default.properties和proguard.cfg
默认的default.properties代码如下
我们可以看到proguard.cfg已经帮我们写好了优化代码脚本
从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService
并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考<proguard_path>/examples中的例子及注释。)
接下来 按照google帮助文档里说的
所以我们修改default.properties file
加上一句
proguard.config=proguard.cfg
如下
然后正常的编译签名即可
然后用Android Tools生成一个发布的apk即可
然后用反编译工具查看dex文件
最后导出反编译之后的混淆代码如下图
是不是很轻松加愉快!希望各位程序员都能保护好自己的Android代码!
proguard这个工具是一个java代码混淆的工具
在2.3版本的sdk中 我们可以看到在android-sdk-windows/tools/下面多了一个proguard文件夹
google已经把proguard技术放在了android sdk里面 可以通过正常的编译方式也能实现代码混淆了
可以看见新建一个工程里面有default.properties和proguard.cfg
默认的default.properties代码如下
# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system use, # "build.properties", and override values to adapt the script to your # project structure. # Project target. target=android-9
我们可以看到proguard.cfg已经帮我们写好了优化代码脚本
-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 com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; }
从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService
并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考<proguard_path>/examples中的例子及注释。)
接下来 按照google帮助文档里说的
引用
To enable ProGuard so that it runs as part of an Ant or Eclipse build, set the proguard.config property in the <project_root>/default.properties file. The path can be an absolute path or a path relative to the project's root.
所以我们修改default.properties file
加上一句
proguard.config=proguard.cfg
如下
# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system use, # "build.properties", and override values to adapt the script to your # project structure. # Project target. target=android-9 proguard.config=proguard.cfg
然后正常的编译签名即可
然后用Android Tools生成一个发布的apk即可
然后用反编译工具查看dex文件
最后导出反编译之后的混淆代码如下图
是不是很轻松加愉快!希望各位程序员都能保护好自己的Android代码!
发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 627本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1100颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 993从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1168Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 1004Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 839前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 929监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 800在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 949最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1327##MediaQuery MediaQuery.of(con ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 1115当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 778setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1507问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 767底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1782点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1370import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2314TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1549一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 865Flutter最近很火,我抽出了一点时间对Flutter进行了 ... -
关于android O 上 NotificationChannel 的一些注意事项
2019-07-04 11:47 932最近在适配android O,遇到个问题,应用中原本有设置界面 ...
相关推荐
Android 2_3 代码混淆proguard技术介绍 - Zy的技术心
新写的proguard代码混淆的文档 大家可以看看
### Android 4.0 及以上版本 ProGuard 代码混淆详解 #### 一、ProGuard 简介 ProGuard 是一款广泛应用于 Android 开发中的代码混淆工具,它能够通过删除未使用的类、字段、方法等,从而缩小 APK 的体积,并提高...
Java代码混淆是保护软件知识产权的重要手段,特别是在开源或者发布商业应用时,为了防止恶意用户反编译源码,理解并篡改程序逻辑,开发者通常会采用代码混淆技术。ProGuard是一款广泛使用的Java代码混淆工具,它能...
- 对于Android应用,ProGuard是默认的代码混淆工具,防止恶意用户分析和篡改代码。 - 对于服务器端的Java应用,混淆可以增强代码的保密性,减少知识产权泄露的风险。 - 对于开源项目,混淆可以保护作者的劳动成果...
Java代码混淆是保护Java应用程序源代码安全的一种技术,主要目的是为了增加反编译的难度,降低代码被恶意篡改或分析的可能性。ProGuard是一款非常流行的开源混淆工具,它支持Java字节码处理,包括优化、压缩、混淆和...
Java代码混淆工具ProGuard是Java开发者在发布应用时常常使用的一种工具,它的主要目的是保护代码知识产权,防止未经授权的反编译和抄袭。在本压缩包文件"proguard-7.0.0.zip"中,包含了ProGuard的最新版本7.0.0,这...
为了对抗这种威胁,开发者通常会采用代码混淆技术,其中ProGuard是Android官方推荐的混淆工具。本教程将深入探讨如何使用ProGuard来混淆Android项目代码,以防止反编译。 一、ProGuard介绍 ProGuard是一款免费的...
### Android Java代码混淆工具:ProGuard的深度解析与实践 #### 概述 在软件开发领域,代码混淆是一项重要的安全措施,特别是在移动应用开发中,它能够保护源代码不被轻易逆向工程,从而增强应用的安全性。在...
ProGuard是Android和Java平台上的一个强大的开源工具,它能实现代码混淆、优化、压缩以及预校验等功能。本文将深入探讨ProGuard的工作原理、配置与应用。 ### 1. ProGuard概述 ProGuard是一款免费的Java字节码混淆...
本文将深入探讨Android代码混淆的前因后果、原理以及如何实施。 首先,我们来理解什么是代码混淆。代码混淆是将源代码转换成一种难以理解和阅读的形式,通常通过重命名变量、方法和类名,以及压缩和优化代码结构来...
从Android Gradle插件3.4.0版本开始,R8成为默认的代码混淆工具,它是Google推出的下一代代码混淆工具,比Proguard更快更强大,同时兼容Proguard的配置文件。 6. **混淆与 DexGuard:** DexGuard是Eclipse ADT...
**Android代码混淆与Proguard详解** 在Android应用开发中,为了保护代码安全、减小APK体积以及提高运行效率,开发者通常会使用代码混淆工具,其中最常用的便是Proguard。Proguard是一个强大的Java字节码混淆、优化...
本篇文章将深入探讨Android代码混淆配置的细节,帮助开发者理解如何有效地使用这一技术。 混淆是通过重命名类、方法和变量,使得原始代码变得难以理解的过程。在Android中,我们通常使用ProGuard工具进行代码混淆,...
下面将介绍三种常见的 Android 代码混淆方法。 一、使用 jocky 工具进行混淆 jocky 是一个编译级别的混淆工具,是在把.java 文件编译为.class 文件的过程中执行混淆,然后再把混淆后的.class 文件导出为 jar。...
通过对上述内容的学习,我们可以了解到Android代码混淆是一项重要的技术手段,不仅能够保护代码安全,还能有效减小程序体积。开发者应该根据实际需求合理配置混淆规则,并注意混淆可能带来的负面影响。希望本文能...
代码混淆工具ProGuard是Java平台上的一个强大工具,主要用于优化、缩小和混淆Java字节码。在Android开发中,它通常被用来保护应用程序的源代码,防止未经授权的反编译和逆向工程。ProGuard 7.2.2是该工具的一个版本...
在Java和Android开发中,代码混淆是一个至关重要的环节,它能够保护应用程序的源代码,防止未经授权的逆向工程。ProGuard是一款功能强大的开源混淆工具,由Eric Lafortune开发,它不仅提供代码混淆功能,还包含了...
"Android代码混淆及签名" Android 代码混淆是指对 Android 应用程序的源代码进行混淆处理,以防止别人反编译和盗取源代码。代码混淆可以使得反编译变得困难,但是不能完全阻止反编译。 Android 代码混淆可以通过...
Java代码混淆工具ProGuard是Java开发中用于保护和优化应用程序的重要工具。它的主要功能是对Java字节码进行混淆、优化、缩小和预校验,从而提高应用的安全性和性能。ProGuard 4.5.1是该工具的一个版本,发布于2010年...