网络与信息安全学报 ›› 2017, Vol. 3 ›› Issue (7): 33-46.doi: 10.11959/j.issn.2096-109x.2017.00178

• 学术论文 • 上一篇    下一篇

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

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

  1. 解放军理工大学指挥信息系统学院,江苏 南京 210000
  • 修回日期:2017-06-09 出版日期:2017-07-01 发布日期:2017-08-01
  • 作者简介:颜慧颖(1993-),女,江西吉安人,解放军理工大学硕士生,主要研究方向为软件安全。|周振吉(1985-),男,江苏沭阳人,博士,解放军理工大学讲师,主要研究方向为软件安全。|吴礼发(1968-),男,湖北蕲春人,博士,解放军理工大学教授、博士生导师,主要研究方向为网络安全。|洪征(1979-),男,江西南昌人,博士,解放军理工大学副教授、硕士生导师,主要研究方向为网络安全、人工智能。|孙贺(1990-),男,黑龙江齐齐哈尔人,解放军理工大学博士生,主要研究方向为软件逆向工程。
  • 基金资助:
    国家重点研发计划基金资助项目(2017YFB0802900);江苏省自然科学基金资助项目(BK20131069)

Symbolic execution based control flow graph extraction method for Android native codes

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

  1. Institute of Command Information System,PLA University of Science and Technology,Nanjing 210000,China
  • Revised:2017-06-09 Online:2017-07-01 Published:2017-08-01
  • Supported by:
    The Natural Science Foundation of Jiangsu Province(2017YFB0802900);The National Key Research and Development Program of China(BK20131069)

摘要:

提出了一种基于符号执行的控制流图提取方法,该方法为原生库中的函数提供了符号执行环境,对JNI 函数调用进行模拟,用约束求解器对符号进行求解。实现了控制流图提取原型系统 CFGNative。实验结果表明,CFGNative可准确识别样例中所有的JNI函数调用和原生方法,并能够在可接受的时间内达到较高的代码覆盖率。

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

Abstract:

A symbolic execution based method was proposed to automatically extract control flow graphs from native libraries of Android applications.The proposed method can provide execution environments for functions in native 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

中图分类号: