转自:http://www.cnblogs.com/dream-sky/archive/2012/11/15/2771648.html 在project.properties里加上   proguard.config=proguard.cfg proguard.cfg 配置如下: -optimizationpasses 5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-optimi…
浅谈Android保护技术__代码混淆   代码混淆 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为.将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字.比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途.对于支持反射的语言,代码混淆有可能与反射发生冲突.代码混淆并不能真正阻止反向工程,只能增大其难度.因此,对于对安全性要求很高的场合,仅仅使用代…
Android Studio环境下代码混淆+签名打包 作者 Mr_冯先生 关注 2016.08.21 01:10 字数 1040 阅读 734评论 5喜欢 34 注:本文使用的Android Studio版本是 2.1.2. 做公司项目,需要对项目进行代码混淆+签名打包,然后就各种搜集查看资料,算是小有成果吧.周末无事就想着总结一下以后再用可做参考.如有不对的地方烦请各位大神指导-- 一.代码混淆 android studio进行代码混淆需要在两个地方做配置:1.添加自己的混淆规则到对应Modu…
我想修改build.gradle配置 可是这个文件明确写了// GENERATED FILE! DO NOT EDIT!可是还是试了试: if (cdvReleaseSigningPropertiesFile) { signingConfigs { release { // These must be set or Gradle will complain (even if they are overridden). keyAlias = "" keyPassword = "…
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…
什么是代码混淆 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为.代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码.执行代码混淆的程序被称作代码混淆器.目前已经存在许多种功能各异的代码混淆器.   将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字.比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读 的人无法根据名字猜测其用途.重写代码中的部分逻辑,将其变成功能…
什么是代码混淆 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中.由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名.方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成 Java 源代码.为了防止这种现象,我们可以使用 Java 混淆器对 Java 字节码进行混淆. 混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功…
最近呢说要上线,就去找了下上线的方法...之前做过代码混淆,用的是progarud.cfg,但是呢自己反编译了之后还是无效,然后就丢着先不管了,因为实在不知道什么情况.今天来上线的时候结果总是报错,总是报proguard returned with error code 1.See console错误,到网上查了下情况,分为三种:情况1:Proguard returned with error code 1. See consoleError: C:/Documents (系统找不到指定文件)这…
项 目在代码混淆过程中如果引用了第三方 Jar 包,需要在混淆的脚本文件中加入第三方 Jar 包的声明.部分第三方 Jar 包虽然在混淆脚本中进行了声明,但是在混淆过程中经常会发现内部类或者引用文件找不到的现象,这种现象在 android-support-v4.jar 中更为常见,经过自己的不断调试得到了可以通过 android-support-v4.jar 代码混淆的配置信息,只需要将配置信息加入到 proguard.cfg 文件中即可.配置信息如下: -libraryjars ./libs/…
签名: 应用程序升级:应用程序模块化:代码或者数据共享 混淆:混淆器将代码中的所有变量.函数.类的名称变为简短的英文字母代号,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义.…
最近在需要对所开发的项目进行了代码混淆,在android studio中开启代码混淆其实还是挺方便的,不过因为代码混淆产生的问题非常多,特别是对于一些涉及到反射的第三方库经常因为名称的变化导致无法使用. 下面介绍android studio中对android项目进行代码混淆的详细步骤: (1)代码混淆开启 想要开启代码混淆功能,只需要在相应的项目中将 build.gradle 的相应设置开启即可. android{ buildTypes { release { minifyEnabled tru…
新建一个项目,Android Studio默认关闭代码混淆开关,在build.gradle文件中,如下图所示的minifyEnabled 开关,因此如果需要混淆代码,需将false改为true,然后在文件proguard-rules.pro添加具体混淆规则. 自己的build.gradle文件的buildTypes部分 buildTypes { debug { buildConfigField "boolean", "LOG_DEBUG", "true&q…
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 为什么需要代码混淆呢?原因很简单,你的apk很容易被反编译出来,你写的代码都会被看到,因此我们需要在编译过程中对代码进行一定程度的混淆,使得别人不能反编译不出你的代码. 新建一个项目,Android Studio默认关闭代码混淆开关,在build.gradle文件中,minifyEnabled 开关默认为false,因此如果需要混淆代码,需将false改为true,然后在文件proguard-rules.pro添加具体混淆规则.…
Android的代码混淆是开发者需要了解的相关知识,它能够防止android应用程序的反编译.因为android程序多数是java语言开发的,而java代码很容易被反编译,所以为了使android应用程序代码应用一定的安全性,进行android代码的混淆是非常有必要的. 在了解代码混淆之前,先了解android的反编译.进行android的反编译需要借助两个工具dex2jar和jd-gui. 1.代码的反编译 在两个工具准备好之后,将apk文件的直接解压.在解压后的文件中,将classes.de…
欢迎访问网易云社区,了解更多网易技术产品运营经验. 在大公司怎么做android代码混淆的?发现他们的软件用apktool反编译居然没看到classes.dex文件和当前安卓APP加固到底该如何做到防篡改?这两个问题中有过相应回答,现搬运要点过来. 网易资深安全工程师钟亚平在今年的安卓巴士全球开发者论坛上做了<安卓APP逆向与保护>的演讲(完整演讲内容请见这里:一文了解安卓APP逆向分析与保护机制),其中就谈到了关于代码混淆的问题. Java代码是非常容易反编译的,为了很好地保护Java源代码…
一.前言 最近想爆破一个app,没有加壳,简单的使用Jadx打开查看源码,结果把我逗乐了,代码中既然都是中文,而且是一些比较奇葩的中文字句,如图所示: 瞬间感觉懵逼了,这app真会玩,我们知道因为Java语言是支持双字符的,所以可以将包名,类名,变量名,方法名定义成中文,或者其他国家的语言都可以的.所以本身这种做法是不会运行报错的,比如下面我们新建一个Java工程看一下效果: 运行是没有任何问题的.看到这里的时候觉得很好奇,所以就先没去看他的源码了,而是想着怎么实现这种混淆的功能.下面就来介绍一…
整了一天,感觉坑挺多. 1. 选择如图中的选项Android Studio进行签名打包: 2. 填写APP对应的信息:(最好用个文本记下来放在项目中同步给Team) - Key store path: 如果是新APP则创建,如果已经有了选择就行: - Key store password: ******* - Key alias(别名): 自定义 - 如果是新创建的文件需要选择时间,整个25年足够用了,公司信息填上就OK - 下一步后选择release就开始打包 3. Android Studi…
之前给公司的App添加代码混淆,在代码的混淆过程也遇到了不少的问题,再加上最近学习了一下Android Studio插件的开发,所以就开发一个代码混淆插件方便项目的代码混淆. 截图 第三方库列表清单 目前插件的后台已集成了如下图的第三方开源库的代码混淆以及基本的代码混淆,还在努力地添加中,也欢迎大家通过new issue提交列表中没有的第三方开源库混淆代码.(你认为微不足道的事情,也许可以帮到别人的大忙~) 使用 下载AndroidProGuard插件并安装重启.download 在菜单栏的Ed…
转载:http://www.jianshu.com/p/7436a1a32891 简介 作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读.混淆概念虽然容易,但很多初学者也只是网上搜一些成型的混淆规则粘贴进自己项目,并没有对混淆有个深入的理解.本篇文章的目的就是让一个初学者在看完后,能在不进行任何帮助的情况下,独立写出适合自己代码的混淆规则. 说在前面 这里我们直接用Android Studio来说明如何进行混淆,…
第一步:代码混淆(注意引入的第三方jar) 在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 新建一个项目的时候,会自动生成project.properties和proguard-project.txt文件,无需自己新建,如果你的项目无法自动生成,那么你就要检查一下你的ADT版本了 如果需要对项目进行全局混码,只需要进行一步操作: 将project.properties的中 “#progua…
首先查看一下 “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…
首先在:project.properties 文件下,启动代码混淆 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 将这行注释取消. 修改proguard-project.txt 代码混淆文件. //1)注意忽视警告 -ignorewarnings -dontwarn //2)注意的是,使用到反射的类,需要keep -keepattributes Signature-keepa…
为了防止代码被反编译,因此需要加入混淆.混淆也可以通过第三方进行apk混淆,也可以用android中的proguard进行混淆. 混淆步骤: 1.配置混淆文件,名字可以随意,在这里使用proguard-android,格式为txt. -optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -dontskipnonpubliclibraryclasses # 是否混淆第三方jar -dontpreverif…
ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理.ProGuard的主要作用就是混淆.当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能. 引用ProGuard官方的一段话来介绍就是: ProGuard is a free Java cla…
代码打包签名 Android Studio为大家集成了代码打包混淆的功能,具体操作流程如下组图所示: 1.点击Android Studio上方工具栏的  Build -> Generate Signed APK  选项,弹出如下右图所示的对话框:                2.这里需要创建一个Key Store,如果你已经有了一个Key Store,那么Android Studio会让你输入密码直接进行签名打包:如果还没有key Store,那么就点击  Create New  按钮去创建一…
http://coolshell.info/blog/2015/03/Android-studio-prefrence.html 什么是Gradle Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的领域特定(DSL)语言.Android Studio中新建项目成功后自动下载Gradle. Gradle有几个基本组件: 1.整个项目的gradle配置文件build.gradle // Top-level…
=======本文章属于转载==========原文章地址:http://my.oschina.net/aibenben/blog/370985 这篇文章等是跟大家分享一在Android studio 进行代码混淆配置.之前大家在eclipse上也弄过代码混淆配置,其实一样,大家可以把之前在eclipse上的配置文件直接拿过来用.不管是.cfg文件还是proguard-rules.pro文件都一样.先给大家贴一个混淆模板吧.注释很清楚.是我目前一个项目用的proguard.cfg配置文件 #指定…
什么是代码混淆 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中.由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名.方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成 Java 源代码.为了防止这种现象,我们可以使用 Java 混淆器对 Java 字节码进行混淆. 混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能. 混淆后的代码很难被反编译,即使反编译成功…
原本放在一起Android项目与发布的文件相混淆.我突然想到,为什么不写博客,分享.有这篇文章的情况下,. Android代码混淆及项目公布步骤记录 一.清理代码中的调试信息,如Log.System.out 二.在清单文件里改动版本号为当前版本号,假设须要更新数据库,则须要在配置类或配置文件里改动程序数据库版本号. 三.在清单文件里将项目的debugable设置为false 四.创建签名证书keystore文件 五.在项目中的project.properites文件里加入语句proguard.c…
接到新任务.现有项目的代码混淆.在此之前混淆了一些理解,但还不够具体和全面,我知道有些东西混起来相当棘手. 但幸运的是,现在这个项目是不是太复杂(对于这有些混乱).提前完成--这是总结. 第一部分 介绍下操作流程(eclipse): 1.打开混淆器:找到项目根文件夹下的project.properties文件,将"#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt"这行…