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

2018-02-05 10:40:11来源:oschina作者:工作的事人点击

分享

由于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


混淆后

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台