紧急!新冠突杀回马枪,转向由欧美直扑亚洲,全球增速前5名都是中国邻居,更糟糕的消息也来了!

请点击上面  免费订阅本账号!

问题:怎么才能每天都收到这种文章呢??

答案:点击手指上方的蓝色字体再点击关注即可!


来源:环球看热点

世界疫情继续疯狂蔓延,一日确诊83万,而印度独占了39万。


让人触目惊心的是,

目前全球病例增速最快的前五名全是亚洲国家,并且全都是在中国旁边,他们分别是老挝、柬埔寨、东帝汶、蒙古、泰国。

 

而印度的另一个邻国孟加拉国感染数据也是百倍的速度暴增,如今,该国更是已经封锁数据,



3.4.2建立监理程序和行政管理体系。3.4.3  初,郑武公娶于申数字文化创意产业以科学技术和文化艺术为输入,以经济价值和文化影响为输出,是驾驭数字技术的创意内容业和创意制造业的总称,“十三五”时期首次被列为国家战略性新兴产业,为我国产业转型升级、数字经济繁荣发展发挥了重要作用。但同时信息与网络安全也面临着前所未有的严峻问题,网络安全领域所面临的挑战日益严峻,网络安全问题也日益被人们重视。通常意义上的网络安全的最大威胁是软件程序上的漏洞,程序漏洞检测方法主要分为静态分析方法和运行时的检测方法。静态分析方法主要用静态检测工具对程序源代码进行扫描分析,存在很高的漏报率和误报率;运行时检测方法需要运行被测程序,其检测依赖外部环境和测试用例,具有一定的不确定性。面对以上问题,人们越来越深刻地意识到软件安全的重要性,从20世纪90年代开始,研究人员就开始对计算机系统的安全漏洞进行研究,其中缓冲区溢出漏洞及如何利用缓冲区溢出漏洞进行攻击是研究得最广泛和最有深度的;另外研究人员还开发出IDS(入侵检测系统)与IPS(入侵防御系统)等来检测和防御攻击者的恶意攻击,以及针对缓冲区溢出主要发生地堆和栈技术的研究等。21世纪初,研究人员开始把重点放在研究软件安全漏洞的发现方法上,采取的主要方法是借用自动化或半自动化的工具作为辅助,其中辅助工具使用的技术大致包括指针别名分析,词法分析,语义分析,类型分析,模型匹配,代码注入及动态监测与跟踪等等;这些技术相对于早期传统的用于软件错误查找的标准程序分析技术、编译器优化以及软件安全漏洞的检测要求要更加复杂。直到今天,对软件安全漏洞的定义、分类、特点及检测方法都还没有形成统一的标准和公认的结论。针对某一种类型的软件安全漏洞,研究人员需要进行大量的重复性的分析工作,而且在分析上还要求分析人员具有大量的实验经验,这就造成软件安全漏洞的检测在效率和效果上具有一定的局限性[5]。因此,如何提高漏洞检测的效率和准确率已成为现在研究的重点,即如何设计和利用自动化、半自动化的辅助工具,以及如何更有效的利用各种分析技术来高效、快速、准确的检测出软件中的安全漏洞已经成为热点和难点,而这些技术对软件的安全都具有很强的实用价值和重大的研究意义。(一)研究现状 最近几年,计算机系统与网络安全已经成为人们研究的热点,与此同时,人们也越来越多地关注计算机系统的安全漏洞检测,对这些漏洞提前检测,以降低软件安全漏洞带来的危害。严格意义上来说,解决软件安全漏洞最根本的方法是编写安全的代码,但在短时间内这种方法是不可行的,所以目前业界对软件安全漏洞的检测重点是放在高效、准确的检测研究方向上。在国内,网络安全焦点(xfocus)、绿盟科技、启明星辰和CCERT(中国教育和科研计算机网紧急响应组)等是国内安全研究机构的代表,并且维护了自己的漏洞数据库。xfocus一年一次的xcon大会被誉为国内最顶级的探讨安全问题的大会。在2007年的xcon大会上就有关于软件安全漏洞的议题,比如夏超的二进制环境下的缓冲区溢出漏洞动态挖掘技术。2008年的xcon会议上也出现了关于软件安全的探讨,比如Flashsky的高级Windbg图形插件辅助堆溢出分析,AlexanderSotirov的绕过WindowsVista浏览器内存保护。绿盟科技是发布自主研究安全漏洞最多的国内安全公司,己经完成对RPC、SMB、IIS等多类漏洞的研究,并取得了不错的成绩。另外,看雪论坛也是国内软件安全研究人员聚集的一个讨论圈。目前软件安全漏洞的检测技术包括静态分析检测技术、动态检测技术和动静结合的检测技术。静态检测技术是利用二进制比对技术、词法分析、形式化验证技术或者手工测试技术,对被测程序的源程序或二进制代码进行扫描,然后从语法、语义上理解程序的行为,并分析程序的特征,找出可能导致程序异常的漏洞。这类技术具有简单高效自动化的优势,但只是对代码本身的特征进行检查,不能很好检测出漏洞间复杂的逻辑关联,并且存在大量的误报和漏报;动态检测技术是通过自动化生成测试数据,以仿真攻击应用程序来判断是否存在漏洞,主要手段是利用各种输入对程序进行探测,并分析程序运行环境等。这类技术效率不如静态分析检测技术,但它能准确的定位漏洞。动静结合的检测技术是先使用静态检测技术对程序进行分析得到程序内部特征,从而筛选测试数据集以指导下一轮的动态测试。目前还没出现自动化原型系统,需要结合手工进行分析,而且需要分析人员具有丰富的经验及很强的分析能力。(二)研究内容及目标 本项目研究对象是软件安全漏洞的检测,首先需要对软件安全漏洞的定义和常见类型进行分析后,从代码实例出发对常见的缓冲区溢出漏洞、格式化字符串漏洞、整数溢出漏洞和内存泄露的原理进行分析与研究。然后针对这些常见的软件安全漏洞存在的检测方法进行研究,找出这些方法的共性与特点,总结它们的优点和缺点,在此基础上提出自己的改进方法。本项目针对静态检测技术中各种源代码静态扫描工具存在的误报和漏报问题,提出了一种数字文化创意软件开发综合检测分析软件的开发方案,该方案是对软件安全缺陷漏洞进行综合处理,达到在仅有软件源代码的情况下,通过多层次的综合检测,有效地发现软件中的安全性缺陷漏洞。具体目标是实现一个可扩展的源代码静态分析..,采用具体方法是通过集成多种不同技术类型的源代码扫描工具对软件程序源代码进行多层次的综合性扫描检测,将检测的结果以标准化的格式插入到数据库中,然后对数据库中的数据进行综合分析,最终将综合分析的结果以图形化的形式直观的显示出来。该..具体目标能够方便分析人员根据输出结果快速的返回到源代码中进行下一步的分析,并且该..在误报率和漏报率上,需要比单一的源代码静态扫描工具低,同时该..还需要具有效率高,实用性强,可移植,性能好的特点。二、软件安全漏洞分析 按照各种不同的方式,我们也可以把漏洞分成很多类型,通过分类我们能够更好的找出漏洞间的共性,对漏洞的检测也会更有针对性。本项目根据漏洞产生的原理,把漏洞主要分成缓冲区溢出漏洞、格式化字符串漏洞、整数溢出漏洞和内存泄露,下面将对这些漏洞进行详细分析。(一)缓冲区溢出漏洞 近年来,由缓冲区溢出漏洞而产生的安全问题层出不穷,在业界,针对缓冲区溢出的研究也有了很大的发展。引起缓冲区溢出漏洞的主要原因是开发人员在程序中使用了不安全的库函数或API函数,由于这些不安全函数自身没有边界检查,常常在数组的赋值、拷贝或指针的访问时会产生越界问题。在操作系统中,内存被分配给一个进程作为执行的区域,这些区域可以按照功能大致划分为数据区、代码区、堆区、栈区四个部分。如下图所示:进程的全局变量存储在数据区;进程的执行是通过cpu去取进程的二进制机器代码指令,而这些二进制机器代码就存放在代码区;进程需要动态申请内存空间时,可以由堆区提供,并且这部分空间在进程结束时才会返还给堆区;进程在函数调用时,会动态的去栈区申请一段内存,函数调用结束时,进程又会将申请的这段内存返回给栈区,以保证被调用函数返回时能够恢复到母函数中继续执行。在windows..上,程序用高级语言编写完后,通过编译器编译链接,最后生成PE可执行文件,加载PE文件,运行后即形成了进程。如下图所示:如上图所示,每一个函数都有属于自己的栈空间,WIN32系统是通过两个指针寄存器即ESP(extendedstackpointer)和EBP(extendedbasepointer)来标识内存的内存空间为当前栈帧的;而存在于栈帧最顶端即为正在运行的函数;寄存器ESP,即栈指针寄存器,它的内存里存放的是一个指针,总是指向WIN系统栈的最上面那个栈帧的栈顶;另一个寄存器EBP,称为基址指针寄存器,它的内存里存放的也是一个指针,总是指向WIN系统的最上面那个栈顶的底部;当前栈帧就是由ESP和EBP标志的,两者之间的内存空间也正好就是当前栈帧。栈是一种特殊的线性表,跟队列不同的是它只允许在表的同一端进行插入和删除操作;进行插入和删除操作的一端称为栈顶(top),另一端则称为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈;插入称为进栈(PUSH),删除则称为出栈(POP);因此栈也称为先进后出表。下图为栈的模型:通常情况下,函数栈帧含有以下几类重要信息:(1)局部变量区域,存放函数局部变量的内存空间。(2)栈帧状态值,保存着上一栈帧的顶部和底部地址(实际上只保存上一栈帧的底部地址,上一栈帧的顶部可以由堆栈平衡计算出来),为了在当前栈帧被弹出堆栈后,恢复出上一个栈帧。(3)函数返回地址,即函数调用前的指令位置,保存着当前函数被调用前的“断点”信息,目的是为了在函数返回时能够恢复到函数被调用前的代码区中继续执行指令。(4)指令寄存器EIP,它的内存里放着一个指针,该指针总是指向下一条即将要执行的指令地址。函数调用时,大致步骤为:(1)stdcall调用规范下(本项目内容都是以该调用规范为前提),参数从右向左被依次压入栈中;(2)将返回地址压入栈中,返回地址存放了当前代码区调用指令的下一条指令的地址,以便被调用函数返回时能够继续执行调用函数;(3)代码区跳转,处理器从当前代码区跳转到被调用函数的入口处;(4)栈帧调整,EBP入栈即保存当前栈帧状态值,以备之后恢复本栈帧时使用;ESP值赋给EBP,将当前栈帧切换到新的栈帧,更新栈帧底部;然后ESP减去所需空间的大小,抬高栈顶,给新栈帧分配内存空间。(二)格式化字符串漏洞 格式化字符串(FormatString)漏洞在几年前被发现出来,是一类容易定位的漏洞,在现今的很多软件中也存在此类漏洞。*printf()系列函数是按照一定的格式输出数据,即格式化字符串,其中printf()是可以输出到标准输出,同样也可以输出到字符串,文件句柄等,这些输出对应的函数为fprintf,sprintf,snprintf,vprintf,vfprintf,vsprintf,vsnprintf等,格式化字符串漏洞就发生在这一系列的*printf()函数中,此类漏洞主要有三类:(1)参数个数不固定造成访问越界数据;(2)利用%n格式符写入跳转地址;(3)利用附加的格式符来控制跳转地址的内容。(三)整数溢出漏洞 整数溢出是非常普遍且不易被立即察觉到的漏洞。一个整数有一个固定的长度(32位),如果用一个整数变量去存储一个大于这个固定最大值时,将会导致一个整数溢出,从而可能导致其他类型的bugs,缓冲区溢出等。除了直接存储整数导致溢出外,还有其他如运算溢出、符号问题导致的缓冲区溢出。整数溢出与普通的漏洞差别是它们不能直接去改写内存或者直接改变程序的控制流程。大多数情况下,程序的计算结果与正确结果之间都有一定的偏差,所以在利用整数漏洞时需要我们更精巧的去设置数据。(四)内存泄露 在计算机行业,内存泄露(memoryleak)指由于疏忽或者错误造成程序未能释放已经不再使用的内存的情况。通常情况下,我们所说的内存泄漏问题指的是堆内存泄漏。堆内存是指程序运行时所需的内存从堆中分配的,大小任意(在程序运行中确定)的,使用完后必须显式释放的内存。应用程序一般使用malloc,calloc,realloc,new等函数从堆中分配一块内存,内存块使用完后,程序必须调用相应的free或delete释放该内存块,否则,该内存块就不能被再次使用,于是就产生了内存泄露。当函数GetStringFrom()返回零的时候,指针pc指向的内存就不会被释放。这是一种常见的发生内存泄漏的情形。程序在入口处分配内存,在出口处释放内存,但是c函数可以在任何地方退出,所以一旦有某个出口处没有释放应该释放的内存,就会发生内存泄漏。内存泄漏会使内存的数量不断减少,从而降低计算机的性能。更糟糕的是,过多的可用内存被分配掉后,将导致应用程序崩溃,或者全部或部分设备停止正常工作等。三、软件安全漏洞检测技术研究 (一)软件安全漏洞静态检测技术 静态检测技术主要针对程序源代码或者其二进制代码进行扫描,通过匹配相关代码使用的具体函数和系统调用的二进制数值,来发现漏洞。其基本的静态分析技巧包括:审核问题函数,如strcpy、strcat、sprintf、vsprontf、getwd、gets、realpath、fscanf、scanf、sscanf等函数的使用、审核动态内存分配例程,如malloc、VirtualAlloc返回的缓冲区的用法、审核如何处理通过recv、read、fgets和许多其他类似的函数接收的用户提交输入。而根据软件是否提供源代码的情况下,可以对该软件安全漏洞的静态检测技术分为两类:源代码静态扫描技术和二进制文件静态扫描技术。(二)源代码静态扫描技术 源代码静态扫描技术采用的方法是对源代码进行扫描和分析,从而判断出程序的结构、可能的运行时行为等,然后对漏洞发生的模式进行识别,最后通过相应的规则匹配来查找程序中潜在的软件安全漏洞。相应的出现了大量的源代码静态扫描工具,这些工具可以分为三类:编译时检测工具、源代码浏览工具和源代码自动审核工具。编译时检测工具,是与编译器集成在一起,在源代码编译时查找漏洞,但主要是查找与安全性有关的问题而不是应用程序的功能问题。MicrosoftVisualC++的/analyze编译选项即是一个例子。Microsoft还提供了PREfastforDrivers,它能够检测针对驱动程序开发的不同类型的漏洞,而编译器可能检测不到这些漏洞。该类工具只能在程序编译的情况下进行自动化检测。源代码浏览工具,是对程序源代码执行高级搜索,枚举代码,以及在代码的交叉引用位置之间进行导航,用于辅助人工检查的源代码扫描工具。如在源代码扫描中,用此类工具来定位strcpy函数出现的位置,辅助评审人员去识别可能的缓冲区溢出漏洞。该类工具不能识别出检测到的漏洞函数危险等级。源代码自动审核工具,是扫描源代码以及自动识别可能存在漏洞的关键区域。源代码自动审计工具能够理解编程语言的语法规则。它们检测由于特定函数导致的问题以及经常被误用的函数。这些审核工具采用的漏洞检测技术从最早的基于匹配字符串、分析词法,到语义分析,再到将数据挖掘技术与程序分析相结合的方法,静态分析技术不断地进步、发展与创新。按照其分析机理及功能的不同,常见的源代码自动审计工具可以分为以下几类,如下表所示:静态检测技术主要静态检测工具原理、功能及优缺点 词法分析Its4 Rats Flawfinder1、将源文件预处理为token流,然后将token流与库中的缺陷结构进行匹配;检查C/C++源程序中的可能错误和容易遭受弱点攻击的地方;2、内存相关,效率高,但分析不精确,漏洞覆盖率有限 类型推导CCuredESP CQual1、基于语义的分析方法,通过分析程序的数据流、控制流及函数调用关系等,可以检查C程序中字符串使用缺陷和锁缺陷。2、大部分内存相关,少量时序相关,能处理大规模程序,效率高,可检测漏洞有限,引入安全属性需重新定义类型。规则检测LCLintLintRacerX Splint Cppcheck1、利用程序员提供的注释来辅助程序分析;可以查找未初始化的变量信息、数组下标越界等缺陷问题。可以检测程序中存在的不匹配的内存单元分配,缓冲区溢出等问题;2、内存相关,时序相关,能根据不同规则对不同系统进行分析,大规模程序检测高效,受规则描述机制局限,只能分析特定类型漏洞,扩展性差。以上这些工具都有一个明显的弱点,即产生大量的误报和漏报。而评价静态分析工具好坏有两个重要指标[42]恰好就是误报率和漏报率:误报率(falsepositives):工具错误报出程序中原本不存在的安全问题的比 率;漏报率(falsenegatives):程序中含有安全性问题但工具还没有找出的比率;针对以上问题,我们可以采用一种基于多种静态检测工具的检测方法,即对多种工具的检测结果进行统计分析,有效地降低漏报率和误报率。(三)二进制文件分析技术 针对非开源的软件程序,同样有相应的自动审核工具,这些工具是通过对程序的二进制文件进行自动审核分析。其中应用最广泛的工具便是IDA反汇编工具,该工具是专用的二进制文件分析工具,它可以通过目标程序反汇编得到汇编代码,然后对汇编代码进行扫描,从而去识别可能存在的安全漏洞缺陷。IDA之所以被广泛应用,其中一个很重要的因素就是该工具可以识别程序的关键结构,它可以自动识别高级语言的关键结构,如new和delete操作符、函数的返回值、局部堆栈变量、文本与字符串、IF-THEN-ELSE条件语句等,从而进一步对目标程序进行分析。但是IDA反汇编工具采用的反汇编技术需要大量的人工分析,且具有很强的复杂性,因此其自动化程度也不会高。另外使用反汇编技术发展比较成熟的工具还有bugscan。该工具方法实现成功检测软件漏洞的关键在于能够对二进制文件进行反汇编和定位可能导致缓冲区溢出的弱函数。但它的弱点在于函数覆盖率具有一定的局限性,不能覆盖所有的可能导致缓冲区溢出的函数。二进制文件分析技术通过分析软件反汇编后的汇编代码,来发现软件中存在的安全漏洞。汇编代码不利于人的理解,这是不争的事实,但是,针对不公开源代码的软件进行漏洞的分析,只能以汇编代码为源代码。对汇编代码的理解深度就决定了软件安全漏洞分析工作的深度。静态分析技术的优点是,由于是从机器的角度去理解安全漏洞的机理,理解更深刻、更到位,对细节的把握也更加透彻。缺点在于软件反汇编后的汇编代码量巨大、结构复杂,即使是一个小型的应用程序产生的汇编代码其复杂性也不可小觑,对漏洞发生现场不易进行准确的定位。同时,由于汇编代码与机器码基本一一对应,晦涩难懂,对研究人员的技术能力和技术积累要求较高。(四)软件安全漏洞动态检测技术 软件安全漏洞的动态检测技术是通过对运行的软件进行动态调试来实现的,动态检测技术不需要查看程序的源代码,而是通过加载目标程序,使其运行起来,在运行的过程中去观察和分析程序的反汇编代码,查看程序执行了哪些指令以及内存的使用情况,堆栈的布局,寄存器值的变化等来发现软件的漏洞。软件安全漏洞动态检测技术方面目前有以下几类:运行时监测:对程序进行编译分析,在初步的分析结果中植入其他代码,然后运行程序,同时监测程序在运行时是否有产生分析结果中的问题,从而找出实际的安全漏洞,如在数组操作中,通过代码注入来检查数组下标的取值范围,从而可以在运行时发现数组越界的安全问题。信息流分析:与以上运行时监测一样,是在编译分析后注入代码,然后在程序运行时,监测那些不符合安全规范的信息流。程序模型检查:该方法是基于某种漏洞模型的检测,在程序运行时将其中违反模型中的安全规范的执行流程信息报告出来,而通常是借助现有的安全工具来发现程序漏洞。代码注入:在软件与用户交界时,在软件最有可能产生漏洞的地方输入错误代码,以触发漏洞,该技术常与动态跟踪调试技术结合使用。代码注入是根据动态调试得到的信息,在关键位置插入错误的代码,并以不影响原有程序的语义为前提;然后重新运行程序,观察程序运行状态,检查程序是否出现异常等。代码注入基本流程如下图所示:如上图,代码注入首先获得软件接口的数据类型,然后输入构造的“错误数据”,运行程序,观察其运行状态是否产生异常来判断软件是否存在安全漏洞。其中“错误数据”是指不改变输入数据的类型,而是通过构造异常、畸形的数据,如超长字符串,大整数等。输入“错误数据”后,如果软件运行异常,则可说明该软件存在相应的安全漏洞,从而进一步分析,查看该漏洞是否能够被成功利用。而有的软件设计了相应的安全策略,如拥有各种异常处理机制,则该软件在输入“错误数据”后将进入软件自身的异常处理机制中。与此同时出现了大量的动态检测工具,其中运用最广泛的是动态跟踪分析工具OllyDbg、SoftICE、TRW2000等,它们通过在动态的调试过程中观察程序的实际执行过程,了解软件的结构功能[57]o在本节中主要研究OllyDbg动态跟踪工具。该工具是用户级的调试器,功能强大,可以单步执行,设置内存断点,硬件断点,内存跟踪,查看程序执行到任意位置寄存器的数据、堆栈数据等,还具有很多插件功能,是主流的调试器之一,也是一款功能强大的反汇编工具。动态分析检测技术具有以下的优点和缺点。优点:1、针对性强:动态分析能够针对性的对软件程序进行检查,能够准确的确定被分析软件的相应功能或者模块的具体表现。比如,分析程序的输入输出,运行时寄存器的状态,内存分布情况,然后通过注入错误的代码检查程序的是否出现异常或错误等。2、准确率高:动态分析是通过运行被分析的程序,然后对程序运行状态进行检查,找出其中的程序错误,即程序的漏洞,能够非常准确的定位漏洞发生的具体位置。3、无需源代码:动态分析技术只需要运行程序,查看其功能是否正常,通过输入输出验证软件程序是否存在错误来查找程序漏洞。缺点:动态分析首先是对被分析软件程序运行时的状态进行预测,由于运行时的数据都是二进制信息,因此就需要熟悉目标程序,找出漏洞可能出现的位置,从而确定分析点。但要找到分析点是非常困难和复杂的。(五)动静结合检测技术 针对静态检测技术和动态检测技术都有明显的优缺点,可以将两种检测技术结合起来,取长补短,以提高软件漏洞的检测效率。这种方法的大概思想是:先用静态检测检测软件程序代码,得出可疑的漏洞位置;然后用动态检测技术验证那些可疑的漏洞。理论上,这种方法结合了两种检测技术的优点,但在实际中有很多问题难以解决。这就导致了动静结合的检测技术研究还处于理论上的研究,现在仍没有结合两种检测技术的原型系统出现。因此该方法需要以手工分析为前提。如下图所示,是一个动静结合的检测技术方案,这个方案首先通过IDA对软件程序的二进制文件进行分析,得出程序的控制流图和函数调用关系图,找出漏洞可能出现的位置,确定分析点;然后通过OllyDbg动态调试跟踪目标程序分析点的状态,找出相关信息;最后通过错误代码注入,确定该漏洞是否为程序真实的漏洞。如上图所示,这个检测方案主要是针对非开源的软件程序漏洞进行检测,非开源软件是指其源代码对用户是不开放的,因此只能通过扫描软件的二进制代码进行检测,用户借助IDA静态反汇编工具对软件程序的二进制文件进行静态分析,能够得到软件程序中的函数调用关系、控制流信息、断点列表、和交叉引用及软件的结构、功能等信息,这些信息都需要大量人工的参与,然后再通过人工经验分析这些信息找出软件程序可能出现漏洞的位置,确定分析点,为下面的动态跟踪模块做准备。动态跟踪分析是在动态的调试过程中观察程序的实际执行过程,得出软件的结构和功能。用户可以借助OllyDbg工具对软件程序进行动态跟踪,具体步骤是首先加载启动被分析软件程序的二进制可执行文件,然后根据前一节中静态分析的断点列表信息设置断点,结合函数调用关系图(FCG)和控制流图(CFG)等对程序的执行过程进行跟踪,同时记录程序执行的路径以及数据流信息,接着通过人工经验的分析,找到可疑的漏洞及漏洞可能产生的原因,最后通过注入相应的错误代码来触发漏洞,以是否发生异常来判断该可疑的漏洞是否为真实的漏洞。四、..总体设计 (一)..总体功能与特点 基于以上所描述的工作原理,本项目设计了一个自动化的检测..,即源代码静态分析..,这个..主要是对开源的软件程序源代码的漏洞进行检测。..的具有预处理,数据综合分析和结果展示三个功能。其中预处理是通过各种源代码静态扫描工具对程序源代码进行多层次的扫描检测,然后对检测结果进行数据综合分析,最后将综合分析的结果通过结果展示功能显示出来。采用的具体方法是首先对被测软件程序源代码利用各种源代码静态扫描工具进行多层次的综合扫描检测,即进行预处理分析,并且这个预处理过程是通过GUI界面调用自动化完成的,然后将预处理分析的结果进行解析,解析为统一的标准化格式后插入到数据库中,接着将数据库中某个函数在某个工具中被检测到的次数和平均估分值计算出来,用于数据综合分析,最后通过调节各工具的可信度比例得到危险等级高的软件缺陷漏洞。这个结果一方面能够降低单个工具的误报率和漏报率,而且便于分析人员有针对性对软件程序漏洞进行下一步的分析,另一方面可以看出编写该代码的开发人员的编程能力,可作为企业或公司在评价该开发人员时提供依据,此外通过对大量的源代码进行检测,可以得出同一类函数中哪些函数的安全性更高等问题,以提醒开发人员在编写代码时尽量使用安全性更高的函数。同时,源代码静态分析..具有以下几个特点:1、集成多个源代码静态分析工具的优点,检测结果之间相互验证,明显降低漏报和误报;2、在评估危险等级和数据分析中加入用户交互,在工具可信度时引入了反馈机制,可以有效的指导漏洞条目的评估和分析;3、..的设计与实现采用C++面向对象的设计思想和方法,有较好的可扩展性和跨..性;4、..将检测结果全部存入数据库,便于综合分析以及可以为扩展分析提供数据基础。5、..的GUI界面友好,输出是以不同图形的方式输出,清晰明了,便于分析人员进行下一步的分析工作。(二)..总体设计框图 源代码静态分析..的设计框图如下图所示:该..包括预处理模块、输出结果解析模块、数据库模块、数据综合分析模块和反馈参数训练模块六个部分。其中预处理功能包括了预处理模块,输出结果解析模块和数据库模块。对每个模块的功能描述如下:1、预处理模块是完成各个工具对软件程序源代码的静态分析检测,包括被测源文件的选择、显示,需要使用的工具的选择以及工具检测结果等内容,并通过预处理界面将以上内容直观显示出来;2、输出结果解析模块是完成每个工具检测结果的格式标准化,即将预处理得出的结果进行解析,解析成统一标准的文件格式,即一个7元组序列:(工具名称,文件名,出现行号,危险等级,问题类型,引起安全缺陷函数,描述);3、数据库模块是将通过输出结果解析模块标准化后的结果存入数据库中,为之后的数据综合分析模块做数据准备;4、数据综合分析模块完成功能包括:某类函数在某个工具中被检测到的次数和平均估分值的分析;得出数据库中漏洞条目的综合分析结果,即得出危险等级高的漏洞条目;以及得出可扩展分析结果,即某一系列函数中哪些函数出现的次数和平均估分值更高。结果展示完成数据综合分析模块结果的图形化显示,包括“条形统计图”、“图表”和“柱状图”的显示。其中“条形统计图”显示某类函数在某个工具中被检测到的次数和平均估分值,用于在数据综合分析时对各工具的可信度调节作参考;“图表”显示经过数据综合分析后的最终结果,即危险等级高的漏洞条目;“柱状图”显示扩展分析后某一系列函数中哪些函数出现的次数和平均估分值更高。本章将在第五章对这六个模块的具体实现进行详细阐述。(三)..类的概要设计 源代码静态分析..包含预处理模块、输出结果解析模块、数据库模块、数据综合分析模块和参数反馈训练六个模块,每个模块的功能由1个或多个类协同完成。程序中各个类的结构图如下图所示。图4-5中各个类的功能描述如下:完成用户界面控制模块功能的类 CMainFrame:创建源代码静态分析..的主界面,包括菜单、工具栏、状态栏,视图的切换等。CFolderListView:实现源代码静态分析..中带有标题栏的源代码静态扫描工具的选择树形控件。CCodeWatchView:实现源代码静态分析..中源代码文件内容和源代码分析结果的可视化。CPreviewPane:实现源代码静态分析..综合分析后图表的显示。CStatisticsView:实现源代码静态分析..中条形统计图的显示。完成预处理模块功能的类 预处理模块的功能由类CMainFrame实现。完成输出结果解析模块功能的类 输出结果解析模块的功能由类CMainFrame实现。完成结果展示功能的类 条形统计图显示功能由类CStatisticsView和CBarChart类协同完成;图表显示功能由类CPreviewPane完成。部分类处理流程如下图所示:(四)模块具体实现 对数据库中若干个工具的检测结果,进行数据综合分析,按照前文4.2.2.1节提出的原理进行分析。例如某个工具i找到含有函数f的漏洞次数可以通过SQL语句:“Selectcount(scores)from'i工具名称'”得出,同样找到含有函数f的漏洞总估分可由SQL语句:“Selectsum(scores)from'i工具名称'”得出,其中工具名称根据树形控件选定,容易计算出该工具检测到该函数的平均估分值。另外如果某个工具没有找出含有某个函数的漏洞,则此漏洞条目在该工具中的估分wc(i)=0。由此容易计算出含有某类函数的某条漏洞条目的估分值。数据综合分析处理流程:首先由用户指定要分析的函数名称;其次从数据库中分别读出各个工具包含该函数的漏洞条目,计算其平均估分值,为之后的工具可信度比例调节做准备;再次从数据库中读出所有工具中包含用户指定函数的所有漏洞条目,运用平均估分值和用户的交互调节各个工具可信度比例;最后根据该比例计算出指定函数的整体估分值E(x)。如下图所示:五、..测试与分析 数字文化创意软件开发综合检测分析..的测试,即是对源代码静态分析..的测试,由第四章对源代码静态分析..的设计可知,这个..包括预处理、综合分析和结果展示三个功能,预处理功能由预处理界面显示,综合分析的结果由结果展示功能给出,具体包括条形统计图、图表和柱状图的显示。..数据综合分析中提出的扩展分析,是对..检测漏洞效率的一个分析。下面将对..的功能和扩展分析效果两个部分进行详细测试,具体的测试内容如下。(一)测试环境 源代码静态分析..具体的测试环境如下表所示:推荐的环境备注 操作系统WindowsXPSP3 Windows2000/XPSP2/SP3/Win7等操作系统版本均可 数据库 MYSQL5.0.675.0.*及其以上版本均可 编译环境Python2.5.22.5.*及其以上适合Windows操作系统版本均可 源代码静态扫描工具 Flawfinder-1.27 Its4-2.6 Cqual-0.981 Splint3.1.2 Cppcheck五种工具的其它以上版本均可 五种工具需要通过Cygwin软件成功移植到Windows..上 (二)..功能测试 开平元年正月丁亥,帝回自长芦,次于魏州。节度使罗绍威以帝回军,虑有不测之患,由是供亿甚至,因密以天人之望切陈之。帝虽拒而不纳,然心德之。壬寅,帝至自长芦。是日,有庆云覆于府署之上。甲辰,天子遣御史大夫薛贻矩来传禅代之意。贻矩谒帝,陈北面之礼,帝揖之升阶。贻矩曰:“殿下功德及人,三灵所卜已定。皇帝方议裁诏,行舜、禹之事,臣安敢违。”既而拜伏于砌下,帝侧躬以避之。  二月戊申,帝之家庙栋间有五色芝生焉,状若芙蓉,紫烟蒙护,数日不散。又,是月,家庙第一室神主上,有五色衣自然而生,识者知梁运之兴矣。唐乾符中,木星入南斗,数夕不退,诸道都统晋国公王铎观之,问诸知星者吉凶安在,咸曰:“金火土犯斗即为灾,唯木当为福耳!”或亦然之。时有术士边冈者,洞晓天文,博通阴阳历数之妙,穷天下之奇秘,有先见之明,虽京房、管辂不能过也。铎召而质之,冈曰:“惟木为福神,当以帝王占之。然则非福于今,必当有验于后,未敢言之,请他日证其所验。”一日,又密召冈,因坚请语其详,至于三四,冈辞不获。铎乃屏去左右,冈曰:“木星入斗,帝王之兆也。木在斗中,‘朱’字也。以此观之,将来当有朱氏为君者也,天戒之矣。且木之数三,其祯也应在三纪之内乎!”铎闻之,不复有言。天后朝有谶辞云:“首尾三鳞六十年,两角犊子自狂颠,龙蛇相斗血成川。”当时好事者解云:“两角犊子,牛也,必有牛姓干唐祚。”故周子谅弹牛仙客,李德裕谤牛僧孺,皆以应图谶为辞。然“朱”字“牛”下安“八”,八即角之象也,故朱滔、朱泚构丧乱之祸,冀无妄之福,岂知应之帝也。  四月,唐帝御札敕宰臣张文蔚等备法驾奉迎梁朝。宋州刺史王皋进赤乌一双。又,宰臣张文蔚正押传国宝、玉册、金宝及文武群官、诸司仪仗法物及金吾左右二军离郑州。丙辰,达上源驿。是日,庆云见。令曰:“王者创业兴邦,立名传世,必难知而示训,从易避以便人。或稽其符命,应彼开基之义,垂诸象德之言。爰考简书,求于往代,周王昌、发之号,汉帝询、衍之文,或从一德以徽称,或为二名而更易。先王令典,布在缣缃。寡人本名,兼于二字,且异帝王之号,仍兼易之难,郡职县官,多须改换。况宗庙不迁之业,..百世之规,事叶典仪,岂惮革易。寡人今改名晃,是以天意雅符于明德,日光显契于瑞文,昭融万邦,理斯在是。庶顺昊穹之意,永臻康济之期。宜令有司分告天地宗庙,其旧名,中外章疏不得更有回避。”时将受禅,下教以本名二字异帝王之称,故改名。己未,赐文武百官一百六十人本色衣一副。戊辰,即位。制曰:  王者受命于天,光宅四海,祗事上帝,宠绥下民。革故鼎新,谅历数而先定,创业垂统,知图箓以无差。神器所归,祥符合应。是以三正互用,五运相生,前朝道消,中原政散,瞻乌莫定,失鹿难追。朕经纬风雷,沐浴霜露,四征七伐,垂三十年,纠合齐盟,翼戴唐室。随山刊木,罔惮胼胝;投袂挥戈,不遑寝处。洎上穹之所赞,知广运之不兴,莫谐辅汉之谋,徒罄事殷之礼。唐主知英华已竭,算祀有终,释龟鼎以如遗,推剑绂而相授。朕惧德弗嗣,执谦允恭,避骏命于南河,眷清风于颍水。而乃列岳群后,盈廷庶官,东西南北之人,斑白缁黄之众,谓朕功盖上下,泽被幽深,宜应天以顺时,俾化家而为国。拒彼亿兆,至于再三。且曰七政已齐,万几难旷。勉遵令典,爰正鸿名,告天地神祗,建宗庙社稷。  顾惟凉德,曷副乐推,栗若履冰,懔如驭朽。金行启祚,玉历建元,方宏经治之规,宜布惟新之令。可改唐天祐四年为开平元年,国号大梁。《书》载虞宾,斯为令范,《诗》称周客,盖有明文。是用先封,以礼后嗣,宜以曹州济阴之邑奉唐主,封为济阴王。凡曰轨仪,并遵故实。姬庭多士,比是殷臣;楚国群材,终为晋用。历观前载,自有通规,但遵故事之文,勿替在公之效。应是唐朝中外文武旧臣,见任前资官爵,一切仍旧。凡百有位,无易厥章,陈力济时,尽瘁事我。古者兴王之地,受命之邦,集大勋有异庶方,沾庆泽所宜加等。故丰沛著启祚之美,穰邓有建都之荣,用壮鸿基,且旌故里,爰遵令典,先示殊恩。宜升汴州为开封府,建名东都。其东都改为西都,仍废京兆府为雍州佑国军节度使。  是日大酺,赏赐有差。宋州刺史王皋进两岐麦,陈州袁象先进白兔一,付史馆编录,兼示百官。诏在京司及诸军州县印一例铸换,其篆文则各如旧。辛未,武安军节度使马殷进封楚王。以太府卿敬翔知崇政院,翔与帷幄之谋,故首擢焉。追尊四代庙号:高祖妫州府君上谥曰宣元皇帝,庙号肃祖,太庙第一室,陵号兴极陵,祖妣高平县君范氏追谥宣僖皇后;皇曾祖宣惠王上谥曰光献皇帝,庙号敬祖,第二室,陵号永安,祖妣秦国夫人杨氏追谥光孝皇后;皇祖武元王上谥曰昭武皇帝,庙号宪祖,第三室,陵号光天,祖妣吴国夫人刘氏追谥昭懿皇后;皇考文明王上谥曰文穆皇帝,庙号烈祖,第四室,陵号咸宁,皇妣晋国太夫人王氏追谥文惠皇后。以宣武节度副使皇子友文为开封尹,判建昌院事。友文,本康氏子也,帝养以为子。  是月,制宫殿门及都门名额:正殿为崇元殿,东殿为元德殿,内殿为金祥殿,万岁堂为万岁殿,门如殿名。帝自谓以金德王,又以福建上献鹦鹉,诸州相继上白乌、白兔洎白莲之合蒂者,以为金行应运之兆,故名殿曰金祥。以大内正门为元化门,皇墙南门为建国门,滴漏门为启运门,下马门为升龙门,元德殿前门为崇明门,正殿东门为金乌门,西门为玉兔门,正衙东门为崇礼门,东偏门为银台门,宴堂门为德阳门,天王门为宾天门,皇墙东门为宽仁门,浚仪门为厚载门,皇墙西门为神兽门,望京门为金凤门,宋门为观化门,尉氏门为高明门,郑门为开明门,梁门为乾象门,酸枣门为兴和门,封丘门为含耀门,曹门为建阳门。升开封、浚仪为赤县,尉氏、封丘、雍丘、陈留为畿县。  五月,以唐朝宰臣张文蔚、杨涉并为门下侍郎、平章事;以御史大夫薛贻矩为中书侍郎、平章事。帝初受禅,求理尤切,委宰臣搜访贤良。或有在下位抱负器业久不得伸者,特加擢用;有明政理得失之道规救时病者,可陈章疏,当亲鉴择利害施行,然后赏以爵秩;有晦迹丘园不求闻达者,令彼长吏备礼邀致,冀无遗逸之恨。进封河南尹兼河阳节度使张全义为魏王,两浙节度使钱镠进封吴越王。辛巳,有司奏,以降诞之日为大明节,休假前后各一日。壬午,保义军节度使朱友谦进百官衣二百副。乙酉,立皇兄全昱为广王,皇子友文为博王,友珪为郢王,友璋为福王,友雍为贺王,友徽为建王。辛卯,以东都旧第为建昌宫,改判建昌院事为建昌宫使。初,帝创业之时,以四镇兵马仓库籍繁,因总置建昌院以领之,至是改为宫,盖重其事也。甲午,诏天下管属及州县官名犯庙讳者,各宜改换:城门郎改为门局郎,茂州改为汶州,桂州慕化县改为归化县,潘州茂名县改为越裳县。诏枢密院宜改为崇政院,以知院事敬翔为院使。改文思院为乾文院,同和院改为佐鸾院。以西都水北宅为大昌宫,废雍州太清宫,改西都太微宫,亳州太清宫皆为观,诸州紫极宫皆为老君庙。泉州僧智宣自西域回,进辟支佛骨及梵夹经律。丙申,御元德殿,宴犒诸军使刘捍、符道昭已下,赐物有差。  是月,青州、许州、定州三镇节度使请开内宴,各赐方物。以青州节度使韩建守司徒、平章事。帝以建有文武材,且详于稼穑利害、军旅之事、筹度经费,欲尽询焉,恩泽特异于时,罕有比者;随拜为上相,赐赉甚厚。宿州刺史王儒进白兔一,濮州刺史图嘉禾瑞麦以进。广州进奇宝名药,品类甚多。河南尹张全义进开平元年已前羡余钱十万贯、绸六千匹、绵三十万两,仍请每年上供定额每岁贡绢三万匹,以为常式。荆南高季昌进瑞橘数十颗,质状百味,倍胜常贡。且橘当冬熟,今方仲夏,时人咸异其事,因称为瑞。  六月,幸乾元院,宴召宰臣、学士及诸道入贡陪臣。己亥,帝御崇元殿,内出追尊四庙上谥号玉册宝共八副,宰臣文武百官仪仗鼓吹导引至太庙行事。癸卯,司天监奏:“日辰内有‘戊’字,请改为‘武’。”从之。癸亥,诏以前朝官僚,谴逐南荒,积年未经昭雪,其间有怀抱材器为时所嫉者,深负冤抑。仍令录其名姓,尽复官资,兼告谕诸道令津致赴阙。如已亡殁,并许归葬,以明恩荡。以西都徽安门北路逼近大内宫垣,兼非民便,令移自榆林直趋端门之南。改耀州报恩禅院为兴国寺。马殷奏破淮寇;静海军节度使曲裕卒。  七月丙申,以静海军行营司马权知留后曲颢起复为安南都护,充节度使。己亥,追尊皇妣为皇太后。  八月,以潞州军前屯师旅,壁垒未收,乃别议戎帅,于是以亳州刺史李思安充潞州行营都统。敕:“朝廷之仪,封册为重,用报勋烈,以隆恩荣,固合亲临,式光典礼。旧章久缺,自我复行。今后每封册大臣,宜令有司备临轩之礼。”甲子平明前,老人星见于南极。壬申,密州进嘉禾,又有合欢榆树,并图形以献。是月,隰州奏,大宁县至固镇上下二百里,今月八日,黄河清,至十月如故。  九月辛丑,西京大内放出两宫内人及前朝宫人,任其所适。敕以近年文武官诸道奉使,皆于所在分外停住,逾年涉岁,未闻归阙。非惟劳费州郡,抑且侮慢国经。臣节既亏,..安在。自今后两浙、福建、广州、安南、邕、容等道使到发许住一月;湖南、洪、鄂、黔、桂许住二十日;荆、襄、同、雍、镇、定、青、沧许住十日;其余侧近不过三五日。凡往来道路,据远近里数,日行两驿。如遇疾患及江河阻隔,委所在长吏具事由奏闻。如或有违,当行朝典,命御史点检纠察,以亻敬慢官。魏博罗绍威二男廷望、廷矩,年在幼稚,皆有材器,帝以其藩屏勋臣之胄,宜受非次之用,皆擢为郎。恩命既行之后,二子亦就班列。绍威乃上章,以齿幼未任公事,乞免主印、宿直。从之。封镇东军神祠为崇福侯。浙西奏,道门威仪郑章、道士夏隐言,焚修精志,妙达希夷,推诸辈流实有道业。郑章宜赐号贞一大师,仍名元章,隐言赐紫衣。  十月,帝以用军,未暇西幸,文武百官等久居东京,渐及疑讶,令就便各许归安,只留韩建、薛贻矩,翰林学士张策、韦郊、杜晓,中书舍人封舜聊、张衮并左右御史、司天监、宗正寺,兼要当诸司节级外,其宰臣张文蔚已下文武百官,并先于西京祗候。庚午,大明节,内外臣僚各以奇货良马上寿。故事,内殿开宴,召释、道二教对御谈论,宣旨罢之。命阁门使以香合赐宰臣佛寺行香。驾幸繁台讲武。癸酉,御史司宪薛廷圭奏请文武百官仍旧朝参。先是,帝欲亲征河东,命朝臣先赴洛都,至是缓其期,乃允所奏。宰臣请每月初入阁,望日延英听政,永为常式。山南东道节度使杨师厚进纳越匡凝东第书籍。先是,收复襄、汉,帝阅其图书,至是命师厚进焉。广州进献助军钱二十万,又进龙脑、腰带、珍珠枕、玳瑁、香药等。  十一月壬寅,帝以征讨未罢,调补为先,遂命尽赦逃亡背役髡黥之人,各许归乡里。广州进龙形通犀腰带、金托里含棱玳瑁器百余副,香药珍巧甚多。广南管内获白鹿,并图形来献,耳有两缺。按《符瑞图》,鹿寿千岁变白,耳一缺。今验此鹿耳有二缺,其兽与色皆应金行,实表嘉瑞。  十二月辛亥,诏曰:“潞寇未平,王师在野。攻战之势,难缓于寇围;飞輓之勤,实劳于人力。永言辍耒,深用轸怀。宜令长吏,丁宁布告,期以兵罢之日,给复赋租。”于是人户闻之,皆忘其倦。诏故荆南节度使、守中书令、上谷王周汭赠太师,故武昌军节度使、兼中书令、西平王杜洪赠太傅。先是,鄂渚再为淮夷所侵,攻围甚急,杜洪以兵食将尽,继来乞师。帝料其隔越大江,难以赴援,兼以荆州据上游,多战舰,去江夏甚迩,因命周汭举舟师沿流以救之。汭于是引兵东下,才及鄂界,遇朗州背盟作乱,乘江陵之虚,纵兵袭破之,俘掠且尽。既而汭士卒知之,皆顾其家,咸无斗志,遂为淮寇所败,将卒溃散,汭忿恚自投于江。汭之本姓犯文穆皇帝庙讳,至是因追赠,以其系出周文,故赐姓周氏。及汭兵败之后,武昌以重围经年,粮尽力困,救援不至,讫为淮寇所陷,载洪以送淮师,遂杀之。此二镇,皆以忠贞殁于王事。帝每言诸藩屏翰经纶之业,必首痛汭、洪之薨,至是追赠之,深加轸悼,各以其子孙宗属录用焉。棣州蒲台县百姓王知严妹,以乱离并失怙恃,因举哀追感,自截两指以祭父母。帝以遗体之重,不合毁伤,言念村闾,何知礼教。自今后所在郡县,如有截指割股,不用奏闻。  是年,诸道多奏军人百姓割股,青、齐、河朔尤多。帝曰:“此若因心,亦足为孝。但苟免徭役,自残肌肤,欲以庇身,何能疗疾?并宜止绝。” 本项目首先选取TrojDetect.c源代码对源代码静态分析..的功能进行测试。TrojDetect.c源代码是UNIX环境下一个网络应用程序中的文件,功能是检测网络上的恶意代码。首先测试预处理功能,包括被测源文件的选择、显示,源代码静态扫描工具的选择,工具检测结果的显示及插入数据库等,具体测试方案如下表所示:测试要求预处理功能 测试环境虚拟机上搭建环境 测试方法1.点击“OSFile”,在弹岀框中找到被检测源文件路径 在“工具列表”中选择要使用的源代码静态分析工具 依次点击“Ready”,“Start”,开始对源文件进行检测并将检测结果插入数据库 点击右下方的Tab键(its4结果)分别显示各个工具检测的结果 测试结果预处理界面显示被测源文件及检测结果,检测结果成功插入数据库 测试结论通过 接着测试综合分析功能,通过结果展示的“条形统计图”、“图表”和“柱状图”显示出来。其中“条形统计图”显示某类函数在某个工具中被检测到的次数和平均估分值,具体的测试方案如下表所示。条形统计图测试 测试要求条形统计图显示 测试环境虚拟机上搭建环境 测试方法切换到“图像统计显示”模块,选择需要査看统计情况的工具;选择“条形统计图”, 测试结果“条形统计图”显示每个工具检测到的安全缺陷函数出现的次数和平均估分值 测试结论通过天功第一  天道变化,消长万汇,契地之力,乃有成尔。天贵而地贱,天动而地静,贵者运机而贱者效力。上有其动,而下行其地矣。是以知天之施地匪专也,知地之应天有常也。生机动则应之以生,气机动则应之以气。机正则泰,机乱则否。万物列形而否泰交著,见之于地焉,岂止地之为乎?盖天道内而地道外者也。王者,天也;将,地也。将者,天也;士卒,地也。我,天也;敌,地也。由此观其所动,故负胜可知矣。王之於将也,阃外之寄,择贤授柄,举无所疑。将必内应其正,外务其顺。应以正则师律严,务以顺则臣节贞。举而御敌,讵有舆尸之患乎?君恃智以自用,倨礼而傲下,授柄匪人,任人不信,将不正应,内包犹豫之惑,外丧驭众之威矣。举而御敌,宁免失律之凶乎?师之成败见之於将焉,岂将之为乎?将之为任也,智敌万人,苟无万人之用,与愚者同矣;勇冠三军,苟无三军之用,与懦者同矣。善为将者正而能变,刚而能恤,仁而能断,勇而能详,以策驭吏士,未有不振拔勋业,以戡祸乱者也。反是,则吏士外无攻,内多离散之势。勇怯见之吏士焉,岂吏士之为乎?我之於敌也,夫功拔战胜,使敌不敢抗衡者,岂敌怯乎?由我威令整,进退肃,赏罚明也。覆兵杀将,弱国削地者,岂敌强威乎?由我不严师律故也。夫如是,亦自上而及下,自内而迨外,其犹天地之用乎。故天必藉地力,然后运四气,正生杀也;贵必藉贱力,然后能立元功而建王业也。  地利第二   地之形,险易殊也;地之气,寒热异也。用形与气,在知逆顺焉。昧此道者,不能得地利必矣。善用地者则不然,险而易之,易而险之也。夫居险用险必内溃,居易用易必内蹶。当有形之用,逆之者善矣。何谓险而易之?曰:简以夷其政,要以节其动,用以缓其约,不以疏慢为失也。何谓易而险之?曰:进止..,内外无怠,用其谨慎,不以暴急为务也。如是者,乃险易之用也。以方位观之,则寒热之气异也。当有气之用,顺之者善矣。南方之气热,北方之气寒也。其气异则水土之性必相戾,逆诸人而使之饮其地脉,食其土毛,蒙其风气,瘴疠之疾、冻涩之戾加焉。以我之不便,犯顺方之人,不有患乎?天不能以气顺人,君能以人顺气,可也。是故利不可以专一。北人之马,南人之航也,各有便焉。反是,不可措手足矣。行师者不能择而用之,斯亦更北南之所便也。冀其成功,远矣。是知地之所利者,可兼而有乎。善用兵者,择利而从之,善矣。  人用第三   今之世取人也,每务其多学而舍其偏技,非良术也。兵家所利,随其长短而用之也。是以善抚恤者勿频斗,虑其劳疲而无勇也;善保守者勿使进攻,虑其迟缓而不猛也;多方者勿使与於决事,虑其犹豫也;多勇者勿与谋敌,虑其过轻也。精悍者使斗;果敢者使攻也;沉毅而性执者,使其据阻险;见小而贪财者,不可使守储蓄;智而善断者,可择其言;轻健者使诱敌;刚愎者使当锋;利口喋喋者使行问;善鼠窃狗偷者使盗号探敌;恶言多骂者使之扬毁訾詈;奇材异识者使预谈论;深识大度者使安众;崛强多力者使斩辟榛莽;善随地形结构者使度树营栅;怯懦者使辇运器用;老弱者使备炊汲;谙山川、择高下水泉之利者,使察地形;妖言诈辞、善张皇鬼神之心、推引天命者,使扬声惑众以动敌心;善择地势平易险阻,知往来细大之蹊路者,使通粮储;奇辞伟辨、能架虚矜大者,使奋振威德;耳目聪明、探察敌人情者,使伺候奸伪;敏才健笔者,使主笺檄。明七曜休咎者,为历数之士;善占风云吉凶者,为候气之士;晓六壬遁甲者,为选日时之士;谙蓍龟者,为卜筮之士。是四人者,虽推验体测阴阳,各不可使相乱,贵其专一也。医药之人,二十人已上,以兵数增之。兽医亦如医人之数。大将军权通材者,与之参议可否。故我大众之内有善有恶,无弃人焉。人无所弃,斯不怨则动有功矣。  三才应变第四  《易》曰:见机而作,不俟终日。故用兵之术,知变为大。军虽气锐时胜(一作遇天时),而行列散溃,旌旗紊乱,金鼓不节,击之可也。或曰:彼得天时,讵可破乎?许洞曰:天之所,正也。怙天时而戾军政,与天违也。天人相违,不凶何俟?故兵利以顺应顺也。顺而逆应之,必凶之兆也。或曰:军乘天时,跨有地利,将吏骄怠,谋划不精,军阵散乱,如之何?洞曰:可击也。彼获天地之利,如何击之?曰:人者,天地之心也,苟心不正,虽有其表,将焉用乎?或曰:军违天时、逆地利,大将深谋沉毅,部伍清肃,进退有节,如之何?许洞曰:未可击也。曰:不获天地之利,奚谓未可乎?曰:正则可以率天地之用,草寇可为王矣。或曰:彼如是也,我之动将之如何?许洞曰:先以人,次以地,次以天,然后攻之,必克敌也。曰:先后如之何?曰:利为主。何谓主?曰:动为客,静为主。观敌之动何如,乃应之(夫书言动者,不必战阵时,敌人先动为客也。但密构敌人所为之事谓之动,则我以机应之必胜焉)。先胜而后举,神明之道也。  三才随用第五   天著吉凶,以阴阳辨也;地布险易,以山川章也;人包勇怯,以战阵见也。苟(一作有)欲阴阳之顺,险易之利,勇怯之用,在於闲暇可得而择也。当彼我相逢,各出不意,忽然交合,曷能择所利而用哉?或曰:两师不期逼於险地,天地震晦,雨雪交积,山川不辨,当此之际,何以御之?许洞曰:大将止众坚阵,严肃号令,虽敌来攻,勿与交战。俟天变少罢,观弱强之势,而后进退之。曰:我既安矣,彼自惊挠,则如之何?曰:以积兵乘之。又曰:仓卒之际,大将以何术即能坚行阵、严号令,使士卒不自惊乱?许洞曰:善用兵者,有动必备。预择轻勇者二十四人,八方各三骑,相去一里,昼以旗,夜以鼓(过山川委曲,丛林茂密,昼亦鸣鼓,恐不见旗)。第一骑见贼昼举旗,第二骑亦如之,第三骑驰告。夜用鼓,如昼法(恐敌闻鼓声急驰告)。烟雾蓊塞,风雷震惊,旗之不见,鼓之不闻,亟驰告。斯谓八卦探骑者也。是

标签:
zghwz0
中国好文章 微信号:zghwz0 扫描二维码关注公众号
优质自媒体

小编推荐

  1. 1 换元法(换元法求定积分)

    大家好,小丽今天来为大家解答换元法以下问题,换元法求定积分很多人还不知道,现在让我们一起来看看吧!1、换元法指的是解数学问题时,使用

  2. 2 国内唯一的kcar(国内唯一的粉色沙滩)

    大家好,小娟今天来为大家解答国内唯一的kcar以下问题,国内唯一的粉色沙滩很多人还不知道,现在让我们一起来看看吧!1、Kcar目前是没有在中国

  3. 3 加强科技攻关!经开区“硬核新产品”不断问世

    当前,科技立异已成为井冈山经开区成长新质生产力的“主攻偏向”,稀奇是经由强化科技立异和财富立异深度融合,一多量“硬核科技”的“经开

  4. 4 众说纷纭什么意思(众说纷纭是什么短语)

    大家好,小豪今天来为大家解答众说纷纭什么意思以下问题,众说纷纭是什么短语很多人还不知道,现在让我们一起来看看吧!1、众说纷纭的意思

  5. 5 点头英语(我点了点头英语)

    大家好,小伟今天来为大家解答点头英语以下问题,我点了点头英语很多人还不知道,现在让我们一起来看看吧!1、点头:nod 摇头:shake one's head 词

  6. 6 雷阵雨+中到大雨!小心强对流,未来三天...

    注重河北大局限降雨即将上线今世界午到夜间全省大部门区域有雷阵雨或阵雨雷雨时局地伴有短时大风、短时强降水冰雹等强对流天色请提防强对流

  7. 7 床头柜风水禁忌(为什么床头柜不能只放一个)

    大家好,小伟今天来为大家解答床头柜风水禁忌以下问题,为什么床头柜不能只放一个很多人还不知道,现在让我们一起来看看吧!1、床头柜一定要

  8. 8 都江堰什么时候修建的(都江堰在什么时候修建)

    大家好,小伟今天来为大家解答都江堰什么时候修建的以下问题,都江堰在什么时候修建很多人还不知道,现在让我们一起来看看吧!1、 [1] 都江堰

Copyright 2024 优质自媒体,让大家了解更多图文资讯!