android全系统动态二进制分析--CopperDroid

1. 简介

CopperDroid通过直接监测System call,不但可以判断操作系统的一些动作(比如进程创建、文件创建),还可以判断进程内部的动作(比如短信发送,这种行为和android的对象有关),最终产生详细的、并且有意义的,有语义的行为信息。

2. android全系统动态二进制分析的难点

Android app的特性决定了我们很难依靠传统的基于system call的动态分析系统。比如:Android系统通过Binder进行进程内(IPC)和进程间(RPC)通信。仅仅依靠system call无法还原这些高级语义。
通过CopperDroid,我们证明了android app的行为,完全可以通过system calls构建出来。不管这些行为是来自于java还是来自于native code。我们只需要从system call向上构建IPC/RPC和android object等高级语义,就行了。
这个想法还是很具有挑战性的。

3. CopperDroid实现思路

CopperDroid使用了数据解码的技术,重新建立起复杂的android对象,这是CopperDroid的真实价值所在,包括:

  • Automatic IPC Unmarshalling
  • Value-based Data Flow Analysis
  • Behavioral Reconstruction

其它同类工具,比如:Droidscope依赖于具体的android操作系统和dvm;taintdroid则依赖于DVM。CopperDroid对android操作系统和dvm没有依赖,这使得它更加通用。
CopperDroid的整体架构如下图:
这里写图片描述

3.1 Tracking System Call Invocations

CopperDroid通过对QEMU进行intrument,根据swi指令,跟踪system call。

3.2 Behavior Reconstruction

程序的任何行为都可以通过system call和它的参数描述出来。CopperDroid通过对ioctl这个system call的payload进行分析,还原程序的高层语义,如下图所示:
这里写图片描述

参考:CopperDroid - Automatic Reconstruction of Android Malware Behaviors

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值