android代码签名和混乱的包装

研究了一下android的apk困惑签名和代码包装,假设没有混乱包。然后apk人们可以直接查看源代码反编译出来,尽管混乱包或能看懂。但不是那么容易理解,要求在至少一些时间

假设不混淆,反编译后的代码例如以下:

基本上就是源代码。

假设混淆后,反编译后的代码例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

代码中出现非常多的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文件。例如以下图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

弄到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...

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

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

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-11-25 08:41:34

android代码签名和混乱的包装的相关文章

android代码签名和混淆打包

研究了一下android的apk的签名和代码的混淆打包,如果不混淆打包,那么apk可以直接被人反编译出来查看源码,混淆打包虽然还是能看懂,但是没有那么好懂了,至少要话费些时间 如果不混淆,反编译后的代码如下: 基本上就是源码. 如果混淆后,反编译后的代码如下: 代码中出现很多的a.b.c之类的变量命名,所以要读懂就具有一定的困难了! 下面先说一下apk的签名: 1.apk签名必须先弄一个key,如何生成key呢?那么就要运用jdk来生成. 首先必须把jdk在系统环境变量中配置好.这个就不多说了,

Android学习心得(14) --- Android代码混淆(2)

我在博客上发表一些我的Android学习心得,希望对大家能有帮助. 这一篇我们讲述一下Android混淆如何自定义proguard参数来实现 环境配置参考 Android学习心得(1) --- MAC下Android环境的搭建 签名参考Android学习心得(12) --- APK签名keystore 代码混淆Android学习心得(13) --- Android代码混淆(1) dex2jar&jd-guiAndroid学习心得(8) --- MAC下dex2jar和jd-gui使用 1.介绍p

使用proguard混淆android代码

当前是有些工具比如apktool,dextojar等是可以对我们android安装包进行反编译,获得源码的.为了减少被别人破解,导致源码泄露,程序被别人盗取代码,等等.我们需要对代码进行混淆,android的sdk中为我们提供了ProGrard这个工具,可以对代码进行混淆(一般是用无意义的名字来重命名),以及去除没有使用到的代码,对程序进行优化和压缩,这样可以增加你想的难度.最近我做的项目,是我去配置的混淆配置,因此研究了一下,这里分享一下. 如何启用ProGuard ant项目和eclipse

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

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

PhoneGap/Cordova Android应用签名发布系列问题处理收集

PhoneGap/Cordova Android应用签名发布注意事项 Android APK 签名比对 android获取签名,兼容5.0 Android APK 签名比对,防止软件被破解使用 用apktool和dex2jar反编译 Android proguard代码混淆 获取已安装或未安装的apk签名

Android基础入门教程——1.9 Android程序签名打包

Android基础入门教程--1.9 Android程序签名打包 标签(空格分隔): Android基础入门教程 本节引言: 第一章的倒数第二节,本节给大家介绍的是如何将我们的程序打包成Apk文件,并且为我们的Apk签名! 上一节中已经说了,我们后续的教程使用的IDE是Android Studio,所以本节讲解的也是AS(后面都这样 简称吧)下对项目进行打包签名! 1.什么是签名,有什么用: Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上的

Android代码混淆及项目发布方法记录

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

Android代码混淆和项目宣布步骤记录器

原本放在一起Android项目与发布的文件相混淆.我突然想到,为什么不写博客,分享.有这篇文章的情况下,. Android代码混淆及项目公布步骤记录 一.清理代码中的调试信息,如Log.System.out 二.在清单文件里改动版本号为当前版本号,假设须要更新数据库,则须要在配置类或配置文件里改动程序数据库版本号. 三.在清单文件里将项目的debugable设置为false 四.创建签名证书keystore文件 五.在项目中的project.properites文件里加入语句proguard.c

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

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