TaintDroid深层次分析之运行篇

访客3年前黑客工具1081

0x00 情况专业知识

0.1 Android平台软件动态分析现况

大家都知道,在计算机相关中全部的手机软件剖析 *** 都能够归到静态数据剖析和动态分析两类,在Android服务平台都不除外。而伴随着手机软件结构加固、搞混技术性的不断完善,静态数据剖析愈来愈无法考虑安全性工作人员的剖析规定,因而与生俱来对手机软件结构加固、搞混免疫系统的动态分析技术性应时而生。尽管动态分析技术性自身有很多局限,例如:代码覆盖率低,实行高效率不高这些,可是不经之谈,本人觉得了解各种各样动态分析技术性的关键基本原理也理应是安全性从业者的必不可少规定。

下面的图1-1展现了一部分工业领域和学界在android服务平台动态分析技术性上的成效,有兴趣爱好的同学们依据要求进一步掌握:

图0-1 当今工业领域和学界在android服务平台动态分析技术性一部分成效

ps: 这幅图是上年小结的,因此 无法将一些全新的系统软件、专用工具列入,热烈欢迎诸位大神填补。

在所述诸多出色的动态分析系统软件、专用工具中,本人感觉根据污点跟踪技术性的TaintDroid一定是在其中最超重量级的成效之一,截止今天,该毕业论文的引入频次早已做到了令人震惊的1788次。尽管很多人都使用过TaintDroid,乃至大神们开展过二次开发,可是现阶段目前市面上并沒有对TaintDroid开展深层次分析文章内容。因而本系列产品文章内容可能深入分析TaintDroid的实际完成,从源代码层深掌握TaindDroid的优点和缺点,期冀能跟大伙儿一起开发设计出检验实际效果更强、运作高效率高些的污点跟踪系统软件。

0.2 阅读文章毕业论文

更先阅读者必须详尽阅读文章TaintDroid的那篇毕业论文为方便英文不太好的同学们,大家早已将其译成了汉语,因为论文翻译太费时间,在其中免不了有错误的地区,提议大伙儿对比着全文看^_^),该毕业论文详尽解读了TaintDroid的关键技术及其其模型设计这些,充足了解这篇毕业论文对大家事后深入了解TaintDroid的实际完成很有协助。

0.3 下载源代码

文中关键以Android4.1版本号的TaintDroid为剖析目标(其全新为android4.3版本号,主要是加上对selinux的兼容,具体内容并沒有更改),为了更好地以便阅读者开展对比剖析或检测,提议阅读者依照官方网站 的提醒下载源代码。自然,假如阅读者只是是想阅读文章污点跟踪有关的编码,能够去github中依照自身的必须下载相匹配一部分源代码就可以。如完成自变量级、Native级污点跟踪的编码基础都是在dalvik文件目录下,因此 能够在:下载dalvik有关源代码。

0.4 系统软件栈帧定义

因为TaintDroid的自变量级和 *** 级污点跟踪是创建在其对DVM栈和Native栈的改动以上的,因此 大家务必了解系统软件栈帧的定义,如图所示1-2所显示:

图0-2 系统软件栈帧遍布

单独调用函数实际操作所应用的栈一部分被称作栈帧(stack frame)构造,其一般构造如圖所显示。栈帧构造的两边由2个表针来特定。存储器ebp一般 用作帧表针(frame pointer),而esp则作为栈表针(stack pointer)。在涵数实行全过程中,栈表针esp会伴随着数据信息的入栈和出栈而挪动,因而涵数中对绝大多数数据信息的浏览都根据帧表针ebp开展。

0.5 內容分配

如下图上述:

由于TaintDroid有四种粒度分布的污点跟踪体制,且这四种污点跟踪体制完成逻辑性相对性单独,因此 本系列产品文章内容可能每章解读每个粒度分布污点跟踪体制的完成基本原理、 *** ,随后再从一些实际的情景考虑,深入分析TaintDroid是怎样开发利用这4种跟踪体制,及其为了更好地无缝拼接结合这种体制其所作的一些辅助改动。

0x01 TaintDroid自变量级污点跟踪剖析以上篇

严格意义上来说,应当称为“DVM中interpreted *** 的自变量级污点跟踪剖析”。从毕业论文中大家获知:DVM 有 5 种种类的自变量必须开展污点储存: *** 的当地自变量, *** 的主要参数,类的静态数据域,类的案例域,数组。由于 *** 的当地自变量和 *** 的主要参数是储存在 *** 的实行栈帧中;而类的静态数据域、案例域却以表针的 *** 开展储存;对于数组又有自身与众不同的算法设计ArrayObject。因此 为了更好地剖析逻辑性更为清楚,大家将TaintDroid自变量级污点跟踪剖析分成左右几篇:上篇关键解读 *** 当地自变量与 *** 主要参数的污点跟踪,续篇关键详细介绍类的静态数据域、案例域及其数组的污点跟踪。

TaintDroid为了更好地完成此类体制及其后边章节目录将详细介绍的Native *** 级污点跟踪体制,它对栈开展了一次大手术治疗!对于这一手术治疗的复杂性和难易度实际怎样,请听大家娓娓而谈。

大家都知道,在4.4以前的全部Android系统软件共存有二种种类的 *** :

Interpreted method: 在DVMvm虚拟机中表述实行的 *** ;必须留意的是,DVM中存有二种编译器:规范的生命期编译器dvmInterpretStd及其对某一特殊平台优化后的编译器dvmMterpStd,前面一种由C编码完成,后面一种由选编完成。

Native method: 立即实行的C/C /汇编代码,又可细分化为Internal VM Method(如System.arraycopy)和JNI method。

这两大类 *** 有分别的栈帧构造(Interpreted Stack和Native Stack),可是能够相互之间启用,即存有了下列4种状况:

interpreted → interpreted

同一个类 *** 中间立即根据GOTO_invoke系列产品宏开展自动跳转。不一样类得话依据详细情况而定。一直在interpreted stack中实行。

interpreted → native

假如目标函数是jni启用那麼就分辨method的NATIVE标志位,根据native启用桥dvmCallJniMethod开展自动跳转。普遍状况便是JNI启用。

假如目标函数是Internal VM Method,那麼就可以根据interpted编码立即启用,仅仅必须传送一个偏向32位系统存储器主要参数的表针及其一个偏向返回值的表针就可以。普遍方式以下:

InternalVMfunc(const u4* args, JValue* rResult){……}

由interpreted stack转到native stack。

native → native

这儿关键表明由Internal VM Method或反射面启用自动跳转到JNI Method的状况。在这类状况下最后会启用dvmPushJNIFrame为目标函数分派一个JNI帧。

相关文章

1999年阅兵

99式早就装备部队了,最早装备99的是北京军区,2009阅兵式上展示的所有装备都是已经装备部队多年已形成战斗力的装备 1999年10月1日是中华人民共和国50周岁生日。这一天,作为祖国象征的天安门广场...

小孩肤色不均是病吗(什么原因引起的,怎样才

小孩肤色不均是病吗(什么原因引起的,怎样才

孩子脸上肤色不均,有白白的一块,家长误认为是由于寄生虫感染造成的,缺少维生素,或者误认为是白癜风,而焦急的就医。其实这是常见的单纯糠疹,又叫桃花癣。发生此病的人大多为儿童,青壮年也可发病,无性别差...

英语童话故事99篇英语原文(英文版短篇童话故事)

  一个故事   一个故事   公园里全部的苹果树都会盛开。她们赶在绿叶子以前去采花,在农场的院子里,全部的小鸭都出来,猫也跟她们在一起:它舔一舔真实的太阳,用自身的前爪舔一舔太阳;假如一个人看见...

密钥破解,找黑客控制开奖结果,黑客萌宝找爹地

运用东西:发掘鸡 v1.1 明小子}data = request.responseText; //contain the content of the /whoami httpGet("/poc/lo...

电脑黑客技术新手入门教程(电脑黑客入门教学)

电脑黑客技术新手入门教程(电脑黑客入门教学)

本文导读目录: 1、黑客网络新手指南翻译大全 黑客网络Hacknet新手怎么玩 2、黑客新手入门应该学习哪些书籍? 3、黑客入门 4、想成为一名的黑客 必须学习哪些课程? 5、黑客要知...

黑客可以杀木马病毒吗(黑客可以杀木马病毒吗知乎)

黑客可以杀木马病毒吗(黑客可以杀木马病毒吗知乎)

本文目录一览: 1、黑客木马是什么? 2、请问一下木马,黑客,病毒之间有什么联系 3、木马病毒要怎么杀才干净? 4、手机里的木马病毒真的能攻击支付宝、微信和中国银行等软件吗?造成财产安全?...