android代码加密

自从接触了android开发之后,感觉代码都容易给一些工具反编译,比如我自己常用的dex2jar+jdgui,还有其它一些等等,所以下面就介绍下自己在实际应用的解决方案吧。

1.针对要一些 要加密的代码,本人抽离出接口出来,比如,一个类A会实现类的接口IA,然而在程序中就会看到接口定义,而不会看到具体的实现类的代码,因为具体实现类的代码是通过动态加载的。

2.加密具体实现类,这一步主要是加密实现类,过程是这样的,先导出实现类的jar包,然后通过dx工具转换格式,然后通过加密算法加密转换后的jar。

3.通过jni解密和加载类,这一步主要是在C/C++解密程序中的需要加载的jar,然后通过 通过dexclassloader去加载,当然这一步都是在jni层实现的。

4.这样整个jar包都是加载进去android dalvikvm 去了,所以都可以用反射去调用相应的类,当然性能上可读有影响,不过只是少量代码而已,整个代码还是需要用混淆的。

 

欢迎拍砖。。 

posted @ 2011-12-31 09:46  桑叶舟  阅读(9198)  评论(1编辑  收藏  举报