几维资讯> 技术研究

Android代码混淆,为移动应用提供更安全的保护

几维安全 2018-01-31 11:51:39   782
分享到:

由于Android开源的环境,导致Android的整体环境都存在很多不安全的因素,同时用户在移动APP客户端的便捷应用,也给用户带来了巨大的安全隐患。未经过安全加固的APP存在被静态反编译、恶意篡改、二次打包、动态钓鱼攻击等多个安全隐患。静态破解可让黑客直接逆向出客户端所有的功能代码、加密算法以及与服务器通信的相关方法及URL等敏感信息。黑客可以随意进行恶意代码注入、篡改欺骗用户甚至攻击服务器;动态攻击可让黑客进行相关敏感数据的窃取,如用户核心账户信息、服务器端相关信息等。

谷歌公司虽然从硬件方面强化设备安全性,通过 TrustZone 来实现他们的目的。TrustZone 是系统内核中的一个独立于内核中其它部分工作的特殊部分,负责处理最重要和敏感的操作(比如数据加密)。安全性得到一定的提升,用户将可以在设备上执行设备认证、设备完整性检查、设备绑定以及其他复杂的操作。但是 Android 在安全保护方面依然一直受限,因为其对潜在的整合缺少控制权。而且安卓系统的破碎性也让用户更难获得最新的系统更新。

Android代码混淆,为移动应用提供更安全的保护

So文件保护

SO是Android平台下的动态链接库,通常将核心业务逻辑代码编写到SO文件中。

对SO文件做加密和自定义加载处理,除此之外还会对SO文件中字符串加密和代码混淆处理,层层防止攻击者提取SO文件和对其二进制代码做反编译和反汇编处理。

所用技术点:C/C++源码混淆

加固方式:so文件静态加壳、即只需上传.so文件,C/C++源码混淆,需要使用几维安全编译插件。

C/C++代码混淆

名词解释:将代码中的函数结构体复杂化,转换为功能等价逻辑代码,但是混淆后的代码难以阅读和理解。

功能详解:对Objective-C、C、C++编译后的Native代码进行代码混淆处理,被混淆过后的代码中存在多余代码、怪癖语法、冗余逻辑判断,冗余函数调用等难以阅读和理解的代码,让攻击者无法反编译,从而有效的保护源代码安全(使用IDA Pro工具查看代码混淆前后逻辑流程对比效果如图混淆前、图混淆后)。Android代码混淆是一个非常强大实用的功能,结合符号混淆、字符串加密和反调试机制等功能,对应用安全要求很高的场合也能完全胜任。

Android代码混淆1.png

混淆前

Android代码混淆2.png

混淆后

提供7*24小时的服务热线电话受理用户的服务请求,提供一对一售后服务。

分享到:



《安卓应用加密》 《Unity3D手游加密》 《源代码加密》 《移动端的KiwiVM虚拟机》