(信息系统安全技术国家重点实验室(军事科学院) 北京 100101) (datadancer@163.com)
出版日期:
2019-02-01Dynamic Binary Translation and Instrumentation Based Function Call Tracing
Lu Shuaibing, Zhang Ming, Lin Zhechao, Li Hu, Kuang Xiaohui, Zhao Gang(National Key Laboratory of Science and Technology on Information System Security (Academy of Military Sciences), Beijing 100101)
Online:
2019-02-01摘要/Abstract
摘要: 动态函数调用跟踪技术是调试Linux内核的重要手段.针对现有动态跟踪工具存在支持平台有限、运行效率低的问题,基于二进制翻译,设计并实现支持多种指令集的动态函数调用跟踪工具.首先,使用二进制翻译进行系统加载、分析内核镜像,识别基本块的分支指令类型.然后,根据不同平台指令集,设计桩代码并在函数调用与返回指令翻译时插入桩指令,进而在程序执行和内核启动时实时获取时间戳、进程标识、线程标识、函数地址等信息.最后,内核加载完毕后,处理获取的信息,生成过程函数调用图.只需要根据平台指令集特点设计对应的信息获取桩代码并插入到函数调用指令翻译代码中,实现简单,易于移植支持多种平台.该方法基于二进制翻译,直接对程序或内核镜像中的指令段、代码段、符号表进行分析,不依赖源码.拓展的中间代码和额外的目标码,不影响基本块连接、冗余代码消除、热路径分析等二进制翻译的优化方法,降低了开销.基于QEMU的实验结果表明:跟踪分析结果与源代码行为一致,桩代码执行信息记录产生了15.24%的时间开销,而信息处理并输出到磁盘文件产生了165.59%的时间开销,与现有工具相比,性能有较大提升.
参考文献
相关文章 8
[1] | 傅立国,庞建民,王军,张家豪,岳峰. 动态二进制翻译中库函数处理的优化[J]. 计算机研究与发展, 2019, 56(8): 1783-1791. |
[2] | 陈昱,刘中金,赵威威,马原,石志强,孙利民. 一种大规模的跨平台同源二进制文件检索方法[J]. 计算机研究与发展, 2018, 55(7): 1498-1507. |
[3] | 向勇,曹睿东,毛英明. 基于QEMU的动态函数调用跟踪[J]. 计算机研究与发展, 2017, 54(7): 1569-1576. |
[4] | 常青,刘中金,王猛涛,陈昱,石志强,孙利民. VDNS: 一种跨平台的固件漏洞关联算法[J]. 计算机研究与发展, 2016, 53(10): 2288-2298. |
[5] | 李战辉, 刘畅, 孟建熠, 严晓浪. 基于高速缓存负荷均衡的动态二进制翻译研究[J]. 计算机研究与发展, 2015, 52(9): 2105-2113. |
[6] | 陈莉丽 沈 立 王志英 肖 侬 姚益平. 面向特定应用的计算加速器虚拟化[J]. , 2011, 48(11): 2103-2110. |
[7] | 陈 微 王志英 肖 侬 沈 立 陆洪毅. 降低协同设计虚拟机启动开销的译码后指令缓存技术[J]. , 2011, 48(1): 19-27. |
[8] | 李剑慧, 马湘宁, 朱传琪,. 动态二进制翻译与优化技术研究[J]. , 2007, 44(1): 161-168. |
PDF全文下载地址:
https://crad.ict.ac.cn/CN/article/downloadArticleFile.do?attachType=PDF&id=3875