北京邮电大学-软件安全测评-05源代码安全审查

北京邮电大学-软件安全测评-05源代码安全审查

ID:33616716

大小:1.23 MB

页数:131页

时间:2019-02-27

北京邮电大学-软件安全测评-05源代码安全审查_第1页
北京邮电大学-软件安全测评-05源代码安全审查_第2页
北京邮电大学-软件安全测评-05源代码安全审查_第3页
北京邮电大学-软件安全测评-05源代码安全审查_第4页
北京邮电大学-软件安全测评-05源代码安全审查_第5页
资源描述:

《北京邮电大学-软件安全测评-05源代码安全审查》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件安全测评北京邮电大学计算机学院信息安全系张淼zhangmiao@bupt.edu.cn第五讲源代码安全审查1.编译原理的基本概念2.静态代码分析技术3.常用静态代码分析工具4.源代码审查实施步骤与策略1.编译原理的基本概念介绍语言翻译的基本概念程序和语言翻译和解释介绍翻译的步骤和相关的活动介绍编译器的开发方法基本观念——程序、语言计算机、程序、语言计算机接受指令,然后执行指令指令组成的序列,称为程序符合一定规则(文法)的程序的集合,称为语言语法(形式)语义(意义)//形式与意义之间的对应关系?讨论:C

2、语言与C语言程序之间的关系基本观念——语言与程序语言的作用设计程序(选出特定的程序——构造程序)程序的作用由计算机执行在人之间的交流想法,由于程序没有歧义如何定义语言——编译原理涉及的内容以有限的规则,定义无限多的程序。基本观念——语言的多样性语言的多样性方便在特定领域的应用交流障碍解决方案统一语言,一个梦想没有个性的语言语言的不断发展翻译基本观念——语言之间的翻译对翻译的要求保持程序的意义,即功能不变。翻译的可能性Church猜想与通用计算机(语言的等价性)++、--、JNZ翻译的策略——软件

3、开发过程的策略编译(整体翻译)解释(逐句的翻译、执行)程序的执行方式高级语言程序通常采用两种方式执行:解释方式和翻译方式解释方式:逐个语句地分析和执行,如Basic,Prolog优点:易于查错缺点:效率低,运行速度慢翻译方式:对整个程序进行分析,翻译成等价机器语言程序后执行,如Pascal,Fortran,C优点:只需分析和翻译一次,缺点:在运行中发现的错误必须在源程序中查找什么是编译程序?定义:是一种语言转换系统高级语编译程序低级语言言书写程序(目的程序标程序)(源程序)C++C++编译器CJavaBytecode

4、Java编译器源程序编译程序目标程序输入数据运行系统计算结果需预处理的源程序高级语言程序的预处理程序处理过程源程序编译程序目标汇编程序汇编程序可再装配的机器代码装配/连接编辑程序可再装配目标文件绝对机器代码编译程序的功能从功能上看,一个编译程序就是一个语言翻译程序。出错和警告信息源语言通常是一个高级语言,如编译程序FORTRAN,C或Pascal。源语言程序目标语言程序目标语言通常是一个低级语言,如汇编或机器语言。T形图常用T形图来表示编译程序涉及的三个语言:SOI其中:S:源语言(程序),Sourcelanguage(prog

5、ram)O:目标语言(程序),target/objectlanguage(program)I:实现语言,implementationlanguage编译程序在计算机系统中的作用编译系统是一种软件,一种系统软件。软件:计算机系统中的程序及其应用软件层文档。系统软件:居于计算机系统中最语言处理系统靠近硬件的一层,其他软件一般操作系统都通过系统软件发挥作用。和具体的应用领域无关,如编译系统裸机和操作系统等。语言处理系统:把软件语言书写的各种程序处理成可在计算机上执行的程序,如编译系统。编译程序的组成结构program前端front

6、endscanner与源语言有关parsersemanticsmiddleend后端backendoptimizer与目标机相关codegenerator编译程序的结构翻译外文资料与编译源程序进行类比翻译外文资料编译源程序阅读原文输入并扫描源程序分析识别单词词法分析分析句子语法分析修辞加工代码优化综合写出译文目标代码生成翻译之前的准备必须了解的先定义接口,源语言(翻译谁——输入)然后再目标语言(翻译成谁——输出)实现翻译方法(如何实现翻译)如何定义源语言和目标语言程序的基本组成是字符,程序是一个字符串由字符组成程序的方法编

7、译程序的逻辑结构符号表管理中目词语语间优标目源法法义代代标程分分分码码代序析析析生化生码成成错误诊查处理源程序PROGRAMm;VARa,b,c:real;BEGINread(b,c);a:=b+c*60;write(a)END.(1)词法分析(Lexicalanalysis)词法分析程序又称扫描程序。是编译过程的第一个阶段,其任务是:读源程序的字符流、识别单词(如标识符、整数、界限符等),并转换成内部形式。输入字符串(即源程序)输出单词符号(最基本的语法单位)。词法分析举例一个C源程序片段:单词类型单词值int

8、a;保留字inta=a+2;标识符a界符;词法分析后返回(如右标识符a图):算符(赋值)=标识符a算符(加)+整数2界符;经词法分析源程序被加工成单词流<保留字,PROGRAM><标识符,m><分隔符,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。