Android 反破解的四个主要方式
《APK反破解之一:Android Java混淆(ProGuard)》
.SO文件是什么
但是当APP使用的第三方SDK中包含了so文件,或者自己需要使用NDK开发某些功能,就有必要去好好了解下so的一些知识。Android开发中,我们经常会用到.so文件。原因有很多,比如部分方法不想暴露,如加密规则。比如部分秘钥需要存储,哪怕最简单的一个加盐的String。我们使用.so调用获取这个String,也比直接明文写在代码中要来的安全。所以就需要我们安卓开发的同学,要知道简单的.so怎么编写。今天为大家带来一篇,如何通过Native方法,从.so中获取一个字符串(可以存储秘钥哦)。
Native开发,那就需要对应的NDK的环境。使用Android Studio开发的同学就会很简单了。当然,我一开始也不会,也是通过搜网上的代码,只是因为网上的代码有些生硬,不容易理解。我硬是弄了一下午,可能水平也不够,那我就写的简单一点。
为什么使用NDK(面试官会问)
1.代码的保护。由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
2.可以方便地使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。
3.提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
4.便于移植。用C/C++写得库可以方便在其他的嵌入式平台上再次使用。