研究了一下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。
版权声明:本文博客原创文章,博客,未经同意,不得转载。