精华内容
下载资源
问答
  • 很好很强大的扫描工具,用于检测html代码冗余检测网页安全性。测试工程师必备之选。
  • 冗余代码检测与处理使用工具Simian,使用方法:首先下载最新版本,并将文件解压;然后将simian所在的路径添加到windows环境变量path;接着将【simian-2.2.24.exe】文件名改成【simian.exe】,并运行即可。冗余代码...

    冗余代码检测与处理使用工具Simian,使用方法:首先下载最新版本,并将文件解压;然后将simian所在的路径添加到windows环境变量path;接着将【simian-2.2.24.exe】文件名改成【simian.exe】,并运行即可。

    e4d46da692560fb83e6db2f301b9c809.png

    冗余代码检测与处理使用工具Simian,使用方法:

    到官方站点上下载最新的版本,下载完毕后,将文件解压,将simian所在的路径添加到windows环境变量path下,同时,将simian-2.2.24.exe的文件名改成simian.exe,这样方便我们的使用,simian是命令行工具,在cmd中运行simian即可:c:\>simian.exe [options] files

    下面介绍具体的使用方法:

    检查包括子目录下的所有的c#文件:"-includes=*.cs"

    检查当前目录下的所有c#文件 ,并且只检查代码3行以上重复的代码-threshold=3 "*.cs"

    检查所有的c#文件:"*.cs"

    使用命令行输出的话,对于代码的定位不是很方便,可以通过Visual Studio的外部工具想了解更多编程学习,敬请关注php培训栏目!

    展开全文
  • 冗余代码检测与分析

    2021-01-27 16:23:42
    代码冗余的原因多种多样,从未使用的变量到未完成的变更,再到废弃的代码; 冗余代码会产生一系列的影响,包括源代码臃肿、可靠性及可维护性降低。在某些情况下,死代码也会影响性能; 为了检测冗余代码,作者开发了...
  • 一片来自互联网的论文(具体哪个网站不清楚),据说是研究生毕业论文《冗余代码缺陷检测方法》,大家共同学习。
  • Coverity代码静态检测工具介绍

    千次阅读 2019-08-09 09:51:20
    Coverity代码静态检测工具介绍 ...

    使用了Coverity代码静态检测工具。功能很强大,超乎我的期望。主要功能如下:

    1. 列出不会被执行到的代码
    2. 列出没被初始化的类成员变量
    3. 列出没有被捕获的异常
    4. 列出没有给出返回值的return语句
    5. 某个函数虽然有返回值,但调用该函数的地方没有用到它的返回值,这也会被列出来
    6. 列出没有被回收的new出来的对象
    7. 列出没有被关闭的句柄
    8. 精确定位到代码行,并提供逐层展开函数的功能
    9. 列出可能的数值类型溢出。例如,无符号int数做 ++ 操作,可能导致int溢出,都会被检测到。
    10. 什么地方该用&位运算,而不应该用|位运算,都能定位出来并作出建议
    11. ostream在一个函数中被修改了格式,但退出该函数之后没有将ostream恢复成先前的格式,也会被检测到
    12. ……

    貌似程序中的所有可能分支,所有new出来的对象何时被销毁,所有可能的异常是否被代码捕获,它都能扫描到。真不简单啊。

    我用到的Coverity是部署在企业内部的,通过https页面的方式向程序员报告扫描的安全隐患。

    具体的安全隐患页面很专业。但有个缺点,点击一个security issue list中的一个item进入子页面,而后再点浏览器的返回按钮后,不能返回先前的页面,而是返回所有security issue list的第一个list页面,在这点上,用户体验很糟糕,因为本来出来的列表就很长了,看的很晕了,返回页面又不是先前的页面,导致很多时间都花费在重新找寻先前的list页面上了。

     

    解决办法:

    1. 点击扫描列表上的"File"列标签,将扫描出来的列表按照文件排序,然后点击右上角的某个按钮,导出成.csv格式文件。
    2. 用Excel打开.csv文件,添加一列,记录状态,比如:Done, In progress, Cannot decide 等等。
    3. 按照.csv文件条目的顺序自上而下挨个处理。每做完一个条目,就更新对应的.csv文件中对应行的新加列。
    4. 注意,每当要处理下一个条目时,从.csv文件中copy出该条目的ID号,粘贴到Coverity页面的右上角的搜索栏中,搜索,并进入具体页面。这样做,可以免除上面提到的“因条目过多导致前进后退时迷失方向”的问题。

     

    按照这样的方法,处理完所有的条目,会得到一个完整的条目状态列表。如果有未解决的条目的话,接下来就只关注这些条目。不会出现条目遗漏,也不会因条目过多而迷失方向。即安全又节省时间。

     

    Coverity多次检测同样的代码(两次之间,被检测的代码有改动),不会覆盖先前的报告,即第一次检测得到的report item number还是有效的,不会被新的report item覆盖,搜索它仍然可以查看先前检测出来的问题。

     

    其实Coverity检测也是有缺陷的,毕竟它只是个辅助工具,不能完全达到人的水平,有时报的问题其实不是问题。例如,它可能报告有个指针pNext在没有在被赋值或被赋值为NULL的情况下做pNext++操作存在风险,其实这个pNext指针在pNext=NULL下面的一个while循环中被赋值了,于是,这个报告可以被忽略。像这样的误报,目前还没找到方法有效地过滤掉。

     

    附:

    CERT C Secure Coding Standard

    CERT C++ Secure Coding Standard

    Coverity C++ checkers of CERT C++ Secure Coding Standard

     

    ===================================

     

    转自:http://www.broadskytech.com/tabid/90/ArticleID/117/Default.aspx

     

     

     

     

    产品名称:Coverity源代码缺陷分析工具
    产品型号:Coverity

     

    Coverity公司是由一流的斯坦福大学的科学家于2002年成立的,产品核心技术是1998年至2002年在斯坦福大学计算机系统实验室开发的,用于解决一个计算机科学领域最困难的问题,在2003年发布了第一个能够帮助Linux、FreeBSD等开源项目检测大量关键缺陷的系统,Coverity是唯一位列IDC前10名软件质量工具供应商的静态分析工具厂商,被第三方权威调查机构VDC评为静态源代码分析领域的领导者,市场占有率处于绝对领先地位。

    美国Coverity公司提供最先进的和可配置的用于检测软件缺陷和安全隐患的静态源代码分析解决方案,Coverity将基于布尔可满足性验证技术应用于源代码分析引擎,分析引擎利用其专利的软件DNA图谱技术和meta-compilation技术,综合分析源代码、编译构建系统和操作系统等可能使软件产生的缺陷,Coverity是第一个能够快速、准确分析当今的大规模(几百万、甚至几千万行的代码)、高复杂度代码的工具,Coverity解决了影响源代码分析有效性的很多关键问题:构建集成、编译兼容性、高误报率、有效的错误根源分析等。

    产品功能

    Coverity Static Analysis (也称Prevent)是检测和解决C、C++、Java和C#源代码中最严重的缺陷的领先的自动化方法。通过对您的构建环境、源代码和开发过程给出一个完整的分析,Prevent建立了获得高质量软件的标准。

    静态源代码分析允许我们在软件开发生命周期的早期阶段发现和修复缺陷,节省数以百万计的相关成本。Prevent是业界标准,因为只有Coverity理解和掌握静态源代码分析技术所具有的严格的要求。

    l Coverity了解构建系统——Prevent通过在操作系统流程这个层次监测您的构建系统来获得每一个操作的清晰视图,展现您的软件。

    l Coverity了解源代码——Prevent 检测比当今市场上任何其他工具都更多的源代码信息;代码的结构、含义和意图都被用来揭示其中的严重的错误和不安全性。

    l Coverity了解开发者——Prevent 通过一个客户化的工作流、功能强大的分析器和易于使用的工具,能够使缺陷在几分钟内被定位,解决缺陷。

     

    平台支持:

    目标机平台:PowerPC,ARM,MIPS,x86,SPARC,XScale,SH,Codefire,SH,ST 20,8051,

    TI DSP C3000/C6000/C55x/C54x, Motorola 68HC05/68HC11, Freescale 68HC08/HCS08/68HC12/HCS12X, Renesas M16C/H8/M32C,

    C51/C166/C251等;

    嵌入式操作系统:VxWorks,Embedded Linux,QNX,RTEMS,ucOS,WinCE,Windows Embedded,PalmOS,Symbian, pSOS、Nucleus、ThreadX, INTEGRITY、OSE,UCLinux,国产OS等等;

    主机平台:Apple Mac OS X 10.4,Cygwin,FreeBSD,HPUX,Linux,Mac OS X , NetBSD(2.0) ,Solaris Sparc ,Solaris X86,Windows等;

    支持的编译器:ARM ADS/RVCT,Freescale Codewarrior ,GNU C/C++ ,Green Hills

    HP aCC,i-Tech PICC,IAR,Intel C/C++ ,Marvell MSA ,Microsoft Visual C++,QNX ,Renesas ,Sun C/C++ ,TI Code Composer ,Wind River,

    支持任何其他的ANSI C兼容的编译器.

    产品特点及优势

    Coverity产品专长于准确的查找最严重和最难检测的缺陷,具有以下优势:

    精确性——Coverity Prevent的特别之处在于查找精确,具有业界最低的误报率(小于15%)。当许多其他的源代码分析产品以很高的误报率使得其不可用时,Coverity的虚假路径裁剪、统计分析和其它创新减少了误报的产生。附加的配置和微调能够进一步减少误报率。

    分析的深度——Coverity Prevent提供过程间数据流分析和统计分析,评审整个程序的交互和所有的可能的路径。Coverity Prevent检查企业特定的APIs和标志使用中的不一致性,精确的检测QA、安全评审和现场会发生的缺陷。

    分析的广度——Coverity Prevent采用查找最严重的错误的最先进的技术,提高您的产品的质量和安全性。Coverity Prevent可以检测严重的问题,例如系统崩溃、内存泄漏、内存错误、不确定行为、并发缺陷和安全性问题。

    低拥有成本——Coverity Prevent无缝的与您已有的环境集成,能够快速部署和配置。

    可扩展——Coverity Prevent使您能够在我们的强大的分析引擎上创建定制的检查器,来满足您的开发组织和代码的特定需求。您可以设置定制的规则,来强化编码标准或者检测代码中的错误。

    强大的可配置性——Coverity Prevent能够快速的分析您的代码,不需要写测试用例。通常百万行的代码仅需要几个小时,其他的工具需要几天,甚至几个星期来分析大规模代码。

    广泛的平台支持——Coverity Prevent支持最广泛的编译器和硬件平台,可最大化的满足用户多平台的测试要求。

     

    以 C/C++为例

    Prevent 分析引擎使得缺陷检测检查器拥有源代码最精确的描述。

    Prevent 针对C/C++的分析引擎

    引擎 功能
    路径流程引擎 通过构建一个表示经过每一个函数的所有的路径的图表分析您代码中的每个函数的控制流
    数据追踪引擎 用于分析从程序中每个路径中的声明收集的所有的整型和布尔型等数据
    统计引擎 用于分析您的代码作为一个整体的行为特征
    过程间调用总结引擎 一个主要的创新,使得Prevent 可以执行整个程序的分析,分析文件间和模块间的任何层次的复杂的调用链
    类型流程引擎 用于提高C++分析中依赖于类层次关系的报告的结果的精度
    虚假路径引擎 用于分析每个分支条件,以确定在当前路径它将是真、假或不确定
    加速引擎 保存横越每个路径时的每个缺陷分析所收集的信息;消除冗余路径,不需要横越任何不必要的路径来找到最多的缺陷
    数据传播引擎 把过程间调用总结引擎产生的所有总结和数据追踪引擎记录的所有数据汇总起来,是Coverity特有的、上下文敏感的过程间分析能力的关键
    增量分析引擎 通过缓存分析数据来提高性能,以便后续的分析仅需要包含变化的数据

     

    能够发现的C/C++缺陷(部分) C/C++安全性问题(部分)

    并发

    • 死锁
    • 错误使用的阻塞调用

    性能下降

    • 内存泄漏
    • 文件句柄泄漏
    • 定制的内存和网络资源泄漏
    • 数据库连接泄漏

    导致崩溃的缺陷

    • 空指针引用
    • 释放后引用
    • 多次释放
    • 不正确的内存分配
    • 不匹配的数组新建/删除

    不正确的程序行为

    • 逻辑错误导致的死代码
    • 未初始化变量
    • 负数的无效引用

    不正确的APIs使用

    • STL使用错误
    • API错误处理
    展开全文
  • 代码漏洞检测工具整理

    千次阅读 2012-06-15 10:55:29
    PCLintPC-Lint 是GIMPEL SOFTWARE 公司研发的C/C++软件代码静态分析工具,他的全称是PC-Lint/FlexeLint for C/C++。PC-Lint 能够在Windows、MS-DOS 和OS/2 平台上使用,以二进制可执行文档的形式发布,而FlexeLint ...
    
    

    PCLint

    PC-Lint 是GIMPEL SOFTWARE 公司研发的C/C++软件代码静态分析工具,他的全称是PC-Lint/FlexeLint for C/C++。PC-Lint 能够在Windows、MS-DOS 和OS/2 平台上使用,以二进制可执行文档的形式发布,而FlexeLint 运行于其他平台,以源代码的形式发布。PC-lint在全球拥有广泛的客户群,许多大型的软件研发组织都把PC-Lint 检查作为代码走查的第一道工序。PC-Lint 不但能够对程式进行全局分析,识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针连同冗余的代码,还能够有效地提出许多程序在空间利用、运行效率上的改进点。 适用于C/C++,做嵌入式开发时用过这个工具,还是很强大的,缩进对齐不规范也可以检测出来。

    PREfast Prefast是一种代码分析工具,它能够帮助你找到编译器不能找到的错误或者缺陷。Prefast首次被微软集成到Visual Studio 2005 Team Suite中去,使用起来非常方便。 Prefast能帮你找到哪些错误
    1)没有初始化 2)空指针取值 3)可能错误的运算符优先级 4)可能的buffer overrun 5)可能的无穷循环 6)格式字符串错误 7)安全问题 8)=和==误用 9)逻辑运算问题 10)其他 可以集成到VS环境,不过没用过,不做评论 FxCop FxCop是一个代码分析工具,它依照微软.NET框架的设计规范对托管代码assembly(可称为程序集,assembly实际上指的就是.net中的.exe或者.dll文件(不包括netmodule文件),这种文件中包含四种信息:assembly的清单(包括引用外部的assembly、netmodule与资源文件及包含在同一文件中的assembly);类型描述信息,包括版本信息与类的描述等;MSIL微软中间语言;资源(图标等))进行检查。它使用基于规则的引擎,来检查出你代码中不合规范的部分;你也可以定制自己的规则加入到这个引擎。这个工具微软免费提供。最新版需要.NET 2.0支持;此外,也有一个较老的针对.NET1.1的版本。

      最新版FxCop使用一项叫做内窥(introspection,或称内观、内视)的技术,以窥探你的assembly内部,而前一个版本则使用映射(reflection,或称反射)技术。这一点值得关注,因为使用上一个版本调试碰到问题你不得不停下来,对代码作了任何更改之后都需要重新开始调试;而这些对于新版本都没有必要了。
      大多数代码分析工具扫描你的源代码,但是FxCop直接对你编译好的代码处理。.NET的每个assembly都有其metadata(可称为元数据,metadata是关于一个assembly中各元素的类型信息库,它本身也存放在这个assembly中),它对assembly以及assembly内用到的所有类型进行描述。FxCop会使用这个metadata以获知代码内部的运行状况。另外,它也对代码编译时生成的MSIL(Microsoft Intermediate Language,微软中间语言)进行检查。
      通过对metadata和MSIL检查的结合,FxCop可以得出大量信息,以此获得对代码执行时所作所为的理解。它把你的代码和各条规则逐一比较检查,在每一个实例中,当找到不符合规则的代码时就生成一条消息。 适用于托管代码检测,这个工具也没用过
    展开全文
  • QT调试技巧-使用静态代码检测工具Cppcheck检测代码 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:12951803 环境: Qt Creator版本:4.0.3 Qt版本:5.6.2 Cppcheck版本:...

    #QT调试技巧-使用静态代码检测工具Cppcheck检测代码

    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033

    环境:
    Qt Creator版本:4.0.3
    Qt版本:5.6.2
    Cppcheck版本:1.8.2
    http://cppcheck.sourceforge.net/
    Qt Creator Cppcheck Integration版本:4.0.0(必须与Qt Creator版本一致)
    https://github.com/OneMoreGres/qtc-cppcheck/releases/tag/4.0.0
    操作系统:windows 7 64bit


    ##1.Cppcheck的安装
    ###a.Cppcheck简介
    Cppcheck是一个C/C++代码的静态分析工具。与C++编译器和其他许多分析工具不同,Cppcheck不检测代码中的语法错误,只检测那些编译器通常无法检测到的bug类型,目的是只检测代码中真正的错误。

    特点:

    • 检查边界溢出
    • 检查内存泄漏
    • 检查可能的空指针间接引用
    • 检查未初始化的变量
    • 检查无效的STL使用
    • 检查异常安全
    • 警告如果过时的或者不安全的函数使用
    • 警告未使用的或者冗余的代码
    • 检测各种潜在bugs的可疑代码等

    所有检查项可以查看这理:https://sourceforge.net/p/cppcheck/wiki/ListOfChecks/

    CppCheck可以扩展,你可以:

    查找简单模式,查看手册中章节rules;
    使用.cfg文件为函数定义规则,查看手册中章节library;
    使用脚本扩展cppcheck,查看手册中章节addons。

    ###b.下载Cppcheck
    下载地址:
    http://cppcheck.sourceforge.net/
    版本:Windows 32-bit (No XP support) 1.8.2

    ###c.安装
    运行cppcheck-1.82-x86-Setup.msi直接进行安装

    ##2.QT插件安装
    ###a.简介
    由于我们实际开发环境是QT,所以安装QT的cppcheck插件。

    插件名称:Qt Creator Cppcheck Integration

    作用:将一些Cppcheck功能集成到Qt Creator IDE中。

    特点:

    • 构建后自动检查活动项目
    • 保存时自动检查活动项目的文件
    • 手动检查任何项目的文件
    • 在任务平移中显示找到的错误(在编辑器中带有标记)
    • 大多数设置都是可配置的
    • 支持翻译
      ###b.下载
      下载地址:https://github.com/OneMoreGres/qtc-cppcheck/releases/tag/4.0.0

    注意:
    Qt Creator Cppcheck Integration版本必须与Qt Creator版本一致,否则不能正常运行。

    ###c.安装
    ###1)复制到QT插件目录
    ####1.从归档文件中提取/复制文件到Qt Creator的目录(归档文件已经包含正确的路径)。

    • 找到QtCreator安装目录
    • 将lib/qtcreator/plugins/libQtcCppcheck.so复制到QC_DIR的lib/qtcreator/plugins。例如,D:\Qt\Qt5.6.2\Tools\QtCreator\lib\qtcreator\plugins
    • 将share/qtcreator/translations/QtcCppcheck_ru.qm复制到QC_DIR的share/qtcreator/translations/。例如,D:\Qt\Qt5.6.2\Tools\QtCreator\share\qtcreator\translations
      ####2.在帮助 - >关于插件菜单中启用插件。
      这里写图片描述
      这里写图片描述
      ####3.重启QtCreator
      ####4.配置cppcheck路径
      这里写图片描述
      这里写图片描述

    至此,QT的cppcheck插件安装完成

    ##3.cppcheck的QT插件的使用
    ###a.工具中选择使用
    这里写图片描述
    ###b.右键工程或文件使用
    这里写图片描述
    这里写图片描述

    ##4.结果
    这里写图片描述


    Reference:
    https://github.com/OneMoreGres/qtc-cppcheck
    https://gres.biz/qtc-cppcheck/
    http://hao.jobbole.com/cppcheck/


    觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!
    在这里插入图片描述
    如需转载请标明出处:http://blog.csdn.net/itas109
    QQ技术交流群:129518033

    展开全文
  • 好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,...
  • 冗余代码检查工具Simian

    千次阅读 2012-12-11 21:43:38
    冗余代码检查工具Simian 微软web2.0开发示例Kobe,重蹈了Oxite的覆辙。Ayende连续发表了五篇高质量的Kobe探讨贴: Kobe – In the nuts & bolts and don’t really liking itKobe – Data Access done ...
  • php 代码检测工具

    千次阅读 2017-07-08 00:21:30
    phpcpd 是检测代码冗余工具 PHP Copy Paste Detector phpdcd 检查从未被调用过的方法 phpcs 是代码检测规范程度的工具 phpcs 使用教程 http://overtrue.me/articles/2015/05/install-phpcs-and-phpmd.html ...
  • 【Tools】Coverity代码静态检测工具

    千次阅读 2018-01-13 16:45:18
    Coverity静态分析工具的功能很强大,超乎我的期望。主要功能如下: 列出不会被执行到的代码列出没被初始化的类成员变量列出没有被捕获的异常列出没有给出返回值的return语句某个函数虽然有返回值,但调用该函数的...
  • 受自己阅历和工作经验,项目工期的影响,很多时候我们检查自己的代码很难发现错误(不知道大家有没有这个感觉),或者我们不觉着这块代码有问题,这时候就需要用到“静态代码检测工具”,Andro...
  • 静态代码检测工具---PC-lint

    千次阅读 2008-02-20 16:17:00
    静态代码检测工具---PC-lint
  • 静态代码检测工具---PC-lint 【转】

    千次阅读 2007-08-02 16:28:00
    静态代码检测工具---PC-lint 【转】2007-07-30 11:03:56 / 个人分类:测试工具 概述 PC-Lint是一个历史悠久,功能异常强劲的静态代码检测工具。经过这么多年的发展,它不但能够监测出许多语法逻辑上的隐患,而且也...
  • 静态代码检测工具:PC-Lint(for c/c++)

    千次阅读 2011-02-11 10:42:00
    PC-Lint是C/C++软件代码静态分析工具,你可以把它看作是一种更加严格的编译器。它不仅可以检查出一般的语法错误,还可以检查出那些虽然符合语法要求但不易发现的潜在错误。 C语言的灵活性带来了代码效率...
  • phpcpd是代码检测工具之中的一种,可以帮助我们更加有效、简洁的开发程序,那么,我们这个phpcpd就是检测代码冗余工具,他会将我们开发的程序中重复的代码检测出来,然后便于我们整合,复用。 安装方法: 方法一:...
  • Unity AssetBundle 冗余检测与资源分析

    千次阅读 2017-09-30 13:10:15
    检测冗余可以在未打包前对将要打包的资源做分析,但是这无法完全保证打包之后的 AssetBundle 完全无冗余,一是分析时无法保证正确无冗余,二是引用的内置资源无法剔除冗余,所以对打包之后的 AssetBundle 包进行检测...
  • l CheckStyle专注于格式方面的...由于不同公司,或者说不同标准,对于一个优秀的代码风格拥有不一样的要求,所以不同的配置文件对CheckStyle检测出来的错误影响极大。我们在运用CheckStyle中的谷歌标准检查代码时,
  • 第一步:选中代码,右键选择,或快捷键:Alt+Shift+M 第二步:进行设置 第三步:进行微调
  • 代码覆盖率检测正是帮助开发、测试同学提前发现问题,保证代码质量的好帮手。 对于开发者而言,代码覆盖率可以反馈两方面信息: 自测的充分程度。 代码设计的冗余程度。 尽管代码覆盖率对代码质量有着上述好处,但...
  • Scalastyle Scala代码风格检测

    千次阅读 2019-08-04 00:25:09
    记录下Scalastyle规则,方便查询。内容比较多,使用Ctrl + F 输入需要查询的检查器进行搜索查询。...Scalastyle 是专门针对Scala代码开发的轻巧的code style检测工具,类似于Java代码检查工具Checkstyle、Fin...
  • 混入 (mixin) 提供了一种非常灵活的方式,来...把共同的方法或者数据提取出来 减少代码冗余 <div id="app"> <cpn></cpn> <cpn1></cpn1> </div> <script> // 变量名是自.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,063
精华内容 11,625
关键字:

代码冗余检测工具