Android 混淆proguard的实现(图文)】的更多相关文章

1.  在Eclipse中的project编译执行后,在文件夹bin以下有生成一些文件,当中classes.dex是未经过混淆生成的.而我们要混淆的话,就要又一次生成一个混淆过的classes.dex.本文主要讲如何手动生成混淆proguard. 2.  生成一个混淆过的classes.dex:要先对文件夹bin以下的classes文件夹(在Eclipse中看不到,系统文件管理中可查看)的class文件打包成jar, 再对jar进行proguard混淆,混淆后再用android dx 命令生成混…
ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理.ProGuard的主要作用就是混淆.当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能. 引用ProGuard官方的一段话来介绍就是: ProGuard is a free Java cla…
本文转载别人博客,转载请注明出处:http://www.blogjava.net/zh-weir/archive/2011/07/12/354190.html ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理.ProGuard的主要作用就是混淆.当然它还能对字节码…
写给Android开发者的混淆使用手册 综述 毫无疑问,混淆是打包过程中最重要的流程之一,在没有特殊原因的情况下,所有 app 都应该开启混淆. 首先,这里说的的混淆其实是包括了代码压缩.代码混淆以及资源压缩等的优化过程.依靠 ProGuard,混淆流程将主项目以及依赖库中未被使用的类.类成员.方法.属性移除,这有助于规避64K方法数的瓶颈:同时,将类.类成员.方法重命名为无意义的简短名称,增加了逆向工程的难度.而依靠 Gradle 的 Android 插件,我们将移除未被使用的资源,可以有效减…
​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4022844.html [2015-04-03-更新]  最新Android Studio图文教程已更新,请移步至: 第一次使用Android Studio时你应该知道的一切配置 第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于自己的工程并安装Genymotion模…
Android打包失败出现Proguard returned with error code 1. See console的错误 这个问题是由于代码混淆引起的,找不到引用包. 只需在你的proguard-project.txt中添加如下两行即可. -libraryjars libs/okio-1.6.0.jar(你可以根据你的项目提示,添加需要的jar.) 备注: 如果添加上面两行后依然打包不成功,那么你需要修改位于 android-sdk-windows\tools\proguard\bin的…
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 博客园:追风917 # Android混淆 Android混淆是Android开发者经常使用的一种用于代码防止被反编译的常见手法,一般在Release模式生效,主要有三个作用: 1 压缩.优化.删除代码: 2 一定程度上提高反编译后被读懂的难度: 3 通过删除代码功能实现的特殊作用. 比如在可以运用混淆技术在发布版本不打印 Log.d等调试信息,防止敏感信息泄露,而在dubug模式下可以打印所有调试信息方便调试. #…
=========================================================================虽然反编译很简单,也没下面说的那么复杂,不过还是转了过来. Android混淆.反编译以及反破解的简单回顾          搜索下,发现文章相关文档好多好多.就简单点,不赘述了==   一.Android混淆 1)概述          新建Android工程,根目录下会有个proguard.cfg.简单的混淆,你只需要在project.proper…
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/WmJyiA3fDNriw5qXuoA9MA 作者:lilycai 本文主要讲述了代码混淆和资源混淆的原理,Studio默认的混淆方案,混淆的参数,以及如何对Apk进行代码混淆(自定义混淆文件)和资源混淆(结合微信混淆和美团混淆两种方案),避免Apk被逆向. 为什么要混淆 我们的apk在打包发布之前,都要进行混淆处理来避免源代码和资源文件被小白用户通过…
Android 混淆代码问题总结 Android 混淆代码: 最快的方式: 1. 首先更新Android的SDK至最新版本,重新建立1个工程,把源码和资源及其他文件拷到新的工程里面. 2. 工程目录底下有个文件叫proguard.cfg,修改default.properties内容.在其中增加proguard.config=proguard.cfg这行. 3. Project->clean 一下该工程,重新编译.右键点击该工程,Android Tools -> Export Signed Ap…
Android 混淆 Gradle的简介: http://www.flysnow.org/2015/03/30/manage-your-android-project-with-gradle.html多渠道打包的介绍: http://blog.csdn.net/tu_bingbing/article/details/42362619http://coolshell.info/blog/2015/03/android-studio-prefrence.html 目前Android studio 1…
为啥子要混淆 简单来说,Android 进行ProGuard,可以起到压缩,混淆,预检,优化的功能,虽然不能说更安全但还是一个不容忽视的环节. 开始混淆第一步 首先在build.gradle 中将混淆的开关打开,即 minifyEnabled 置为 true 然后就要去proguard-rules.pro写入我们的混淆的规则(如文件其名),防止重要的类被混淆移除了. 先特别介绍的是与保持相关元素不参与混淆的规则相关的几种命令: 命令 作用 -keep 防止类和成员被移除或者被重命名 -keepn…
最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotations InnerClass annotations are missing corresponding EnclosingMember annotations. Such InnerClass an…
1.Gson混淆 ## ---------------------------------- ##   ########## Gson混淆    ########## ## ---------------------------------- -keepattributes Signature -keep class sun.misc.Unsafe { *; } -keep class com.google.gson.examples.android.model.** { *; } 2.gree…
-injars  androidtest.jar[jar包所在地址] -outjars  out[输出地址] -libraryjars    'D:\android-sdk-windows\platforms\android-9\android.jar' [引用的库的jar,用于解析injars所指定的jar类] -optimizationpasses 5-dontusemixedcaseclassnames [混淆时不会产生形形色色的类名 ]-dontskipnonpubliclibraryc…
ProGuard是一个压缩.优化和混淆Java字节码文件的免费的工具,它可以删除无用的类.字段.方法和属性.可以删除没用的注释,最大限度地优化字节码文件.它还可以使用简短的无意义的名称来重命名已经存在的类.字段.方法和属性.这样做的结果是更小的jar.apk……,并且更难被反编译. Android的编译环境中已默认集成了Proguard,但只有在release模式下编译才会运行.此状态下,它会在用到ant release或是Eclipse的导出向导时,自动检查proguard.config属性是…
http://charles-tanchao.diandian.com/post/2012-05-24/20118715 由于前面开发数据操作类,所以利用反射,封装了一个BaseDao,本来在平常的时候,调试都没有出问题,可是直到用了 Proguard混淆以后,就出现各种错误,最开始是类型转换错误,到了后面就变成空指针异常,并且已经发布出去,手机上不调试,所以就只能把报错信息保存到文件中,每次查看. 混淆以后,出现错误,每次看报错信息,连方法都难找到.虽说有属性对应的txt,但是有些混淆的方法名…
-optimizationpasses 5  [代码压缩级别]-dontusemixedcaseclassnames [混淆时不会产生形形色色的类名 ]-dontskipnonpubliclibraryclasses [指定不去忽略非公共的库类. ]-dontpreverify [不预校验] -verbose [混淆时是否记录日志]-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* [算法] 已发布应用…
Android代码混淆是必须的,java层代码如果不做混淆等于把源代码送人了.那如何做混淆呢? 之前一般都是提到采用proguard.cfg,但使用新版本ADT后没有这个文件了,取而代之的是proguard-project.txt文件.那该如何使用呢? 在项目根目录下有个project.properties,里面有如下内容: # To enable ProGuard to shrink and obfuscate your code, uncomment this (available prop…
一.理论知识   ProGuard是一款免费的Java类文件压缩器.优化器和混淆器.它能发现并删除无用类.字段(field).方法和属性值(attribute).它也能优化字节码并删除无用的指令.最后,它使用简单无意义的名字来重命名你的类名.字段名和方法名.经过以上操作的jar文件会变得更小,并很难进行逆向工程. 二.基本使用   在Android应用程序也可以使用ProGuard来进行混洗打包,大大的优化Apk包的大小.但是注意ProGuard对文件路径的名名很有讲究,不支持括号,也不支持空格…
-include {filename} 从给定的文件中读取配置参数 -basedirectory {directoryname} 指定基础目录为以后相对的档案名称 -injars {class_path} 指定要处理的应用程序jar,war,ear和目录 -outjars {class_path} 指定处理完后要输出的jar,war,ear和目录的名称 -libraryjars {classpath} 指定要处理的应用程序jar,war,ear和目录所需要的程序库文件 -dontskipnonp…
参考文档:http://blog.csdn.net/xueyepiaoling/article/details/8202359转载自:http://glblong.blog.51cto.com/3058613/1263969 在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 如果需要对项目进行全局混码,只需要进行一步操作: 将project.properties的中 “#  proguard…
Android 中代码混淆一般用的是ProGuard.它除了混淆代码之后还有其它许多实用的功能.这里主要记录混淆相关的实现. 1.ProGuard的作用 删除无用代码,压缩和优化Class文件,缩小APK的体积: 提高逆向门槛,保护代码安全: 2.ProGuard的使用 Eclipse 在Android2.3之前,混淆代码需手动添加proguard来实现代码混淆:2.3之后,Google将其加入到SDK中(SDK\tools\groguard).当创建工程时,在工程的根目录下会自动生成proje…
最近做了2个项目,全部要混淆,刚接触,自己在网上找了还多资料,感觉各有千秋,自己总结了一下,第一次发帖,不喜勿喷.求各种指导!!! android应用程序的混淆打包规范 1.在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android-8 proguard.config=proguard.cfg Eclipse会通过此配置在工程目录生成proguard.cfg文件,但是这只能混淆不含第三方包的工程.…
http://blog.csdn.net/lovexjyong/article/details/24652085 为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这个对混淆代码很重要,如果你不小心删掉了,没关系,从其他地方拷贝一个过来 2. 最重要的就是在proguard-project.txt添加混淆的申明了: a. 把所有你的jar包都申明进来…
网上搜了一大堆,在此不一一赘诉. 直接讲解了 如上图这么配置,其实就是加上一句话而已.告诉打包工具混淆打包的代码放在./proguard-project.txt这里 proguard.config=./proguard-project.txt 进入proguard-project.txt文件 有人说放开上面的注释就可以了.可惜.我没弄懂,低版本好像可以. # :后面跟的是注释,可以不用看. -dontwarn android.app.** -keep class android.app.**{*…
#打开project.properties文件中的proguard.config. -optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -dontskipnonpubliclibraryclasses # 是否混淆第三方jar -dontpreverify # 混淆时是否做预校验 -verbose # 混淆时是否记录日志 -optimizations !code/simplification/arit…
参考文档:http://blog.csdn.net/xueyepiaoling/article/details/8202359 http://glblong.blog.51cto.com/3058613/1263969 在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 如果需要对项目进行全局混码,只需要进行一步操作: 将project.properties的中 “#  proguard.co…
在project.properties里加上   proguard.config=proguard.cfg proguard.cfg 配置如下: -optimizationpasses 5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* #忽…
proguard 原理Java代码编译成二进制class 文件,这个class 文件也可以反编译成源代码 ,除了注释外,原来的code 基本都可以看到.为了防止重要code 被泄露,我们往往需要混淆(Obfuscation code , 也就是把方法,字段,包和类这些java 元素的名称改成无意义的名称,这样代码结构没有变化,还可以运行,但是想弄懂代码的架构却很难. proguard 就是这样的混淆工具,它可以分析一组class 的结构,根据用户的配置,然后把这些class 文件的可以混淆jav…