C/C++源代码静态检测系统的设计和实现

来源 :北京化工大学 | 被引量 : 1次 | 上传用户:wayaya001
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在线评测系统OnlineJudgeSystem(简称:OJ系统)是程序设计类竞赛和教学的重要辅助系统,以自动评测代替传统的手工评测代码的方式,具有高效率、高准确度的特点。但是,OJ系统通常是对提交的源代码直接进行编译、测试和运行,如果这些源程序存在错误或安全漏洞,将可能会给OJ系统造成安全隐患。所以对提交的源程序进行安全分析(在不运行程序的基础上)是十分必要的。本文设计了一个C/C++源代码静态检测系统,该系统会对学生提交的源代码(C/C++程序代码)进行检测。该系统将会检测源程序中是否存在数组越界、标准字符串函数错误、缓冲区越界等错误。这些错误在编译阶段很难被识别。当这些程序在学校的OnlineJudgeSystem运行时,就很可能危害到OJ系统的正常运行,甚至会造成系统的崩溃。C/C++源代码静态检测系统主要采用了静态分析技术和符号执行技术。系统利用静态分析技术对C/C++源程序进行预处理和静态分析,然后生成整个程序的静态分析树(静态分析树是系统进行符号执行的基础)和源程序文本对象。源代码静态检测系统通过符号执行技术对程序的静态分析树进行错误分析。在不执行程序的前提下,用符号值来表示程序中变量的值,然后按照设定的路径调度策略来模拟程序执行,同时在每个基本块中进行符号计算、获取路径约束条件、添加相应的安全约束,最后对程序的约束条件进行求解,从而来判断程序中是否存在数组越界、字符串函数调用错误、缓冲区越界等错误。
其他文献
为比较研究普通小麦及其近缘种根系发育的差异,探明近缘种的优良根系性状,以作为小麦改良的资源,于2007~2009年在河南农业大学科教试验园区开展本项研究。研究选取有代表性的
在发展中国特色社会主义道路的过程中,必须坚持社会主义法治的建设,但同时也需要坚持不懈地加强社会主义道德建设,实现法治与德治共同发展。实际上,法治与德治是社会发展的基
目的通过使用“中医传承辅助平台V2.5”(以下简称传承系统),对刘玉洁教授治疗老年轻中度抑郁的临证经验进行分析研究。为名老中医叙述思想的临床应用提供依据。方法收集2014
目的:探讨基础治疗联合牙周维护应用于慢性牙周炎治疗的效果。方法:2018年5-12月收治慢性牙周炎患者70例,随机分为两组。对照组采用牙周基础治疗方法;研究组采用基础治疗联合
为促进春耕春管工作,3月23日,垣曲县农机中心在皋落乡赵家岭村召开了2018年新型植保机械演示会,市农机中心分管领导景运添到会观看指导,县里四大班子领导和农委、林业局、水
耐火预制件是将不定形耐火材料定形化,兼具有定形和不定形的优点。本文针对耐火预制件的特点以及在原料配比、形状设计等方面的要求,根据水泥窑不同部位的使用条件,分别介绍
沐浴着新时代中国特色社会主义的春风,迎来了全国第55个学雷锋日。3月5日上午,山西省农业厅、山西省农机局团委联合太原市红十字血液中心、山西省农业广播电视学校,组织开展学雷
旋转式压片机,是将颗粒或粉状物料置于模孔内由冲头压制成片剂的机械,可将各种类型的干、湿粉末状颗粒状物料压制成圆形片或异形片(特殊形状),其主要用于制药工业的片剂工艺
被害人承诺作为一种违法性阻却事由,当今已被很多国家承认。这一理论契合了刑法的谦抑精神,并且充分尊重被害人的自主决定权。开展对被害人承诺的研究,有助于进一步明确相关案件
随着数字化电源技术快速发展,数字控制SPWM逆变器已经成为当今逆变器的重要的发展方向之一。此外,随着用电设备对供电电源的容量,质量以及可靠性的要求越来越高,逆变器并联不