App安全加强——我来帮你写C++

如今大部分的移动端,如Android、IoT、iOS都会面临特别大的问题,如应用被逆向破解、升级迟缓、突发事件等。html

从一个比较流行的Android系统的实例来讲起,Android系统主要的代码全是Java,Java的代码很标准,你们能够根据全部的文档、各类逆向工具进行查阅,所以很容易被破解。可是针对C++的代码就没有那么地丰盛,C++难以破解的一点是在编译的过程当中会比Java的过程当中放弃更多的或者会丢掉更多的细节。安全

咱们知道这个点以后,若是咱们有办法把一个代码从Java写的转换成C++写的,那是否是更难被破解呢?这就是我今天要跟你们分享的一个方案。ide

若是咱们在源代码层面上进行转换的话,咱们须要处理全部编译其要处理的东西,语法、词法,甚至一个引号都须要咱们控制,可是Java翻译不是一个很好的地方。源码搞不定,咱们看一下在Java字节码上能不能作?Java字节码是基于一个站的。函数

Java的代码,把核心的部分转换成C++的代码,它是能够提升不少的安全性,能够所有转换,也能够只转换一个函数,提升安全性上是有很大的帮助。工具

一个Java的Native程序,或者是一个Dalvik里面,虚拟机对能引用的对象是有限制的,咱们没有办法设置一万个对象,虚拟机对它有250个最多的限制。这个循环若是跑到250个,甚至300个时候,虚拟机须要处理垃圾收集的功能,这里面的函数要求把这个对象覆盖掉,咱们函数里面生成的那段代码里面应用的函数就很是地有限。idea

咱们今天说的是一个安全加强方案的技术实现,跟加固的比较上有一个很大的区别。咱们的点不是魔术,咱们的方案是把它转换,我把它转换成另一种方式,原先是电能的,我把它转化成会发光的光能,咱们能够转化成化学能,今天的方案里面,Java讲C++就是它的一个特别的实例。翻译

在整个流程里面,咱们会引入一个叫作动态的安全防御,由于刚才最后一点介绍的方式,咱们是能够推送一个基础的版本,发现一笔再推送一个小的东西。这里有部分的代码换掉,能够达到升级动态,甚至是说一旦发现有黑客在攻击咱们的代码,能够推送另一个程序的版本达到一个直接跟他对抗的目的。htm

花甲科技安全实验室负责人泮晓波发表《App安全加强》主题分享对象

另外,针对APP的逆向破解问题,在这里你们还能够经过使用一种更便捷的方式来进行解决,那就是使用第三方的安全加固服务,好比目前海云安(www.secidea.com)就在提供免费的APP安全加固服务,其业内最新的无壳加固技术能够有效解决以往加壳方法产生的兼容性等问题,经过简单注册提交,一键便可完成防逆向破解的加固保护。事件