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

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

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

我们知道这个点之后,如果我们有办法把一个代码从Java写的转换成C++写的,那是不是更难被破解呢?这就是我今天要跟大家分享的一个方案。

如果我们在源代码层面上进行转换的话,我们需要处理所有编译其要处理的东西,语法、词法,甚至一个引号都需要我们控制,但是Java翻译不是一个很好的地方。源码搞不定,我们看一下在Java字节码上能不能做?Java字节码是基于一个站的。

[img]http://dl2.iteye.com/upload/attachment/0127/3908/c0e6b631-7484-3e90-b8ac-b4d58e009e33.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0127/3906/ccdc0fe3-ac73-381b-aa04-5926437bffc4.png[/img]

Java的代码,把核心的部分转换成C++的代码,它是可以提高很多的安全性,可以全部转换,也可以只转换一个函数,提高安全性上是有很大的帮助。

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

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

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


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


另外,针对APP的逆向破解问题,在这里大家还可以通过使用一种更便捷的方式来进行解决,那就是使用第三方的安全加固服务,比如目前海云安([url=http://www.secidea.com/index.html]www.secidea.com[/url] )就在提供免费的APP安全加固服务,其业内最新的无壳加固技术可以有效解决以往加壳方法产生的兼容性等问题,通过简单注册提交,一键即可完成防逆向破解的加固保护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值