基于符号执行的android原生代码控制流图提取方法symbolic

第3 卷第7 期 网络与信息安全学报 Vol.3 No.7

2017 年7 月 Chinese Journal of Network and Information Security July 2017

基于符号执行的 Android 原生代码控制流图提取方法

颜慧颖,周振吉,吴礼发,洪征,孙贺

(解放军理工大学指挥信息系统学院,江苏南京 210000 )

摘 要:提出了一种基于符号执行的控制流图提取方法,该方法为原生库中的函数提供了符号执行环境,对

JNI 函数调用进行模拟,用约束求解器对符号进行求解。实现了控制流图提取原型系统 CFGNative 。实验结

果表明,CFGNative 可准确识别样例中所有的JNI 函数调用和原生方法,并能够在可接受的时间内达到较高

的代码覆盖率。

关键词:控制流图;Android 应用软件;原生代码;符号执行

中图分类号:TP309

文献标识码:A

doi: 10.11959/j.issn.2096-109x.2017.00178

Symbolic execution based control flow graph

extraction method for Android native codes

YAN Hui-ying, ZHOU Zhen-ji, WU Li-fa, HONG Zheng, SUN He

(Institute of Command Information System, PLA University of Science and Technology, Nanjing 210000, China)

Abstract: A symbolic execution based method was proposed to automatically extract control flow graphs from na-

tive libraries of Android applications. The proposed method can provide execution environments for functions in na-

tive libraries, simulate JNI function call processes and solve symbols using constraint solver. A control flow graph

extraction prototype system named CFGNative was implemented. The experiment results show that CFGNative can

accurately distinguish all the JNI function calls and native methods of the representative example, and reach high

code coverage within acceptable time.

Key words: control flow graph, Android application, native code, symbolic execution

者倾向于复用已有的程序模块。而大多数情况下,

1 引言

分析者接触到的都是编译后的应用,需要分析程

Android 系统的普及使Android 应用的数量和 序安装包(APK ,Android package )中的代码文

种类呈爆发式增长。据Statista 的

符号执行android,基于符号执行的android原生代码控制流图提取方法symbolic.pdf相关推荐

  1. android:ellipsize = marquee 跑马灯,Android基于TextView属性android:ellipsize实现跑马灯效果的方法...

    本文实例讲述了Android基于TextView属性android:ellipsize实现跑马灯效果的方法.分享给大家供大家参考,具体如下: Android系统中TextView实现跑马灯效果,必须具 ...

  2. Android 上面关于不受控制3RD原生代码崩溃问题

    本文主要提供在 NDK Android 上面,由于无法避免调用某些 3RD的原生代码,而该程序存在潜在BUG,意思就是会导致NATIVE上面发生错误,崩溃整个程序的一个解决办法. 本方法是基于 LIN ...

  3. 蓝牙权限管理android,基于蓝牙与Android设备的控制系统设计

    3 Android设备软件设计本文引用地址:http://www.eepw.com.cn/article/264461.htm Android2.2版本以上才能很好的支持蓝牙功能,Android上的应 ...

  4. 漏洞挖掘 符号执行_基于符号执行的二进制代码漏洞发现

    基于符号执行的二进制代码漏洞发现 牛伟纳 ; 丁雪峰 ; 刘智 ; 张小松 [期刊名称] <计算机科学> [年 ( 卷 ), 期] 2013(040)010 [摘要] 软件漏洞是安全问题的 ...

  5. osgi框架 android,基于OSGi的Android应用模块动态加载框架设计与实现

    摘要: 伴随着移动互联网科技水平向4G的飞跃,移动终端的使用日趋常态化,移动智能设备的普及率越来越高,得到了大量使用者的追捧.与此同时,各手机操作系统下应用商店里正充斥着琳琅满目的移动应用产品,用户对 ...

  6. opencv 全景 android,基于OpenCV的Android手机全景图像拼接技术研究

    摘要: 21世纪是信息化时代,人们每天被各式各样的信息所包围,这些信息中90%来自于图像.在生活中很多情况下,人们需要记录某些场景,常用的工具就是相机,包括带拍照功能的智能手机.随着科技的发展,软硬件 ...

  7. android 基于位置服务,Android 基于位置服务的基本知识

    1.在android平台使用位置服务需要使用位置管理器,获得方法如下: String locationService =Context.LOCATION_SERVICE; LocationManage ...

  8. 如何测试并调试基于 NDK 的 Android 应用

    本文概述了如何为 x86 平台测试和调试基于 NDK 的应用. 本文将从头至尾完整展示如何创建示例应用,并演示如何测试和调试. 1. 开发环境 请确保已安装了 Android 应用开发环境. 如果尚未 ...

  9. React Native调用Android原生代码实现车牌识别功能【附效果图附源码】

    转载请注明出处,原文地址:http://blog.csdn.net/lucherr/article/details/71908180 这段时间研究了下React Native,Facebook推出的, ...

最新文章

  1. php函数默认参数不传值报错,php 关于函数参数的默认值
  2. 两个关于.NET读取EXCEL文件的问题,记下来,很有用!
  3. 探索Java语言与JVM中的Lambda表达式
  4. 转载:CSS hack技巧大全
  5. 内存分配的几个函数的简单对比分析
  6. PXE安装linux
  7. python绘制指数函数图像及性质_指数函数图像及其性质正式版
  8. 堆内存和数据结构堆之间的关系是什么?
  9. vue判断显示隐藏_web前端进阶之【Vue】10分钟掌握Vue 在学Vue的童鞋过来拿资料
  10. 电脑鼠标自己乱跳乱点_无线鼠标VS有线鼠标,二者区别何在?你可知晓?不妨来了解一下...
  11. jQuery图片水平滑动延迟加载动画
  12. (亲测有效).net framework 在计算机上已安装了更高的 4.x 版本,则无法安装以前的 4.5 版本。
  13. 河北农业大学林学可转计算机系吗,河北农业大学专业排名,招生专业目录(10篇)...
  14. 客户体验和客户服务的区别
  15. Mac安装photoshop错误:安装程序未能初始化
  16. 数据结构(从概念到C++实现)
  17. python数据库-1
  18. matlab x的几次方怎么表示,PPTx的几次方如何输入?
  19. cgb2110-day01
  20. Python 3 字符串 center( ) 方法

热门文章

  1. 如何用Python发送邮件?
  2. JVM--调优--04--案例02--大SQL导致内存溢出
  3. 划时代的腾讯NTQQ来了!
  4. 智能光伏汇流箱 裸板式汇流采集装置 时丽花
  5. 揭秘产品高手的底层逻辑
  6. 基于 Python+flask 构建态势感知系统(附完整源码)
  7. EPOLLRDHUP vs EPOLLHUP
  8. python 最准确的图片转文字软件_图片转文字软件哪个好?5款好用的图片转文字软件推荐...
  9. Tableau制作人物关系图
  10. 基于Android小巫新闻客户端开发---显示新闻详细内容UI设计