随机过程--滤波、估计与检测
通信专业经典外文教材,中文版!里面有随机过程、kalman滤波等相关课题,非常好的教材!国外电子信息科学经典教材系列随机过程滤波、估计与检测Random Processes: Filtering, Estimation, and Detection[美] Lonnie c. Ludeman著邱天爽李婷毕英伟等译電子工業出版社Publishing House of Electronics Industry北京· BEDING内容筒介书全面介绍了随机过程理论中经典的线性与非线性系统分析技术和假设检验技术,详细阐述了最优伟匚方法、用亍分类的最优决〔规则,描述了件能评价的准则和评佔方法、此外:本书还深入研究了噪声中随机过稈竹滤波、佔计和检测问题全共分为10章,包括概率空间与概率、随札变星、随机变星佔计、随机过难、随机过程通过线性系統、随巩过烓通过非饯性系统、最优线性维纠滤波器、最优线性卡尔曼滤波器、离散观测信号的检测理论以及连縷森测信号的检测理论等内容,本书在围绕主题进行深入分析的同时,给出了许多应用实例和习题,足本容易理解的适用性较强的书本书既可以作为研究生和大学本科高年级学生的教材,也可以供相关领域的工程技术人员自学参考未纤许可,不得以任何方式复制或抄袭本书之部分或全部内容。版叹所有,侵权必究。图书在版编目(C|P)数据随机过程:滤波、计与检测/(美)賡徳曼( LEderman,L,C)著邱天爽,李婷,毕英伟等译.一北京电子业出版社,2005,2(国外电子信息科学经典教材系列书名原文: Random processes: Filtering, Estimation, and detectionISBN7121·0866-1L.随…1.①路…②邱灬⑧李…④毕…Ⅲ.随机过程-教材IV.O2116中国版本图书馆CIP数据核字(205)第002845号责仁编辑:许楷印刷:北京胂义兴许卬刷「出版发行:电厂E业出版社京海淀区万考路173信箱邮编100036经销:2地新华书店廾本;787X192116印张:2875字数:736千字印次:2005年2月第1次印刷印数:500册定价:3900元凡购买电业版社的图书,如有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系联系电话:(010)6829077。质量投诉请发邮件至zlts@phej.com.cn,盜版侵杈举报请发邮件至dbqgo phei com.cn译者前言随札过程理论是现代信号处理的基础理沦之一,在诸如通信、计算机视觉、振动及雷达卢肭等应用领域,面临大量的随机信号分析与处理的问题,因此对于随机过程理论的深入理解是非常熏要的。此外,在通信系统和信号处理算法屮,对含噪过程的滤波、估计与检测是必不可少的重要任务。尽管国内外已经出版了不少关于随机过程及其工程应用的著作和教材,但是本书仍然以其独特的风格引起了国内外读者的注意,成为随机信号分析与处理领域一部非常重要且具有特色的著作。夲书的作者朗尼C·略德曼博土是因际数字信号处理领域的著名教授。他于1968年获得美国亚利桑那州立大学博土学位,现为新墨西哥州立大学电子与计算机工稈学院教授,并于1993年在希萨洛尼卡的亚里斯多德大学获得富布赖特基金奖,朗尼C·路德曼博士的另一部著作 Fundamentals of Digital Signal Pπ cessES,在出版当年获得 choice杂志射杰出工程图书奖本书仝面介绍了随机过程理论中经典的线性与非线性系统分析技术和假设检验技术,详细阐述了最优估计方法、用于分类的最优决策规则,描述了性能评价的准则和评估方法。此外,本书还深入研究了噪声中随机过程的滤波、估计和检测问题。本书的内容基本上可以分为四个互相关联的部分,即概率论和随机变量与随机过程的特征,随机过程通过线性与非线性系统的规律,以维纳滤波和卡尔曼滤波为主的最优估计理论,离散时间和连续时间信号的检测理论。本书在圄绕主题进行深入分析的同时,给出了许多应用实例和习题,是一本容易理解的适用性较强的书,既可以作为研究生和大学本科高年级学生的核心教材,也可以供相关领域的工程技术人员自学参考。本书由大连理工大学电子与信息⊥程学院邱大爽教授等完成翻详工作。具体分工为:李婷(第]章、第2章),毕英伟(第3章、第10章),邱天爽(前言、第4章、第5章),唐洪(第6章、第章),初孟〔第8章、第9章),郑效来(附录及图表等)。全书山邱天爽统稿。译者感谢芙文版原书作者朗尼C·路德曼博士和英文版原书出版社 John Wiley and Sons,Inc及电子工业出版杜对本书翻译工作的支持,感谢大连理工大学电子与信息工程学院对本书翻泽工作的支持。于译者水平所限,加之时间比较仓促,翻译中难免存在不妥和错误之处,恳请读者批评指。译者2005年1月于大连理厂大学作者前言每天我们都会遇到这样的信号,我们既不能用解析式来表示它们,也不能以确定的方法夹准确地对其建模,如常规的诰音信号、音乐信号、地震信号、生物信号、被动声呐信号记呆舶温度信号和通信信号等。表小相同内容的语音词句,如果H许多不同的人讲出来,或者是由同一个人在不同的时间讲出来,都会具有定的相似性和差异性。对于这种相似性或差异性,我们很难利用确定性的模型来表不。那么我们怎样表示这类信号呢?事实上,这类信号可以根据数学原理严格地表示为随机过程。而随机信号与可以用解析式表示的信号不同,它们只能根据概率来表示。例如,“在给定的时刻,某随机过程大于给定值的概率为025”就是一种概率表示。玍电气和订算机工程领域,尤其是在通信理论、计算机视觉、数字信号处理以及机械工程中振动理论和强度分析等领域,随机过程是个基本的概念。随机信号的数字处理对于高性能通信系统是非常重要的,而非线性信号处理方法则是有用的处理工具。这些随机信号常作为线性或非线性系统的输入信号。例如,语音信号经由传声器和放大器而到达扬声器输出。我们怎样评价这种系统的输出呢?实际上,系统的输出也可以认为是随机过程。那么,我们自然而然地会提出下面的问题:如果我们已知输入过程的统计特征,那么输出过程的统计特征又如何呢?在许多情况下,随机信号往往受到外来噪声的干扰,并且噪声通常也是随机的。如果这两种随机过程可以用各自的统计特征来表示,则我们可以找到从噪声中提取信号的方法,或者说找到在噪声中估计、滤波或预澳信号过程的方法。我们有许多针对确定性信号的线性和非线忤处理技术,然而,对于随机信号的处理不能直接使用确定性信号处理方法和模型。那么我们如何进行处理以及如何确定最优系统呢?假设我们有一个样本,已知其可能来自几个随机过程中的一个,需要确定该样本究竞属于哪个随过稈。例如,假设有一段语音信号,需要确定该语音信号表示的是五个元音中的哪一个,如何描述确定元音的过程?什么是最合理的性能测度?本书的目的是把随机过程的基础理论、线性及非线性系统分析技术与假设检验技术结合起来,从而给出信号的估计技术、确定最优的估计方法、提供用于分类的最优决策规则,并给山性能评估的方法作者撰写本书的一个主要目标是介绍随机变量和随机过程及其与线性、非线性系统的相作用,它们的估计方法及估计性能,以及噪声中随机过程的检测等本书的内容适合电气、计算机、地球物理以及机械工程等专业的高年级本科生和一年级研究生学习木书的内容可以分为四个主要的且互相关联的部分:概率论和随机变量与随机过程的特征,以随机过程作为输入的线性与非线性系统,包括维纳滤波和卡尔曼滤波的最优估计理论,离散和连续时间信号的检测理论根据不同的课程体系及要求,本书可以适用于几种不同的教育层次。例如,对于基础概率论及随杌过程导论这样的课程,本书适合四年级本科生或一年级研究生使用。如果课程包I括随机过程的波、估计和检测,则本书的内容可以供电气和计算机⊥程专业的一午级研究生使用。本书也可以作为高年级研究生关于检测和佔计理论的教材。对于高年级本科生或硏究,事先了解关概率和随机变量的知识是有帮助的。然而,对于研究生层次的课程,则需荽关于工程概率和基本系统理论的先修课程。由于本书通过大量的铡题介绍了许多基本概,因此本书也可以作为自学读物。在过去的15年寸,本书几乎所有的内容都在教学中使用过。作者在教学中采用了三种不问的形式:关于概率、随机变量和随机过程的概念和理论,使用书的第1~3章内容,并选用第4~6章的部分内容。●关于随机过程滤波及估计概念和理论的介绍,使月本书的第4~6章内容,并选用第7章和第8章的部分内容。关于检测与估计理论,使用本书的第3章、第7~10章内容本书的现打版本已经针对其最初的版本进行了较多的修改,并且吸取了学生们关于内容选取和总体样式的意见和建议。与本书配套的录像资料已经在新墨西哥州立大学( HollomanAFB),白沙导弹射击场( Kirtland AFB), Kwangju理工学院,南 Dakota矿业学院和RCA( larez. Mexico)的电气与计算机工程、物理学和其他工程专业广泛仗用,并且还作为上述学校以及印度科学学院( Bangalore)的标准课程教材。根据不同的听众和不同的课程要求,封次讲课的形式都可能有所不同,其目的是为学生提供容易理解的有用知识本书还给了许多习题,用于强调相关的概念。通过这些习题,学生们可以进一步加强对基本概念的理解,并且,由于习题的数量较多,每年开设这门课程时习题的重复性比较小。大部分习题是供课堂上练习或课后考试用的,用于加强对课堂上讲授的基本概念的理解。少数比较复杂的习题,需要下些功夫才能得到结果。许多习题要求得到完整的解析解是比较困难的,因此需要一些基本的计算技巧。分清哪些习题需要利用计算杋求解,哪些习题可以得到解析解,这种能力正在学生中逐渐培养并成熟起来。作者非常感谢上面提到的学生和有关机构,感谢他们对本书提出的有价值的建议和批评,感谢他们对本书的支持和所做出的努力本书的总体风格主要受到两部著作的影响第一部是 Athanasios Papoulis的经典著作《概奭机变量与随机过程》,第二部是 Harry L. Van trees的里程碑式的著作《检测、佔计和调制(第-“部分)》。我一直认为,本书在论述的方式、完备性和所覆盖的内容等方面很难与上述两部不朽的著作相提并论。本书的写作的不是为了与上述两本著作相竞争,实际上也没有这个必要。我的写作思路是选择这两本著作中的基本内容,并且以稍微低一些层次的数学要求来编写,给出较多的详细说明和例子,但不破坏数学摧述的完整性。关于本书的内容,基本上是根据上述两本著作来选择的,并且受到其他许多作者、教育工作者和学者的启发最后,最重要的是作者永远珍视作者家庭和朋友们对作者的仝面支持和鼓励朗尼C·路德曼目录第1章概率空间与概率………………11概率空间的定义……11.]样本空间平:·界号_.:自日:.即L1,2波莱尔域……11,3概率测度I2联合概率空间…………1………:…412.1两个概率空间的笛卡尔积12,2个概率空间的笛卡尔积…123计数概率空间……PTP=上→1.24联合概率空间的选择…………F+lI+131.3条件概率…1413.1全概率定理…1.32贝叶斯定理……………卡+·+十女d号甲+1千日十目r卡号14随机点………l中国中用里14.1区间中均匀分布的随机点t&142区间中非均匀分布的随机点■m1.5小结………20习题……参考文献25第2章随机变量……2621随机变量的定义2.1.1累积分布函数(CDF)…日·P血:如:721.2概率密度函数…………………………28213局部特征………………………………21.4条件紧积分布函数33215特征恿数……………t上td上2.6高斯随机变量的高阶原点矩…3622常见的连续随机变量…a↓L……3723常见的离散随机变量39元随机变量的变换……40241一元随机变量的变换……………………………-I242累积分布函数…卩,F■!目,,q卩寻↓。■罪品十日十■星·十Pl4dh,·+寻↓4IdaJ4■b+d5期望值的计算4726二元随机变量………………………卜中dp垂4FL4DL用山■山目日国国E目261联合累积分布函数26,2联合慨率度两数50263局部特征……264联合止态随机变量薯■rT了■nT■加1『1m日r“■TDT道十■TLT■"■■T■T5527二元随机变量的两个函数271概率密度函数(离散随机变量……………572.72概率密度函数连续随机变量和连续数}………………273分布函数(连续、离散或混合6128:元随机变量的个函数………………6328,1离散随机变量的概率密度函数………6328,2连续随机变量的概率密衰函数…………………………………6429E(Xy)的计算210多随机变量…692.10.1全局特t,·692.10.2月部特征………………………………和q上中■《+b中:b◆411每d■↓;4abh4画h213高斯随机矢量…1742.11N个随机变量的M个函数…212小结参考文献……第3章随机变量估计…3.1变量估计…………9731随机变量估计的基本公式中■中■1中,中日目■……………97312贝叶斯性能测度++4…97313数据的统计特征……32线性最小均方误差(MMSE)估计32]随机变量的营数估计………通日骨目P十虚加十98322由一个随机变量估计另一个随想变量的线性估计……323由N个随机变量估计一个随机变量的线性估计33非线性最小均方误差(MMSE)估计…107331由一个施机变量估计另一个随机变量的非线性估计…+7332由N个随机变量估计一个随机变量的非线性计11123高斯随机变量的非线性估計.:函.F·dP香P日aa日1124随机变量估计的性质11335贝叶斯估计…1335.!贝叶斯伟计……114352贝叶斯佔计举例11636非随机参量的估计■ptt由口ht面明.·+卩+F119361极大似然估计20362极大似然佔计举例…12037小结习题…1「rT日·」参考文献…128第4章随机过程………1304.1骓机过程的定义……42随机过程的特征13142.1随机过程的全局特征……………13242.2随机过程的阶概率密度中自中14中E4山中中丽………"1324.2.3随机过程的均值………………4.24随机过程的方差…32425随机过程的二阶概率密度133426随机过程的自相关函数和自协力差函数133427随机过程的功率谱密度…134428高阶矩429髙阶谱…………………1354210N阶密度…………“a13543随机过程的平稳性■■!中冒:14中4自L135431广义平稿殖机过程4.3.2广义平稳随机过程的性质…13644随机过程举例平导P中IM3644l自线过程…PP中目-d日++...·...,中·136442半随机二进制传输过程39443随机二进制传输过程…l41444半随机电报过程…………143445随机电报过程………·1464.6随机正弦信号L46447随机游动过程喻,..一14845随机过程的定积分152456随机过程的联合特征153461—阶联合密度Rd46.2互相关晰数十“十1r15446.3互协方差函数……464联合平稳………………465互功率谱密度15547高斯随机过程………155
- 2020-12-08下载
- 积分:1
如何攻破软件
如何攻破软件,英文名how to break software。本文为精简版,浓缩就是精华啊。报错信恳仅仅是迫使程序停止来显示一条报错信息、,然后接着执行卜一条输入或者直到定时器超时而凵。但是,也有其他一些报错信息则是来自于被程序抛岀和异常处理器被执行引发的异常。异常处理器(或中央错误处理线程)因其指针突然改变而数据状态不产生相应变化,通常会存在问题。异常处理器执行的睽间,各种各样的数据问题接踵而至:文件未关闭、内存未释放、数据未初始化。当控制重新回到主线程,很难判断错误处理器是在什么时刻被调用,又会有怎样的遗留问题在等待粗心大意的开发人员:因为文件没有关闭导致打开文件失败、在没有初始化前就开始使用数据。如果我们能确侏在所有的报错信息都出现过之后系统依然正常工作,那么也算是为用户省去」不少麻烦(吏不用说我们的维护工程师∫)图1展小∫我的学生在微软Word20中发现的一个有趣的bug,一条错误提小不知为何连续出现了两次。这个bug是在通过单一输入攻击错误处理线程的过程中发现的确保软件指定默认值。开发人员通常不记得在用户输入越界或给参数改置不合理的值时指定默认的值。有时候强制改立默认值意味着什么也不做一一然而正因为恕不到,这一举措甚至难倒」优秀的开发人员。例如,在word2000中,如下对话框中有一个选择框,当不对其做任何修改时再次打开对话框,该控件将消失。对比左右图片中的对话框。你发现什么控件消失了吗?Index and I atlesaE Ind and T nhl图hdat Tae or Crems I ae ofEr|Bt图pr PC aba业pHanns JEening 2REMTE 2Stade 3.HAidar 2HeadsP Eghk dg pae numbersT-n k有的时候指定默认值需要先改变值的当前设定,然后将其设定为个不合理的值。这种连续的转换保让了再转换成其他可用的值前是经过设置默认值尝试输入变量的所有可用的字符集有的输入问题很简单,特别是当你使用了类似$,%,#,引号等等字符付,这些字符在许多编程语言中有特姝意义并且作为输入被读入时通常需要特姝处理。如果廾发人员未考虑这种情况,则这些输入可能导致程序的失败。通过改变输入内容的多少引发输出区域的改变聚焦丁输出木身是一神发现bug颇有成效但是极少使用的方法。其思想是:先假定一种表现为bug的输出或者行为,然后寻找能够导致这种现场产生的输入。以上所述的一个简单的攻击例子就是通过改变输入值和输入字符串的长度来引发输出区域大小的重新计算。个很好的概念性例子是将时钟的时间设置为9:59,然后等待它转到10:00。一开始显示区域是4个字符长度而后来是5。反过来,我们设定时间为12:59(5个字符),然后等待其转变为1:00(4个字符)。开发人员通常只会对初始化为空白的情况进行处理而不曾考虑到显小区域己有数据的情况下如何史新该区域以显小不同长度的数据。举个例子, PowerPoint中的“艺术字”功能中有个有趣的bug。假定我们输入下图中的个长的字符串可以发现因为字符串太长,并不是整个字符串都能显小出来。但这不是问题的关键。点击确认按钮时触发两个事件。首先,程序计算岀需要的输岀区域大小,然后将输入的文字填充进去。现在,我们编辑该字符串,将它改为单个字符。可以发现尽管现在只有单个字符,字体大小也没有改变,但显小区域大小却没有发生改变。进一步看。如果冉次编辑该字符串为多行的字符串,输出结果更有意思、。E Microsoft PowerPoint-[Presentotion1I回E= Fdit iAv Tns+ Form=t工 hls li smw inimw Henl可x回的品“口27%-2⊥□ ATTENTONMicrosoft InterJob interviewsCareerGo to room 210ae for all god mene come to the aid回 Eile Edit iaw Insert Forst Tools Slide show MA. in+y出1型x」10ATTENTIONob interviewsheld in Career seGo to room 20Keuper BldgC Microsoft Powerpoint [PresentationalUJEil- Edit yiw Insert For mat Inns Slide Show Mlinrnw Hen回x当鹛5x:+兽当2791 ATTENT工ONMicrosoft internheld in Career seGo to roomKeuper Bld一分也Aa的≡我悲这部分凵经介绍得比较清楚了,我们将进入卜一部分确保对显示区域的边界的检査。这是基于输出的另一种攻击思路,与之前的|分类似。然而,不同于之前着力」导致显区域内部出错,这次我们将精力集中在显示区域的外部。并且显示区域将不再重新计算显示边芥而仅仅是考虑边界溢出。再以 Power Poin为例,我们可以先画一个文木框,然后输入一个带上标的字符串。放大该字符串的宇体使上标的上半部分被截断。这一问题将连同之后的相关问题一起说明。引发屏幕刷新问题。这是使用 windows图形用户界面的用户会遇到的主要问题。对开发人员来说,史是个大问题:过度的刷新将导致程序变慢,而不刷新又会导致大大小小的问题,小至要求用户强制刷新,大到导致用户的操作失败通常通过在屏幕上添加、删除和移动元素来触发血刷新。这将导致背景車新绘制,如果贞面不能正确、及时地作出相应,那么这就是通常意义上的bug。其中,尝试变化所移动的元素的距离是一种较好的方式,可以移动一点点,接着移动一大截,移动一两次,接着移动很多次接着说回上面例子中的带上标的字符串,试着每次用鼠标拖动它移动一些距离,就会发现令人讨厌的问题,如下图所示。在 Office2000中→4引丝常出现的另一个与L口 ATTENIIONMcr。 tk Intern屏幕刷新相关的问题lob interview arheld in Cae se是文本的异常消失。Go to noon 21025Keuper Bdg这一讨厌的问题在word的页面边界附近4出现。Click to add notes输入值组合攻击口的rcm如南哪、、口四面、,凸,画■翻第二类输入/输出Side S 0f 6Bur Desnbug主要针对多个共同作用或相互影响的输入。例如,一个通过两个参数调用的API,其中一个参数的取值建立在另一个参数取值的基础上。通常,bug正是出在值组合上,因为代码的逻辑关系复张。找出不能共存的输入值的组合。那么哪些值的组合是有问题的?这个问题目前还处于积极研究中,但是我们已经找到了一个特别有效地方法,那就是先确定期望获得的输岀,然后试着去找到对应的输入值的组合。尝试产生无效的输出。这是一种适用于测试人员对问题域十分清楚的有效攻击方法。例如,当你在测试一个计算器并且清楚部分功能点的结果有限制时,试图找到超岀范围的结果所对应的输入值组合是值得的。但是,如果你不熟悉数学,那么这种努力很可能是浪费时间一一你甚至可能将一个不正确的结果当成正确的。有时候 windows木身会给出提示,告诉你哪些输入是相互关联的。此时,测试人员可以去测试这些值的范围,并且尝试触犯既定的关系。输入序列攻击软件中的输入就像一种止式的语言。单一的输入相当」组成语言的字母,输入的字符串类似构成语言的句子。其中一些句」应该通过控件和输入区域的启用与禁用被过滤。通过尽可能多地输入字符串、改变输入的顺序来测试这种问题选择导致无效输出的输入序列。和上文描述这是一种找到问题输入组合的好方法一样,这同样是找出有问题的输入序列的好方法。例如,当我们发现∫Oice2000中的一个导致文本消失的问题后,对 Power point幻灯片中标题文本框进行攻击。如下的一组屏幕截图冉现∫一个特定的输入序列是如何导致文本消失的。正回国wFE和 Eai swa. wart Frat m ao sty oran阳 mrt ma Dect ilt sow如mhDdF)…gB5:h1感 ATTLATI0H1b粪 ITtNTION1直 ITHNTIONMicosofT I nterMicrosoft Imt把MIcroset IotelCxn caosATHENTIONGo tD roMm 2门rNGatD fosT丑Micros af lrtenigveeKHr段hMirswios bereitKere EdCm取曰BD日要!比 b and ncosr宝tams7m· R6 anime)s□42正△=a面口日压=日日2▲·=量有趣的是仅仅将文本框旋转180度并不能发现这个bug。必须按照这样的操作顺序:旋转180度后,再旋转10度(或者更多)。逆向执行以上操作并不能修正这一问题,每当点山标题外部区域,该标题内容就会消失。改变输入的顺序之所以善于发现bug是因为很多操作自身成功执行的同时会遗留很多问题,它们将导致之后的操作失败。对输入序列进行彻底的检査会暴露出很多这样的问题。然而有时侯,下面这种攻击表明:为了发现bug,根本不需要使用多种多样的输入序列多次重复同样的输入序列。这种方式会对资源造成大规模占用,并且对存储数据空间造成压力,当然也包括发现其他负面的遗留问题。遗憾的是,大多数应用程序并不清楚自身空间和时间的限制,而许多开发人员倾向于假定资源总是足够可用的。在Word的公式编辑器中可以找到这方面的一个例子,程序本身似乎并不清楚它只能处理10层嵌套括号的计算数据攻击数据是软件的命脉;如果你设法破坏了它,那么程序将不得不使用被破坏的数据,这之后得到的就不是合理的结果。所以理解数据是如何、在何处建立是必要的从本质上讲,数据的存储是通过读取输入,然后将其存储在內部或者存储一些內部计算的结果来实现的。因此,测试正是通过提供输入和执行计算来实现数据在应用程序中的传递数据攻击遵循以下简单原则。数据攻击变量值攻击1存储不正确的数据类型2使数据值超过允许的范围数据单元大小攻击3.溢出输入缓冲区4存储过多的值5存储太少的值数据访问攻击6找出同一数据的不同修改方式变量值攻击这一类的攻击需憂对内韶存储的数据对象的数据类型和合法值进行检查。如果有对源码的权限则这些信息可以轻易得到,但是,通过小小的探索性测试和对错误信息的关注也可以确定人致的类型信息。改变输入的数据类型来找出不匹配的类型。在需要整数的区域输入字符(和类似的攻击)已经被证明十分有效,但随着现代编程语言对类型检查和类型转换的处理变得容易,我们发现这样的攻击相对之前已经不再那么有效使数据值超过允许的范围。被存储的变量数据和输入的变量数据一样,这样的攻击方式同样适用数据单元大小攻击第二类数据攻击旨在蝕发数据结构的溢出和下溢。换句话说。攻击试图打破预先设定的数据对象的大小限制。首先要说的就是典型的缓冲区溢出。溢出输入缓冲区。此处通过输入长字符串导致输入缓冲区溢出。这是黑客们偏好的攻击方式,因为有时候应用程序在崩溃之后会继续执行进程。若一名黑客将一段可执行代码附在一个长字符串中输入,程序很可能执行这段代码在Word2000的一个缓冲区溢出问题就是这样一个可被利用的bg,此bug被发现在査找/替换玏能中,如下所示。有趣的是,“查找”这一字段被合理地加以限制而“替換”没有正出面同一数据结构存储过多的值。复杂地数据结构诸如数组、矩阵和列表在测试中不仅仅要考虑存储8在其中的数值,还要考虑存储值的数目。同一数据结构存储过少的值。当数据结4正A日国重构允许增加和删除信息时,通常在做了n-1次增加的同时穿插着或在其之后做n次删除操作会导致攻击成功。数据访问攻击我的朋友 Alan Jorgensen喜欢用“右手不明左手所为”这句话来形容这一类bug。道理很简单,但开发人员却常倒在这一类攻击下:在很多程序中通常任何任务都能通过多种途径完成。对测试人员来说,这意味着同一个函数可以由多个入口来调用,这些入口都必须确保该函数的初始条件得到满足。个极好的例子是我的学生在 PowerPoint中发现的表格数据大小相关的崩溃性bug。创建表格时最大尺寸被限定为25×25。然而,可以创建一个25×25的表格,然后为其添加行和列——导致应用程序崩溃。这就是说,程序一方面不允许26×26的表格存在而另一方面却并不清楚这个规则的存在。运算攻击运算攻击操作数攻击使用非法操作数进行运算找出非法操作数组合结果攻士使运算结果过大使运算结果过小功能相互作用攻击找出共亨数据不佳的功能操作数攻击这类攻击需要知道在一个或史多内部运算中操作数的数据类型和可用的值。如果有源码权限则这些信息可以轻易获得。否则,测试人员必须尽最大努力去弄清楚正在进行的运算只体是什么、使用的是什么数据类型。触发由非法操作数引起的运算。有时侯输入或存储的数据处于合法的范围之中,但是在某些运算类型中却是非法的。被0除就是一个很好的例子。0是一个合法的整数,但作为除法运算的除数却是非法的。找出不能共存的操作数的组合。涉及到一个以上操作数的运算不仅受制于上面的攻击,同时存在操作数冲突的可能性。结果攻击第二类运算攻击旨在造成存储运算结果的数据对象的溢出和下溢试图造成运算结果过大而存储失败。就算是简单如y=x+1这样的运算在数值边界上也常出问题。如果x和y都是2比特的整数并且ⅹ的值为32768,则这一运算将失败,因为结果将会造成存储溢出。试图造成运算结果过小而存储失败和上文相同,不同的是使用y=x-1并且使x的值为-32767功能相互作用攻击文章中讨论的这最后一类攻击或许算是所有种类的鼻祖,可以用来区分测试菜鸟和专业人员:功能的相互作用。问题没有什么新意:不同的应用程序功能共享同一数据空间。两种功能的相工作用导致应用程序失败,不是因为对数据处理的设定不同,就是因为产生了不良副作用但是哪些功能共享数据并且能够在冲突情况下实现数据转化口前还是测试领域中一个开放的问题。日前我们正停留在不断地尝试阶段。下面这个例子足以说明情况这个例子给出了在Word2000中的同一页面上合并注和双列时出现的一个出人意料的结果。问题在于:Word从注释的引用点计算脚注的页面宽度。所以,若同一页面上存在两条脚注,一条被处于双列位置的内容所引用,另一条则被处于单列位置的内容所引用,单列脚注公将双列脚注挤到下一页面。同时被挤掉的还有引用点至页面底部间的文本。三萨三下面的屏幕截图形象地说明」问题。第二列的文木去哪里∫?连同脚如三签注一起处在n远aoh1M黑下一次你会任由文档像1=11 aata Ln1a回下111D这样显小吗?在找到解决方法(这意味着你得花时间去整理)前你将不得不忍受这一现状结论简单遍历—遍上面罗列的21种攻击策略叮以覆盖应用程序的大部分功能。事实上,施行次成功的攻击通常意味着尝试各种可能性,走过很多死胡同。但是仅仅因为部分这一类探索性方法发现不了bug并不意味着它们没有用。首先,这段吋间使用应用程序帮助测试人员熟悉程序的各种功能,从而产生新的攻击思路。其次,测试通过是好的消息!它们表明,品是可靠的:尤其当这组测试是上面所说的恶意攻击。如果代码可以承受这样的测试过程,它儿乎可以应对用户作出的任何操作。另外,永远不要低估了测试时怀揣一个具体目标的作用。我见过太多测试人员把时间浪费在亳无目的地输入或者随机地调用API试图导致软件出错。实行测试意味着制定明确的目标一一基丁会出错的点—一然后设计测试用例来实践该目标。这样,每个测试用例都有目的泩并且进度可以被随时控制。最后,记住,测试应该是有趣的。攻击这一比喻正是对测试的这一特性很好的诠释并且还为愉快的消遣时光添加∫些许作料。狩猎愉快
- 2020-12-09下载
- 积分:1