android混淆加密技术总结

来源:互联网 发布:尤克里里制谱软件 编辑:程序博客网 时间:2024/06/07 05:01
 原理:是通过遍历apk中class文件,将其中的变量名词更换为其他名字,从而达到加密代码的效果,还有删去没有用到的代码部分,达到精简代码大小的效果。
工具:proguard (当然还有很多,例如ANT,apkprotect等)

过程:在android2.3之前,谷歌没有太重视反编译,所以没有对adt提供加密工具,2.3以后就提供比较普及的混淆加密工具,proguard工具,位置在SDK/tools/proguard,

1.  proguard:   当新建一个安卓项目时,默认生成Proguard-project.txt 和 project.proguard这两个文件。而project.proguard的作用是配置混淆加密的开关,Proguard-project.txt文件是配置部分加密的内容。(会有同学说怎么有部分资料说在proguard.cfg里配置加密内容的,其实在adt后期就用Proguard-project.txt代替proguard.cfg,两者作用是一样的)
1.1 打开混淆加密开关: project.proguard
把project.proguard文件里的“#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt”前的“#”符号去了,然后在把整句放到“target=android-17”下面。项目在打包时会读取这个文件,并作出相应的操作。

2. keystore:
keystore是就密钥,通过建密钥,然后给apk加密签名。具体介绍可以百度
2.1 首先打包一个未签名的apk(后面加密需要使用)
工程->右键->AndroidTools->Export Unsigned Application Package->保存
2.2给未签名的apk签名
工程->右键->AndroidTools->Export Signed Application Package...

//新建密钥
Createnew keystore 创建一个新的私钥仓库文件
(Location:是写一个本地地址,后加mykeystore.keystore,项目会自动生成密钥文件)

使用未签名的apk(已经签名的,或eclipse运行所生成的apk会报错)

最后一个加密的apk生成并覆盖原来的apk

总结:虽然混淆加密的步骤不多,不过也花了我好几天查资料,这个内容的知识内容还是很多,建议同学把我搜集的文献看一次,了解更加深入,学习更多。

请尊重作者劳动成果,转发请注明作者地址:http://blog.sina.com.cn/steven2947

参考文献:安卓巴士混淆加密专题
  keystore 介绍
  Android创建私钥并为APK文件签名
原创粉丝点击