android代码混淆笔记】的更多相关文章

混淆处理的apk被反编译后代码中包名类名等都变成abcd之类.非常难看懂. 使用代码混淆.启用混淆器,对相关文件进行编辑,然后打包签名就能够了: ------------ 在2.3的版本号中,项目中有这个文件 proguard.cfg   (没有的能够手动加入) 加入一句:  proguard.config=proguard.cfg proguard.cfg文件里内容: -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonp…
首先查看一下 “project.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 buil…
原本放在一起Android项目与发布的文件相混淆.我突然想到,为什么不写博客,分享.有这篇文章的情况下,. Android代码混淆及项目公布步骤记录 一.清理代码中的调试信息,如Log.System.out 二.在清单文件里改动版本号为当前版本号,假设须要更新数据库,则须要在配置类或配置文件里改动程序数据库版本号. 三.在清单文件里将项目的debugable设置为false 四.创建签名证书keystore文件 五.在项目中的project.properites文件里加入语句proguard.c…
本篇文章:自己在混淆的时候整理出比较全面的混淆方法,比较实用,自己走过的坑,淌出来的路.请大家不要再走回头路,可能只要我们代码加混淆,一点不对就会导致项目运行崩溃等后果,有许多人发现没有打包运行好好地,打包完成以后而又不不可以了,导致了许多困惑,本片文章来问大家解决困惑,希望对大家有帮助. Android混淆最佳实践 1. 混淆配置 android{ buildTypes { release { buildConfigField "boolean", "LOG_DEBUG&q…
 Android代码混淆及项目发布步骤记录 本来整理了一份Android项目混淆与发布的文档,突然想到何不写篇博客,分享一下呢,如是便有了本文. Android代码混淆及项目发布步骤记录 一.清理代码中的调试信息,如Log.System.out 二.在清单文件中修改版本为当前版本,如果需要更新数据库,则需要在配置类或配置文件中修改程序数据库版本. 三.在清单文件中将项目的debugable设置为false 四.创建签名证书keystore文件 五.在项目中的project.properite…
1. Proguard介绍 Android SDK自带了混淆工具Proguard.它位于SDK根目录toolsproguard下面.ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器.它可以检测并删除未使用的类,字段,方法和属性.它可以优化字节码,并删除未使用的指令.它可以将类.字段和方法使用短无意义的名称进行重命名.最后,预校验的Java6或针对Java MicroEdition的所述处理后的码.如果开启了混淆,Proguard默认情况下会对所有代码,包括第三方包都进行混淆,…
Android Proguard(混淆)   混淆(Proguard)用法 最近项目中遇到一些混淆相关的问题,由于之前对proguard了解不多,所以每次都是面向Stackoverflow的编程.copy别人的答案内心还可以接受,但是copy了之后不懂别人的逻辑是无法忍受的.首先不清楚别人的答案是不是一定符合自己的需求:其次,再遇到同类问题还是得抓瞎.于是下决心看了一下proguard的官方文档.很长,但是很详细,在这里整理一下笔记,分享给大家. 介绍 我们通常说的proguard包括四个功能,…
第一步:代码混淆(注意引入的第三方jar) 在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 新建一个项目的时候,会自动生成project.properties和proguard-project.txt文件,无需自己新建,如果你的项目无法自动生成,那么你就要检查一下你的ADT版本了 如果需要对项目进行全局混码,只需要进行一步操作: 将project.properties的中 “#progua…
为了防止代码被反编译,因此需要加入混淆.混淆也可以通过第三方进行apk混淆,也可以用android中的proguard进行混淆. 混淆步骤: 1.配置混淆文件,名字可以随意,在这里使用proguard-android,格式为txt. -optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -dontskipnonpubliclibraryclasses # 是否混淆第三方jar -dontpreverif…
最近在需要对所开发的项目进行了代码混淆,在android studio中开启代码混淆其实还是挺方便的,不过因为代码混淆产生的问题非常多,特别是对于一些涉及到反射的第三方库经常因为名称的变化导致无法使用. 下面介绍android studio中对android项目进行代码混淆的详细步骤: (1)代码混淆开启 想要开启代码混淆功能,只需要在相应的项目中将 build.gradle 的相应设置开启即可. android{ buildTypes { release { minifyEnabled tru…
什么是代码混淆 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中.由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名.方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成 Java 源代码.为了防止这种现象,我们可以使用 Java 混淆器对 Java 字节码进行混淆. 混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能. 混淆后的代码很难被反编译,即使反编译成功…
Android Studio(2.3.3) 在给代码混淆时,提示: Warning:Exception while processing task java.io.FileNotFoundException: /Users/shengjie/AndroidProject/hengweather/app/build/intermediates/proguard-rules/release/aapt_rules.txt (No such file or directory) 简单说就是找不到"aap…
一.前言 为何需要混淆呢?简单的说,就是将原本正常的项目文件,对其类,方法,字段,重新命名,a,b,c,d,e,f…之类的字母,达到混淆代码的目的,这样反编译出来,结构乱糟糟的,看了也头大. 另外说明一下,本文的混淆总结基于Android Studio的IDE开发环境. 二.官方默认的混淆配置 其实在android Studio中做混淆,基本就是对Proguard-rules.pro文件的操作.混淆的过程也是有规律可循的.先看看官方的proguard-android.txt文件,位于/tools…
3月17日,网易资深安全工程师钟亚平在安卓巴士全球开发者论坛上做了<安卓APP逆向与保护>的演讲.其中就谈到了关于代码混淆的问题.现摘取部分重点介绍如下:   Java代码是非常容易反编译的,作为一种跨平台的.解释型语言,Java 源代码被编译成中间“字节码”存储于class文件中.由于跨平台的需要,这些字节码带有许多的语义信息,很容易被反编译成Java源代码.为了很好地保护Java源代码,开发者往往会对编译好的class文件进行混淆处理. 混淆就是对发布出去的程序进行重新组织和处理,使得处理…
android2.3的SDK开始在eclipse中支持代码混淆功能(理论上java都支持混淆,但关键在于如何编写proguard的混淆脚本,2.3的SDK使用简单的配置就可以实现混淆).使用SDK2.3后,新建的工程下和之前相比,都会多了一个文件“proguard.cfg”.这个文件就是混淆所需的proguard脚本.在工程的"default.properties"中添加这样一句话“proguard.config=proguard.cfg”即可实现混淆(如下图). android4.0…
代码混淆步骤: 1,project.properties中打开代码混淆功能,加入proguard.config=proguard.cfg 2,编辑proguard.cfg文件,项目没有自动生成时可手工新建并放到项目根目录,内容如下 -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simpli…
在编写Android程序之后,我们通常要代码进行混淆编码,这样才能保证市场上我们的应用不会被别人进行反编译,然后破解,所以此时需要在发布正式版本的时候,有一些类事不能混淆的,比如实现了 Serializable 接口的,否则反序列化时会出错,这种情况下,我们可以简单的通过在proguard.cfg(Eclipse)添加配置来解决: -keepnames class * implements java.io.Serializable -keepclassmembers class * implem…
现在有反编译技术,容易得到源码,所以要混淆代码,加大反编译难度. 只需要在 build.grade 的配置文件中配置就可以了. proguardFiles getDefaultProguardFile 就是制定 混淆规则的文件, AndroidStudio默认生成了proguard-rules.pro 文件 Resource Shrinking(资源压缩) android {    buildTypes {        release {            minifyEnabled tr…
混淆器(ProGuard) --- 混淆器通过删除从未用过的代码和使用晦涩名字重命名类.字段和方法,对代码进行压缩,优化和混淆.结果是一个比較小的.apk文件,该文件比較难进行逆向project.因此,当你的应用程序对安全敏感(要求高),比如当你授权应用程序的时候,混淆器是一种重要的保护手段.     混淆器被集成在android 构建系统中,所以你不必手动调用它.同一时候混淆器仅在公布模式下进行构建应用程序的时候才会执行起来,所以在调试模式下构建程序时,你不必处理混淆代码.让混淆器执行起来是可…
为了保护代码被反编译,android引入了混淆代码的概念 1.设置混淆 在工程下找到project.properties文件 在文件中加入proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt这个是系统的 也可以用自己的混淆文件(这样就可以配置一些自己的东西),去sdk.dir}/tools/proguard/ 下复制proguard-android.txt文件到本地工程中 然后设置成…
参考其它资料为项目代码做了一下混淆 项目中使用了 slidingmenu   actionbarsherlock   fastjson  volley   httpclient 等第三方库, 并使用了  webview + js ,  有微信和微博分享功能. # 指定代码的压缩级别 -optimizationpasses 5 -dontusemixedcaseclassnames # 是否混淆第三方jar -dontskipnonpubliclibraryclasses -dontpreveri…
#指定代码的压缩级别 -optimizationpasses #包明不混合大小写 -dontusemixedcaseclassnames #不去忽略非公共的库类 -dontskipnonpubliclibraryclasses #优化 不优化输入的类文件 -dontoptimize #预校验 -dontpreverify #混淆时是否记录日志 -verbose # 混淆时所采用的算法 -optimizations !code/simplification/arithmetic,!field/*,…
我在博客上发表一些我的Android学习心得,希望对大家能有帮助. 这一篇我们讲述一下最新的ADT环境下怎样进行Android混淆 在新版本号的ADT创建项目时.混码的文件不再是proguard.cfg. 而是project.properties和proguard-project.txt. 我们把之前配置都配置好了.proguard已经在包括在sdk中了. 环境配置參考Android学习心得(1) --- MAC下Android环境的搭建 新建一个项目的时候,会自己主动生成project.pro…
折腾了好久.....郁闷 -_- 1.首先,project.properties里的配置文件变了,之前的项目一直都是在project.properties这个文件中添加一行proguard.config=proguard.cfg 然后proguard.cfg是自动生成的,不想被混淆的文件则从proguard.cfg中修改 2.应该是adt的以及build sdk的版本问题. 混淆代码变了,但是在project.properties文件中明显看到有一行提示语如下 # To enable ProGu…
混淆的时候,还要添加Android.jar,不然,你的程序一篇空白.我就吃了亏. 还有,activity是不能混淆的,因为AndroidMeaxinfast.xml里面会找他.…
在${user.home}/project.properties文件中设置proguard.config属性 # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.…
为什么要代码混淆? Android的安装文件是apk格式.APK是AndroidPackage的缩写.是由android sdk编译的工程打包生成的安装程序文件. Apk其实是zip文件,但是后缀名被改成了.apk,通过解压就可以看到其中的文件. Classes.dex和AndroidManifest.xml都可以直接看见了. Dex文件是DalvikVM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码. 先看看 AndroidM…
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Android Studio编码 Android Studio(四):Android Studio集成Genymotion Android Studio(五):修改Android Studio项目包名 Android Studio(六):Android Studio添加注释模板 Android Studio…
由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解.下面将自己的理解和认识简要的做个笔记,有异议或者不解的,可以直接留言. 什么是ProGuard工具? ProGuard是android提供的一个免费的工具,它能够移除工程中一些没用的代码,或者使用语义上隐晦的名称来重命名代码中的类.字段和函数等,达到压缩.优化和混淆代码的功能.具体来说,使用ProGuard工具…
android应用打包代码混淆:   1.将project.propertier文件中的proguard.config=proguard-android.txt打开  拷贝指定的文件到应用中 2.更改proguard-android.txt文件         -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizatio…