文档章节

【android开发代码保护】ARM平台代码保护之虚拟化

 不吃鱼的猫2
发布于 2016/07/26 19:18
字数 714
阅读 8
收藏 0

本文只有部分内容,请到一牛网阅读全文:

http://www.16rd.com/blog-32997-2957.html

背景:现在由于手机APP安全性缺乏导致用户敏感数据泄露的例子越来越多,APP开发者应该从开发阶段到运营阶段都关注APP安全防护问题,无论是漏洞还是病毒等等。今日分享一个与App安全相关的技术之一   —— 代码保护之虚拟化。

 【android开发代码保护】ARM平台代码保护之虚拟化

1.1什么是代码虚拟化?

  我们知道程序的执行,是依靠CPU对于符合规范的指令集的解析处理。如果将原指令集通过自定义规范进行变形处理,生成新的指令集(称之为虚拟指令集),CPU将无法识别虚拟指令。此时若配合能够解析虚拟指令集的解释器(称之为虚拟机),就可以达到不直接通过CPU而是通过虚拟机来执行虚拟指令。这个过程就叫做代码的虚拟化。

1.2为何将代码虚拟化?

  为了避免App资 源被窃取、网络协议被破解、游戏被外挂摧毁等情况出现,越来越多的开发者不得不投入更多的时间和精力来考虑代码安全问题。但在移动平台上,攻和防却是不对 等的,攻击者往往比防御者拥有更高级别的权限。随着技术材料的普及,使得移动平台的逆向分析变得容易,也有众多安全高手推出了很多加壳产品,虽说加壳以后 对抗静态分析会有不错的效果,可是运行后会在内存里暴露原本的代码,从而使得攻击者抓住窗口期dump内存,再进行必要的修复,即可在IDA里面进行阅读分析。 将代码虚拟化后,可防止上述情况的发生,即使被dump,IDA也无法阅读被虚拟化的代码,因为程序运行时并不会将虚拟指令集还原为原生指令集。所以攻击者只能转而去分析逻辑复杂性极高的虚拟机。这样大大地增加了代码分析的难度和所需要的时间,若配合混淆等手段,相信绝大部分攻击者会望而却步。

  当然,为了相对的安全也会付出相对的损失。虚拟指令集的执行效率会比原生指令集稍低一些,所以被虚拟化保护的代码往往都是最关键最核心的部分。

1.3如何将代码虚拟化?


本文只有部分内容,请到一牛网阅读全文:

http://www.16rd.com/blog-32997-2957.html

本文转载自:http://www.16rd.com/blog-32997-2957.html

粉丝 1
博文 49
码字总数 0
作品 0
深圳
私信 提问
ARM平台代码保护之虚拟化

背景:现在由于手机APP安全性缺乏导致用户敏感数据泄露的例子越来越多,尤其涉及经济金融、电商支付、手游类的案例不断,相关APP开发者应该从开发阶段到运营阶段都关注APP安全防护问题,今日...

御安全
2016/08/08
236
1
【北京】知名互联网安全公司招Linux内核开发工程师【猎头】

职位是中高端的,薪水20w+,欢迎大家踊跃投递简历 可发送到steven@lucky-hand.com 或加QQ284827193详聊,注明linux应聘 【岗位职责】 随着 Android 手机操作系统的普及,市场上逐渐形成了 An...

ZhangSteven
2012/04/18
695
3
史上最全面 Android逆向培训之__Xposed使用

刚招来个Android,干了半个月辞职了,他走之后,成堆的bug被测了出来,都是这个新人代码都没看懂就开始改的一塌糊涂,还给提交了。 实在是让人头疼,清理了一个月多月才把他半个月写的bug清理...

Android逆向大神
07/18
0
0
MIPS借Android东风扩展嵌入式市场

Android开源操作系统已由手机开发延伸进数字家庭设备和汽车电子等领域。由于采用Android操作系统不受处理器的限 制,目前中国大陆的许多 嵌入式设备开发商都在采用Android平台,提供各种有竞...

walkerxk
2010/06/01
129
0
【源码】c#编写的安卓客户端与Windows服务器程序进行网络通信

源码(包含客户端与服务器端所有工程文件) 数据库文件 为了方便测试,我临时搭建了一个服务器可以安装apk文件,直接测试 apk文件下载地址 通信框架为来自英国的NetworkComms2.3.1开源通信框...

拉偶有所依
2015/03/09
272
0

没有更多内容

加载失败,请刷新页面

加载更多

一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
33分钟前
9
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
今天
10
0
aelf Enterprise 0.8.0 beta有奖公测,“Bug奖金计划”重磅开启

2019年9月30日,aelf Enterprise 0.8.0 beta版正式发布。aelf Enterprise 0.8.0 beta是一个完备的区块链系统, 包含完备的区块链系统、开发套件、开发文档、以及配套的基础应用和基础服务。 ...

AELF开发者社区
今天
10
0
oracle 初始化数据库脚本

create user lpf identified by 123456; create tablespace lpf_ts_cms datafile '/opt/app/oracle/product/11.2.0/lpf.dbf' size 200M; alter user lpf default tablespace lpf_ts_cms; sel......

internetafei
今天
8
0
深入了解Redis底层数据结构

说明 说到Redis的数据结构,我们大概会很快想到Redis的5种常见数据结构:字符串(String)、列表(List)、散列(Hash)、集合(Set)、有序集合(Sorted Set),以及他们的特点和运用场景。不过它们是...

TurboSanil
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部