当前位置>主页 > 期刊在线 > 计算机技术 >

计算机技术21年21期

基于TXL 的源代码插桩技术研究
张琦,仵俊
(南京航空航天大学 计算机科学与技术学院,江苏 南京 211106)

摘  要:常见的运行时验证技术的插桩方式包括中间代码插桩、二进制代码插桩和源代码插桩。前两种插桩方式的插桩结果通常依赖于平台,而且不同的优化等级也会带来不同的结果,会使得部分错误被忽略。TXL 是一种函数和规则混合的语言,提供源代码到源代码的转换。文章使用TXL 作为插桩工具,提出一套完整的源代码插桩算法,实现了基于指针技术的C 语言运 行时验证工具。实验表明,该算法可以有效实现对C 程序的插桩。


关键词:运行时验证;源代码插桩;TXL;内存安全



DOI:10.19850/j.cnki.2096-4706.2021.21.021


基金项目:国家自然科学基金:内存安全性和形式化规约的运行时验证(62172217)


中图分类号:TP311                                     文献标识码:A                                 文章编号:2096-4706(2021)21-0082-05


Research on Source Code Pile Insertion Technology Based on TXL

ZHANG Qi, WU Jun

(College of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics, Nanjing 211106, China)

Abstract: The common pile insertion ways in runtime verification technology include IR-level pile insertion, binary-level pile insertion and source-level pile insertion. The results of the first two pile insertion methods usually depend on the platform, and different optimization levels will bring different results, resulting in some errors being ignored. TXL is a mixed language of functions and rules,which provides the conversion from source code to source code. This paper uses TXL as pile insertion tool, proposes a complete set of source-level pile insertion algorithm, and implements a C language runtime verification tool based on pointer technology. Experiments show that the algorithm can effectively pile insert C program.

Keywords: runtime verification; source-level pile insertion; TXL; memory security


参考文献:

[1] 王克朝,成坚,王甜甜,等. 面向程序分析的插桩技术研究 [J]. 计算机应用研究,2015,32(2):479-484.

[2] 李文明,陈哲,李绪蓉,等.C 程序数组越界的运行时验证技术研究与实现 [J]. 计算机工程与应用,2015,51(11):190-195+211.

[3] 严俊琦,陈哲,黄志球.C 程序内存安全的运行时检测方法研究和实现 [J]. 小型微型计算机系统,2017,38(10):2358-2362.

[4] 严俊琦.C 程序内存安全错误的运行时检测技术研究与实现 [D]. 南京:南京航空航天大学,2017.

[5] CORDY J R. The TXL source transformation language [J]. Science of Computer Programming,2006,61(3):190-210.

[6] 丁飞,陈长松.TXL 编程语言及其应用 [J]. 计算机应用,2015,35(S1):168-173.


作者简介:张琦(1992—),男,汉族,江苏连云港人,硕士研究生在读,研究方向:软件工程、软件运行时验证;仵俊(1997—),男,汉族,江苏南京人,硕士研究生在读,研究方向:软件验证。