Android平台的防破解及逆向工程心得

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gobitan/article/details/52390313
Android平台的防破解及逆向工程心得
作者:雨水,日期:2016-08-31  CSDN博客: http://blog.csdn.net/gobitan/
摘要:Android防破解与逆向工程是一个东西的两个方面,开发者想尽可能的隐藏代码细节,而逆向工程想尽可能挖掘apk的内部。本文介绍了最近接触到的一些防破解以及破解方法。

一种通过runtime绑定的防破解方法
第一级别的防破解方法:这是最普通的防破解办法。就是对Java代码做混淆处理,目前经过混淆的代码基本上还是能被还原80-90%。最常见的工具包括apktool,dex2jar以及Onekey-Decompile-Apk等等。尤其是一键反编译这个工具很好用。
第二级别的防破解方法:把重要的,想隐藏的代码用C来写,放在so文件中,增加破解的难度。这个在破解的难度上确实增加了,要去破解so文件,难度确实增加不少。但有个缺点就是so文件对外的接口暴露无遗。包括输入和输出参数等清清楚楚,而且很容易通过挂钩子等方法来掌握so文件提供的方法。
第三级别的防破解方法:通过runtime运行时绑定接口,将接口和实现都放到so文件中,只有调用的地方可以看到调用接口。不清楚的就会奇怪为什么跟到一个调用接口发现跟丢了,而该方法又不带有native。这个是通过JNI的JNI_OnLoad动态绑定上去的。

常见的破解方法
最常见破解方法
就是上面提到的apktool, dex2jar及Onekey-Decompile-Apk;

通过Xposed挂钩子的方法
Xposed是一个很强大的工具,可以不用修改apk代码就可以观察或者修改apk的运行,类似写一个插件。具体我就不介绍了,详细参见https://github.com/rovo89/XposedBridge/wiki/Development-tutorial

通过IDA工具破解so文件
IDA是一个非常专业的so文件反编译工具,有很强大的插件。具体不详细介绍,网上去搜。

参考资料:

没有更多推荐了,返回首页