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

android全系统动态二进制分析--CopperDroid相关推荐

  1. 全系统动态污点分析-概要

    全系统污点分析需要完成以下几点: 1. 标记某个来自I/O device的数据为污点 2. 可以监视全系统的执行,知道哪一块代码在传播了污点数据.要实现这一点,需要基于qemu. Qemu的动态翻译系 ...

  2. android 屏幕录制方案,ShareREC for Android全系统录屏原理解析

    本文是Mob开发者平台技术副总监余勋杰基于MediaProjection实现Android全系统录屏功能的原理解析,包括了结合MediaRecorder和MediaCodec两套方案. 文 / 余勋杰 ...

  3. android 监测属性值变化,Android 的系统属性(SystemProperties)分析 | Bob's Blo...

    以下分析以android 4.03为基础 前言 Android的系统属性相当于windows的注册表,由key和value组成,且都是核心系统的一个基本机制.相对于windows的注册表,Androi ...

  4. h5 神策埋点_神策Android全埋点方案分析

    神策Android全埋点方案 原理简单分析: Activity生命周期通过监听Application.ActivityLifecycleCallbacks,fragment的生命周期 及一些点击事件则 ...

  5. Qualcomm 高通芯片组与Android音频系统缺陷测评分析

    转自:http://www.soomal.com/doc/10100002164.htm Qualcomm高通公司是目前Android智能手机上最为知名的ARM架构的处理器和芯片方案硬件提供商,高通公 ...

  6. Android Trusty系统源码分析---启动和调度

    什么是Trusty OS 为了应对开放系统的安全风险,Global Platform(GP)提出了可信执行环境的概念(TEE).TEE要求在设备上有一个能够与Rich OS(例如Android)并存, ...

  7. 打造一个实际的全系统污点分析系统--Towards Practical Taint Tracking

    全系统动态污点分析的难点 典型的全系统污点分析都是基于QEMU(一个硬件仿真器)实现的.然而硬件仿真是很慢的,为了提升性能,现在的实现一般都只对和tagged data交互的代码使用仿真,这种方法可以 ...

  8. 反汇编和二进制分析工具清单

    本附录列出了许多反汇编和二进制分析工具,包括逆向工程.反汇编API以及执行跟踪的调试器. C.1 反汇编工具 C.1.1 IDA Pro(Windows.Linux.macOS) IDA是行业标准的递 ...

  9. 动态二进制插桩的原理和基本实现过程(Pin/DynamoRIO/Frida)

    英文原文全文 http://deniable.org/reversing/binary-instrumentation 译转自https://www.4hou.com/binary/13026.htm ...

最新文章

  1. Oracle 下 unpin 的cursor 才能被移除
  2. nohup 带参数_广州市西门子两通阀VVF42.40-25C+SKD62带断电
  3. 基于Bootstrap Ace模板+bootstrap.addtabs.js的菜单
  4. 对ASCII文件的操作
  5. 2016/08/24 CppCon 2015 Bjarne Stroustrup “Writing Good C++14
  6. XMPP协议简单介绍
  7. CF1534F:Falling Sand(tarjan、贪心、dp)
  8. igmp是哪个层协议_通俗易懂网络协议(IP)
  9. 加载elementor时出现问题_element ui 按需引入出现问题
  10. CMOS checksum error-Defaults loaded 故障解决办法
  11. Item 27 避免使用ICloneable接口
  12. Python学习(三)-----用户输入和while循环
  13. IDEA Mybatis xml中配置sql代码自动提示【必看】
  14. 肌电信号分析相关链接分享
  15. 通俗的解释机器学习的预测原理
  16. hdoj 1163 Eddy's digital Roots(数学问题,继续分析) .
  17. 跳过wifi认证直接上网
  18. 管理计算机域的内置账户怎么取消,取消普通域用户将计算机加入域的权限
  19. win8计算机关机时 重新配置windows 以后打印机不能用了,win8系统打印机发送打印任务后不打印自动消失的技巧介绍...
  20. 免费版采集器:谷歌后羿采集器

热门文章

  1. mfc做数独游戏_我终于在iPhone上找到了体验最好的数独游戏
  2. 华为鸿蒙开机不用广告,华为鸿蒙系统开机无广告:用户好评,友商品牌批评。只因树大招风...
  3. java x509certificate2_ASP.NET使用X509Certificate2出现一系列问题的解决方法
  4. loadrun Java 添加参数_loadrunner手动关联参数化问题总结
  5. comsol积分函数_如何在 COMSOL 软件中合并解
  6. androidstudio自带git用法_Android Studio使用Git版本控制github
  7. android8 通知呼吸灯_手机呼吸灯那么好用!为什么要取消它?没有呼吸灯真的好吗?...
  8. mysql数据表案例_mysql中库和表的简单操作案例
  9. 西安建筑科技大学安德学院计算机专业,【图片】【安德学院】身在建大,志在四方【西安建筑科技大学吧】_百度贴吧...
  10. java 蓝桥杯 求先序排列