android代码签名和混淆打包

研究了一下android的apk的签名和代码的混淆打包,如果不混淆打包,那么apk可以直接被人反编译出来查看源码,混淆打包虽然还是能看懂,但是没有那么好懂了,至少要话费些时间

如果不混淆,反编译后的代码如下:

基本上就是源码。

如果混淆后,反编译后的代码如下:

代码中出现很多的a、b、c之类的变量命名,所以要读懂就具有一定的困难了!

下面先说一下apk的签名:

1.apk签名必须先弄一个key,如何生成key呢?那么就要运用jdk来生成。

首先必须把jdk在系统环境变量中配置好。这个就不多说了,这是使用java就必须配置好的。

2.生成keystore

运行cmd,然后使用cd 进入 C:\Program Files\Java\jdk1.6.0_10\bin>(也就是你C盘的安装jdk的位置)目录下,然后输入keytool -genkey -alias
android.keystore -keyalg RSA -validity 50000 -keystore
android.keystore

参数意义:-validity主要是证书的有效期,写50000天。

红色的android字样可以随便改成自己的命名。

命令执行后会在C:\Program Files\Java\jdk1.6.0_10\bin>目录下生成 android.keystore文件。如下图:

弄到apk后就可以打包了,并且带上自己的签名。

在打包前我们需要加点东西来混淆代码,是我们打包后再反编译后无法正常查看代码。

混淆代码其实灰常简单,在需要打包的项目下找到 project.properties这个文件,打开然后在最下面加上一句话就ok了,如下图:

低版本的adt不是这样写的,高版本就这样写就ok了,如果是低版本的话是写成 proguard.config=proguard.cfg。不过现在一般都用不上了,都是搞版本的,在高版本中这样写就会在打包的最后步骤上报错:报错的大概内容是:

invalid proguard configuration file path c:.../proguard.cfg dose not exist  or is not regular file

加完后就可以签名打包apk了。

在Eclipse界面点击 File-》Export...

然后就可以了!成功到处带签名的混淆代码的apk。

android代码签名和混淆打包,布布扣,bubuko.com

时间: 2024-10-17 09:46:29

android代码签名和混淆打包的相关文章

android代码签名和混乱的包装

研究了一下android的apk困惑签名和代码包装,假设没有混乱包.然后apk人们可以直接查看源代码反编译出来,尽管混乱包或能看懂.但不是那么容易理解,要求在至少一些时间 假设不混淆,反编译后的代码例如以下: 基本上就是源代码. 假设混淆后,反编译后的代码例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/

android应用程序的混淆打包规范

1.在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android-8 proguard.config=proguard.cfg Eclipse会通过此配置在工程目录生成proguard.cfg文件,但是这只能混淆不含第三方包的工程. 而我们的项目中大量使用了第三方包,在用自动生成的混淆文件会导致打包不成功,或者打包成功不能运行的情况,所以必须在基本代码的基础加上其他的属性将第三方库隔离开来不被混淆.

获取android应用签名证书(打包APK用到的那个文件)的SHA1,MD5,SHA256值

转载自:http://www.cnblogs.com/goldeneast/archive/2013/09/09/3309129.html http://developer.baidu.com/map/sdkandev-1.htm#.E7.AE.80.E4.BB.8B3(这个URL页面,最后面,百度地图也提供了2种获取方法) 今天,看到(百度地图android SDK 2.1.3以及之后的版本)的申请KEY中 安全码需要用到:签名证书SHA1的值. 1.使用CMD(命令行窗口),进入签名文件所在

Android代码混淆防反编译解决方案研究

做Android开发的都知道要做混淆去防apk被反编译.破解,通过proguard进行Java代码混淆.但是,Android代码混淆真的能起到实质性的作用吗?看下面分析 1.Android代码混淆 如上图,对Android 代码进行混淆后混淆器将代码中的所有变量.函数.类的名称加密为简短的英文字母代号,在APP被破解后增加破解者对代码的阅读难度. 但是混淆的功效只能运作在APP已经被破解后,而且只是增加破解者的难度时间,对其防止破解的作用意义不是很大. 那么,Android代码混淆不能从根本上防

android Ant批打包学习(二)---生成有签名且混淆的apk包

本篇文章预期目标:                 生成有签名apk文件 详细步骤如下: 1  定义文件 两个文件 1.1  名字:local.properties 内容:SDK的路径(例如:sdk.dir=/Users/lincoln/Android/sdk) 1.2 名字:ant.properties 内容: source.dir=src out.dir=bin proguard.config=proguard.cfg   (添加混淆,必须保证proguard.cfg 文件存在) key.s

android 代码混淆导致问题,快速定位

代码混淆导致问题,快速定位 在代码混淆打包时,屏蔽了用到的第三方库,以及常规的android混淆屏蔽,但生成的apk,运行还是会崩溃.事出必有因,后来分析找到原因是使用greendao自动生成的java-gen下package中的内容没有屏蔽代码混淆,导致存储数据库时,报*a(SourceFile:) NullPointerException * 混淆打包apk,运行崩溃 总结如下: 我们在打包时,debug版本没问题,但混淆后release版本有时会出现异常崩溃, 比如:a(SourceFil

Android代码混淆及项目发布步骤记录

本来整理了一份Android项目混淆与发布的文档,突然想到何不写篇博客,分享一下呢,如是便有了本文. 一.清理代码中的调试信息,如Log.System.out 二.在清单文件中修改版本为当前版本,如果需要更新数据库,则需要在配置类或配置文件中修改程序数据库版本. 三.在清单文件中将项目的debugable设置为false 四.创建签名证书keystore文件 五.在项目中的project.properites文件中添加语句proguard.config=proguard-project.txt来

Gradle for Android(三)多渠道打包、配置签名信息

多渠道打包 国内有太多Android App市场,每次发版几十个渠道包.还好Android Gradle给我们提供了productFlavors,我们可以对生成的APK包进行定制. productFlavors {//多渠道打包        xiaomi {            applicationId 'com.wuxiaolong.gradle4android1'        }        googlepaly {            applicationId 'com.wu

Android混淆打包

在这之前,看了下proguard官网介绍,并搜了下相关资料. ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理.ProGuard的主要作用就是混淆.当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能. 引用ProGuard官方的一段话来介绍