关于代码检查工具klockwork 的安装部署

本文档详细介绍了Klocwork V10的安装步骤,包括依赖包的安装、服务运行、配置修改及扫描C和Java代码的过程。用户端分析步骤也一并给出,帮助用户进行代码质量检查。

本次测试安装版本V10.

1、安装
使用普通用户,test
在/opt下创建目录,
mkdir /opt/kw
chown test:test /opt/kw
如果安装client端,则
mkdir /opt/kw-user
chown test:test /opt/kw-user

test用户执行安装程序。
./kw-server-installer.9.6.4.11809.linux64.sh -i /opt/kw
./kw-user-installer.9.6.4.11809.linux64.sh -i /opt/kw-user/


在安装部署等过程中可能存在包等依赖问题,通过查看日志解决,本次部署主要依赖两个包

中间会提示缺少依赖包,可以看日志文件确认。
vi /opt/kw/projects_root/logs/license.log
x86系统安装的依赖包有:
yum install glibc-2.12-1.25.1.ky3.3.i686
yum install libgcc-4.4.5-6.1.ky3.i686



2、服务运行
./bin/kwservice -r ../kw/projects_root/ start
./bin/kwservice -r ../kw/projects_root/ stop

运行之前需要安装正版认证服务器的驱动

修改hostname如:
127.0.0.1 Kylin-VMware
解决问题后启动服务
./bin/kwservice -r ../kw/projects_root/ start

安装证书文件:
cp license/K9_Nohost_Mar_28_2013.lic //opt/kw/projects_root/licenses




扫描C代码的过程:
1、找到源码位置
2、./configure

3、//opt/kw/bin/kwinject make
如果是通过rpmbuild编译的,则在build目录下make clean清除后再执行。
生成了kwinject.out文件
4、/opt/kw/bin/kwconfigeditor /opt/kw/projects_root/projects/workspace/rules/problems_default.pconf.xml
使用该工具修改扫描的配置,侧重扫描拿部分内容。
5、开始扫描
/opt/kw/bin/kwadmin create-project test
/opt/kw/bin/kwbuildproject --project test -f -o table kwinject.out
/opt/kw/bin/kwadmin load test table


然后通过http://localhost:8080/访问结果
登录名为安装的用户名,没有密码。



扫描java代码的过程


java 环境配置
    安装 jdk
    安装 ant

    1. 进入源码目录
    2. 生成项目 kwadmin create-project test
    3. 使用kwant -o kwinject.out 命令编译项目 生产 kwinject.out文件
    注:若该方法无法无效,则使用以下方法:
        编辑build.xml加入如下配置
        <property name="kout" location="kwant.out"/>
        <property name="rep.inst" location="/opt/kw/"/>
        <taskdef name="javac" classname="com.klocwork.kwant.KWJavac">
        <classpath>
            <pathelement location="${rep.inst}\class\kwant.jar"/>
            <pathelement location="${rep.inst}\class\infoserver.jar"/>
            <pathelement location="${rep.inst}\class\kwutils.jar"/>
            <pathelement location="${rep.inst}\class\log4j.jar"/>
            <pathelement location="${rep.inst}\class\jdom.jar"/>
        </classpath>
        </taskdef>
    4. kwbuildproject --project test -f -o table kwinject.out
    5. kwadmin load test table
    6. 访问http://localhost:8080/查看结果


User端分析步骤
首先进入到项目所在的路径(工程所在的路径下)
2.1. 创建本地项目名
命令:kwcheck create 会在当前目录下生成一个 .kwlp .kwps 的目录,用来存放数据和配置文件的
2.2. 获取构建配置文件
kwbuildproject --project infoeditor -f -o table kwinject.out

用命令分析并查看结果
命令: kwcheck run –b <kwinject>.out

缺陷是不能在 web 中查看的但可以导出 txt 和 xml 格式的文件,命令为:
kwcheck list -F xml>report.xml
kwcheck list -F detailed>report.txt









Klocwork 介绍 Klocwork - 源代码缺陷自动分析工具概述:Klocwork 软件是 Klocwork 公司基于专利技术分析引擎开发的,综合应用了多种近年来 最先进的静态分析技术,是出色的软件静态分析软件。Klocwork 产品与其它同类产品相比, 具有很多突出的特征:Klocwork 支持的语言种类多,能够分析 C、C++和 Java 代码;能够发 现的软件缺陷种类全面,既包括软件质量缺陷,又包括安全漏洞方面的缺陷,还可以分析对软 件架构、编程规则的违反情况;软件分析功能全面,既能分析软件的缺陷,又能进行可视化的 架构分析、优化;能够分析软件的各种度量;能够提供与多种主流 IDE 开发环境的集成;能 够分析超大型软件(上千万代码行)。主要功能: 缺陷检测提供多角度的各种缺陷类型的分析。自动化的缺陷检测功能易于使用,定制灵活,具有图 形化的构建和报表管理图形界面,拥有业界领先的消息过滤器,极具柔性的配置,和强大的学 习调整知识库;Klocwork 能够分析 C/C++和 Java 代码,生成代码问题报告,能够发现的缺陷 类型举例。(详细参见附录): C/C++缺陷类型样例 空指针释放 内存管理问题(如:内存泄漏) 数组越界 未初始化数据使用 编码风格问题(如:在条件中赋值) Java 缺陷类型样例 效率错误(如:空的 finalize 方法) 可维护性问题(如:空的 catch 从句) 可靠性问题(如资源泄漏) 安全漏洞检测Klocwork 确信软件安全性是软件质量中一个重要的、并越来越受重视的方面。同样的, 所有的 Klocwork 安全漏洞分析是基于市场领先的缺陷检测能力,从原来的缺陷检测分离出来 单独的安全漏洞检测和违反推荐的安全代码最佳实践的缺陷检测。 能够检测到的安全漏洞类型 举例(详细参见附录) C/C++安全漏洞分类 访问控制缺陷 缓冲区溢出 DNS 欺骗 忽略返回值 注入缺陷 不安全的存储 未经验证的用户输入 Java 安全漏洞分类 拒绝服务 注入缺陷(如:SQL 注入、进程注入等) 未经验证的输入 移动代码安全 有漏洞的会话管理 跨站点脚本 出错处理不当
### Klocwork 静态代码分析工具使用指南与解决方案 Klocwork 是一款功能强大的静态代码分析工具,广泛用于检测代码缺陷、提升代码质量、确保安全性并支持持续集成(CI)流程。其核心优势在于能够在代码提交前、提交中和提交后阶段识别关键问题,从而减少后期测试成本并加快开发周期[^1]。 #### 使用指南 Klocwork 支持多种开发环境和持续集成工具,用户可以将其无缝集成到现有的开发流程中。以下是一些基本的使用步骤: 1. **项目配置** 在 Klocwork 中创建项目并配置代码库路径,支持多种语言如 C/C++、Java、C#、Python 等。用户可以通过图形界面或命令行方式初始化项目设置。 2. **代码分析** 执行静态分析前,需构建项目模型。Klocwork 提供 `kwbuildproject` 命令用于构建项目并生成分析数据库: ```bash kwbuildproject --create --project my_project --url http://klocwork-server:8080 my_project_db ``` 3. **增量分析** Klocwork 支持在代码提交期间进行增量分析,仅分析发生变化的代码部分,从而提升分析效率,适应快速迭代的开发节奏[^1]。 4. **问题报告与修复** 分析完成后,用户可通过 Klocwork Insight 客户端或 Web 界面查看报告。问题分类包括安全性、可靠性、代码标准等,支持自定义规则集。 5. **持续集成集成** Klocwork 可与 Jenkins、GitLab CI、Azure DevOps 等主流 CI 工具集成,实现自动化分析与问题检测,确保每次提交都符合质量标准。 #### 解决方案 Klocwork 不仅用于检测代码缺陷,还可作为软件安全与质量保障的重要工具: - **安全性检测** Klocwork 支持 MISRA、CERT、CWE 等安全编码标准,能够识别潜在的安全漏洞,如缓冲区溢出、空指针解引用、未初始化变量等[^3]。 - **架构与代码规范检查** 提供对软件架构的可视化分析,检测模块间依赖关系、代码复杂度、重复代码等问题,帮助团队优化系统结构[^2]。 - **大规模代码支持** 能够处理上千万行代码的超大型项目,支持分布式分析与并行处理,确保分析效率不受项目规模限制[^2]。 - **IDE 集成** 提供与 Eclipse、Visual Studio、CLion 等主流 IDE 的插件,实现代码问题在开发环境中的即时反馈,提升开发者效率。 - **定制化规则与报告** 用户可根据企业内部规范自定义规则集,并生成符合 ISO/IEC 9126、MISRA 等标准的合规性报告。 ###
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值