-
k60中文数据手册
呕心沥血找到的,k60的很全的数据手册了,20兆~K6OP144M100SF2RM. pdfK60 Sub-Family Reference Manual, Rev. 6, Nov 2011第一章关于本文档1.1概述1.1.1目的夲文档描述了飞思卡尔K60系列微控制器的特征、结构和编稈方法1.1.2读者本文档上要是面向即将或者是已经使用K60开发系统的系统设计工程师和软什应用开发者。1.2习惯性约定1.2.1编号制度下的下标标志着不冋的编号系统下标标识b二进制的数字:例如十进制5用二进制表示为101b。某些情况下二走制数字也是用前缀0b来表小进制数字:一般在容易混淆的地方才会便用这个下标。一般情况下,十进制数字不使用下标h六进制数字:例如|进制60用|六进制3Ch来表示。茉些情况下,十六进制也使用前缀0X来表示。1.2.2标识符号本文件使用一下标识符号举例说明placeholder. x斜体的项H是为您提供的占位符的信息。斜体文字也用于出版物的标题和强调。纯小写字母也被用来作为单一的字母和数字的占位符。coae固定宽度的类型表示必须严格按照显示的文本进行输入。它用于指令助记符,指令,标示符,子命令,参数,和运算符。固定宽度的类型乜可用于示例代码。指令助记符和命令在文本和表格中仝部使用大与,例如:BSR。SRISCM]括号中的助记待表示寄存器某个字段的命名,例如SR寄存器的SCM位(段)。REVNOL6: 4, XAD[7: 0]括号内使用冒号隔开的数字表示●寄仔器某个命名字段:例如 REVNO6:4」表示REVNO寄存器的06位。●单个总线的信号范围:例如XAD7:0表示XAD总线的0-7号位。EditbyiliE:soonli@qq.comK6OP144M100SF2RM. pdfK60 Sub-Family Reference Manual, Rev. 6, Nov 20111.2.3特殊说明卜列的词汇具有特妹的含义:术含义assert某个信号的状态如下所示置高时会被激活置低时会被激活deasserted某个信号的状态如下所示置高时会被禁止置低时会被禁止reserved个内存的空间,寄存器,或者区域是留作将来使用的,写入时会产生不可预料的结果EditbyiliE:soonli@qq.comK6OP144M100SF2RM. pdfK60 Sub-Family Reference Manual, Rev. 6, Nov 2011作者黑li源文件名称:K60P44M0SF2 RM. pdf源文件版本:K60 Sub-Family reference manual,Rev.6,Nov201目标文件版本:0.1最后编辑日期:2012.04.21.17.37修改说明:初稿,夲人水平有限,红色部分是在是没能直接翻译出来。汗,别笑我哈EditbyiliE:soonli@qq.comK6OP144M100SF2RM. pdfK60 Sub-Family Reference Manual, Rev. 6, Nov 2011第二章引言2.1概述夲章概述了 Kinetis系列以及其中的K60系列,还对设备所涵盖的模块进行了概括描述。2.2K60系列引言K60微控制器系列具有以下性能:IEEE1588以太网,全速和高速USB2.00n-The-Go带改备充电探测,硬件加密和防窜改探测能力。肀富的模拟、通信、定时和控制外改从100LQFP封装256KB闪存开始可扩展到256 MAPBGA1MB闪存。大闪存的K60系列器件还可提供可选的单精度浮点单元、NAND內存控制器和DRAM控制器2.3功能模块分类器件按照功能分为不同的模块,下面的章节对每个功能模块有着史详细的描述。表格2-1功能模块分类模块描述ARM Rotex-M4内核32位 ARM Crotex-M内核,只有DSP指令和单精度浮点运算单元,1.25DMIPS / MHZ,基于ARMv7结构,在某些系列中还包括16KB的数据/指令高速缓冲。系统模块系统集成控制模块电源管理和模式控制多种电源模式可供选择:运行、等待、停止和掉电模式低漏电流唤陧单元杂项控制单元交义开关内存保护单元内部总线直接内存访问(DM)控制器与复用器,增加可用的DMA请求外部看门狗存储内部存储器包括程序存储器FlexNvMFlexRAM可编程 FLASH编程加速内存SRAM外部存储和设备控制总线接口: FlexBus串行可编程接口: EzPortNAND flash控制器时钟可选的多个时钟源:包括内部时钟和外部时钟为系统提供系统时钟的振蕩器EditbyiliE:soonli@qq.comK6OP144M100SF2RM. pdfK60 Sub-Family Reference Manual, Rev. 6, Nov 2011为实时时钟提供时钟源的振荡器加CRC模块硬件加窣和随机数发牛器模拟集成可编程放大增益的高速AD转换器模拟比较器DA转换器内部参老电压定时器可编程延时模块柔性定时器周期性中断定时器低功耗定时器载波调制定时器实时时钟通信以太网MAC控制器支持IEEE1588协议USB0TG内嵌全速/低速PHYUSB支持设备充电检测功能USB自带电压调节功能髙速USB控制器UPI接凵CANSPI12CUARTSD主机控制器人机界面GPIO硬件电容触摸屏接口2.3.1 Rotex-M4內核模块器件内包含以下核心模块表格2-2核心模块模块描述ARM Cortex M4ARM Cortex内核是最新的 Cortex系列处理器主要针对成本敏感、目标确定性、中断驱动的应用而推出的Cortex M内核是基于ARMv7构架,: Thumb-21SA了集兼容 Cortex w3、 Cortex m1和 Cortex mo核心Cortex M4改进包括增加了ARMv7 Thumb2DSP(与ARMv7A/R构架相兼容的),32位SIMD指令(单指令多数据饱和运算指令中断控制器(NVIC)ARM7-M构架的异常和中断处理器(NVIC)使用可重新定位的中断向量表,支持多个可配置优先级的外部中断和个不可屏版中断EditbyiliE:soonli@qq.comK6OP144M100SF2RM. pdfK60 Sub-Family Reference Manual, Rev. 6, Nov 2011重映射寄存器简化了编程难度,中断控制单元包含着中断函数的地址,相应的中断程序地址通过指令总线在中断向量表中杏找获得。前十六个入口分配给内核的内部中断,剩下的由外围器件使用。异步唤醒中断控制器(AWIC)在停止模式下,异步唤酲中断控制器檢测异步唤醒事件,并向时钟控制单元发送信号来唤醒系统时钟。当系统时钟启动后,中断控制器开始检测中断,进行常规中断和事件的处理。调试接冂绝大部分器件的调试部分都是基于AM的 CoreSight构架,此构架提供了四个调试接口°IEEE1149.1JTAGIEEE 1149. 7 JTAG (CJTAGrial Wire debug (SWD)ARM Real-time Trace nterface2.3.2系统模块器件内包含以卜系统模块表2-2系统模块模块描述系统集成控制模块(S)系统集成控制模块实现部分模块的·些基本的配置功能系统控制模块(SMC)系统控制模控制和保护系统在各个电源模式的切换,控制电源管毘模块(Pλ),在电源切换时复位整个系统。电源管珥模块(PMO)电源箮理单元提供多种电源模式。不同的电源模式可以为使用者提供最佳的功耗模式。包括上电复位,可编程阀值的掉电检测。低漏唤醒单元L)低漏唤醒单元支持多种内部/外部唤醒模式杂项控制模块(MCM设置嵌入式跟踪调试单元交叉开关(XBS)交叉开关连接着主机总线和外围器件总线,他能实现总线上所有的主机访问任意的从机,在不同的主机访问相同的从机时提供优先级仲裁内存保护单元(MPU提供内存保护和任务隔离功能,并监视总线上主机和从机的通信外围设备总线根据交义开关的配置,位大部分外国器件的存取提供接口。DMA复用器( DMAMUXDMA复用器在众多的DMA请求中,挑选出16个传递给DMA控制器内存直接读取控制器(DMA)外部看门狗监视器EWM软件看门狗(WDOG)EditbyiliE:soonli@qq.comK6OP144M100SF2RM. pdfK60 Sub-Family Reference Manual, Rev. 6, Nov 20112.3.3存储和存储接囗器件包含以下的存储器和存储接口表格2-4存储和存储接口模块描述闪存( Flash memory)程序存储区,可执行代码的非易失存储器FlexMemory:包含以下类聖的存储器LexNvm:非易失存储器,可是存放可执行代码,数据或者是模拟 EEPROMFlexray:随机读取寄存器,可以用作传统的RAM,也可用作扃耐写的 EEPROM或者是加速闪存编程编程闪存:编程加速RAM,用于加速 Flash编程。闪存控制器管片上和外围的存储模块的接∏(Flash memory controller)随机动态存储器(SRAM)内部的RAM,一部分RAM在低漏模式下仍能保持供电。随机动态存储器控制器管珥核心和外设存取系统RAM。(SRAM controller)系统寄存器块32位的寄存器,在VDD供电的听有电源模式下都可以访问BAT寄存器块32位的寄存器,在VBAT供电的所有电源模式下都可以访可编程串行接口( EzPort)和业界标准的SPI闪存使用相同的的串行接口,命令集为其子集。能够读、擦除和编程闪存闪存编程后用复位命令重启系统FlexBus六个独立的、可由用户设置的片选信号,可以与外部SRAM、PROM、 EPROM、 EEPROM、闪存和其他外设无缝接∏8位、16位和32位数据总线宽度,提供复用或非复用的地址和数据总线的配置2.3.4时钟器件包含以下的时钟模块表2-5时钟模块模块描述多时钟发生器(MG)提供多个时钟源包括锁相环-压控振荡器锁频环-数控振荡器内部参考时钟可以为其他片上外设提供时钟系统时钟振荡器系统振荡器,在与外部晶体或谐振器的结合EditbyiliE:soonli@qq.comK6OP144M100SF2RM. pdfK60 Sub-Family Reference Manual, Rev. 6, Nov 2011为MCU产一个参考时钟实时时钟振荡器独立电源供电的实时时钟振荡器提供一个32KHZ时钟信号,当然他也可以用作主振荡器为系统提供时钟信号。2.3.5安全和完整性模块器件包含以下的安全和完整新模块表26安全和完整性模块模块描述加密加速单元(CAU)支持DES、3DFS、AES、MD5、SHA-1和SHA-256算法简单的C调用飞思卡尔优化后的加密函数随机数4成器(RNG)支持数字签名标准中定义的密钥牛成算法(参考http://www.itl.nistgov/fipspubs/fip186.htm)集成的熵源能够为RNGB提供熵,以获取种子冗余循环校验(CRC)采用16位或32位移位寄存器的CRC发生器电路16/32位CRC用户可配置可编程的生成器多项式·误码检测功能可以检测所有单、刈、奇误码及大多数多位误码可编程的初始种子值高速CRC计算通过转置寄存器转置输入数据和CRC结果,此为可选特性,用于某些字节是⊥sb格式的应用2.3.6模拟外设器件包含以下的模拟模块表2-7模拟模块模块描述16位具有可编程增益功能的ADC16位的逐次逼近型ADC,具有可编程增益功模拟比较器全电压蒞闱内比较两个模拟输入信号6位的DAC64抽头的梯形电阻网络,向需要电压基准的应用提供基准12位的DAC低电压通用型DAC,可以输出到外部引脚,也作为一个模拟比较或者是ADC的输入。电压参考(VRF可配置的修止寄存器,以0.5m为单位递增,在复位后自动加载室内温度值。可以用于医疗,比如说血糖仪。为模拟外设或者是电压传感器提供参考电压。如ADC. DAC, CMP.EditbyiliE:soonli@qq.com
- 2020-12-06下载
- 积分:1
-
用粒子群算法优化支持向量机的matlab程序
用粒子群算法优化支持向量机的matlab程序,简单易学,适合matlab初学者
- 2021-05-06下载
- 积分:1
-
MATLAB有限元结构动力学分析与工程应用
【实例简介】徐斌编写的《MATLAB有限元结构动力学分析与工程应用》随书Matlab源代码。
本书共8章,系统地阐述了基于有限元和MATLAB软件的结构动力学计算和它在工程数值仿真中的应用,包括有限元的基本方法和步骤、结构的动力特性和响应分析、单元的质量矩阵和刚度矩阵的建立及典型结构的动力学分析、工程应用和数值仿真等内容。
- 2021-11-14 00:40:31下载
- 积分:1
-
计算图像对比度
用MATLAB计算图像对比度的程序。包括4邻域和8邻域两种方法。还有计算对比度的算法文档。
- 2020-11-30下载
- 积分:1
-
人工神经网络及其应用实例(含代码)
通过实例对人工神经网络的实际应用进行分析和讲解,清晰的代码一目了然每神经元有许多输入、输出键,各神经元之间以连接键(又称突触)相连,它决定神经元之间的连接强度(突触强度)和性质(兴奋或抑制),即决定神经元间相互作用的强弱和正负,共有三种类型:兴奋型连接、抑制型连接、无连接。这样,个神经元(一般很大)构成一个相互影响的复杂网终系统,通过调整网络参数,可使人工神经网络具有所需要的特定功能,即学习、训练或自组织过程。一个简单的人工神经网络结构图如下所示:上图中,左侧为输入层(输入层的神经元个数由输入的维度决定),右侧为输出层(输出层的神经元个数由输出的维度决定),输入层与输出层之间即为隐层。输入层节点上的神经元接收外部环境的输入模式,并由它传递给相连隐层上的各个神经元。隐层是神经元网络的内部处理层,这些神经元在网络内部构成中间层,不直接与外部输入、输出打交道。人工经网络所具有的模式变换能力主要体现在隐层的神经元上。输出层用于产生神经网络的输出模式。多层神经网络结构中有代表性的有前向网络(BP网络)模型Page 3 of 25多层侧抑制神经网络模型和带有反馈的多层神经网络模型等。本文主要探讨前向网络模型多层前向神经网络不具有侧扣制和反馈的连接方式,即不其有本层之间或指向前一层的连接弧,只有指向下一层的连接弧。代表是BP神经网终:输入模式由输入层进入网终,经中间各隐层的顺序变换,最后由输出层产生一个输出模式,如下图所示:输入层隐层输出层多层前向神经网终由隐层神经元的非线性处理衍生它的能力,这个任务的关键在于将神经元的加权输入非线性转换成一个输出的非线性激励函数。下图给出了一个接收个输入的神经元:Page 4 of 25神经元的输出由下式给出:这里输入的加权和(括号内部分)由一个非线性函数传递,表示与偏差输入相关的权值,表示与第个输入相关的权值。使用最广泛的函数是S形函数,其曲线家族包括对数函数和双曲正切函数,这些都可用来对人口动态系统、经济学系统等建模。另外所用的其他函数有高斯函数、正弦函数、反正切函数,在此不一一展开介绍,本文主要使用的激励函数是对数函数,函数表达式为函数曲线如下图所示对于有限输入量,对数函数输出范围为∈。在输入为=时,输出值为中问值输出在—附近随着输入的增加以相对快的Page 5 of 25速率增加并非常慢地到达上限。对于
- 2020-11-07下载
- 积分:1
-
aurora+micro-miktex+keygen+安装说明
aurora+micro-miktex+keygen+安装说明
- 2020-12-08下载
- 积分:1
-
C++实现的改进遗传算法
改进遗传算法的C++实现。种群初始化采用联赛竞争,保证种群基因优良;轮盘赌选择略有改进;交叉变异概率自适应,相比固定的概率效果提升极为明显。变异步长自适应,避免固定步长找不到最优解的风险。用复杂变态多峰函数测试效果十分不错,相比二进制编码遗传算法精度优势明显。
- 2020-12-11下载
- 积分:1
-
ADRC自抗扰控制simulink仿真程序
ADRC自抗扰控制simulink仿真程序,包含simulink仿真框图及代码,可以运行。
- 2020-06-19下载
- 积分: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
-
BMP图像信息隐藏 解读
该软件可实现BMP图像的一些信息隐藏,并可以解读
- 2021-05-07下载
- 积分:1