推荐一款免费开源的代码质量分析工具

news2024/11/9 9:47:00

文章目录

  • 一、简介
  • 二、环境安装
  • 三、使用说明
  • 四、其他报错
    • UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6 in position 29: ordinal not in range(128)
      • **linux:**
      • **windos:**
  • 五、安全编程规范

一、简介

Flawfinder是一款开源的关于C/C++静态扫描分析工具,其根据内部字典数据库进行静态搜索,匹配简单的缺陷与漏洞,flawfinder工具不需要编译C/C++代码,可以直接进行扫描分析。
简单快速,最大的有点就是免费,不需要编译。flawfinder工具可以在官网进行下载。

二、环境安装

flawfinder安装比较简单,由于其是基于Python实现的一款工具,所以需要首先安装Python环境,并配置环境变量。

  1. 如果没有安装ptyhon,可以去官方下载:地址
  2. 终端输入:pip install flawfinder
  3. 修改flawfinder代码
    ① 使用Everything工具,搜索flawfinder,py。
    ② 在flawfinder,py中搜索“my_input = open(”
    在这里插入图片描述
    修改后如下:
    在这里插入图片描述

三、使用说明

  1. 生产csv表格
    ①到指定文件路径,终端输入:flawfinder --csv > test-result.csv app_main.c
    ②生成表格如图
    在这里插入图片描述

  2. 生产html网页
    ①到指定文件路径,终端输入:flawfinder --html > test-result.html app_main.c
    ②生成网页如图
    在这里插入图片描述

  3. 步骤
    在这里插入图片描述
    在这里插入图片描述

  4. 扫描当前工程目录,并显示问题代码。
    flawfinder --html > test-result.html --context .

–context 显示问题代码

四、其他报错

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6 in position 29: ordinal not in range(128)

  1. 错误原因
    提示中的“ordinal not in range(128)”,意思是,字符不在128范围内,即说明不是普通的ASCII字符,超出处理能力了。

  2. 解决方法
    找到flawfinder程序文件,用文本编辑器打开,在文件抬头加入以下代码。

linux:

import sys
reload(sys)
sys.setdefaultencoding("utf-8")

在这里插入图片描述

windos:

import importlib,sys
importlib.reload(sys)

五、安全编程规范

  1. 安全编程操作方法

  2. 大佬的网站 干货满满

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/605985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++入门——关键字|命名空间|输入输出

前言: 今天我们又开启了一个崭新的大门——C面向对象编程语言,C是怎么来的呢?答案是:因为C语言的有很多不足,我们的祖师爷用着不爽,就不断更改,就改出来了一门新的语言,C。C语言兼容…

黑客常用的十大工具(附工具安装包),你知道几款?

注:本文总结白帽黑客常用的十大工具。文档仅供参考,不得用于非法用途,否则后果自负。 1 Nmap nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个…

谈谈开源的利弊和国内的开源 ——《新程序员005:开源深度指南 新金融背后的科技力量》书评

感谢CSDN的送测 《新程序员005:开源深度指南 & 新金融背后的科技力量》 是一本以计算机编程和金融科技为主题的杂志书,由中国最大的开源社区之一的开源社主办,内容丰富多样,包括了众多知名开源项目和工具的介绍,同…

第 3 章:使用 Vue 脚手架

目录 具体步骤 模板项目的结构(脚手架文件结构) Vue脚手架报错 修改方案: 关于不同版本的Vue vue.config.js配置文件 ref属性 props配置项 mixin(混入) 插件 小结: scoped样式 小结: Todo-list 案例 小结…

kafka重点问题解答-----kafka 的设计架构

1. kafka 都有哪些特点? 高吞吐量,低延迟 可以热扩展 并发度高 具有容错性(挂的只剩1台也能正常跑) 可靠性高 2. 请简述你在哪些场景下会选择 kafka? kafka的一些应用 日志收集:一个公司可以用kafka可以收集各种服务的log&…

自学黑客(网络安全/web渗透),一般人我还是劝你算了吧

由于我之前写了不少网络安全技术相关的文章,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人私信问我: 我刚入门网络安全,该怎么学? 要学哪些东西? 有哪些方向? 怎么选&a…

chatgpt赋能python:Python分解三位数:打造高效的数学学习工具

Python分解三位数:打造高效的数学学习工具 介绍 Python是一种动态、解释型、高级编程语言,广泛应用于数据分析、人工智能、机器学习等领域。在数学教育中,Python也是一个非常好的工具,可以帮助学生更好地理解数学知识和提高解题…

Linux内核模块开发 第 6 章

The Linux Kernel Module Programming Guide Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang译 断水客(WaterCutter) 6 字符设备驱动 include/linux/fs.h 中定义了结构体 file_operations ,这个结构体包含指…

深度学习论文分享(三)Look More but Care Less in Video Recognition(NIPS2022)

深度学习论文分享(三)Look More but Care Less in Video Recognition(NIPS2022) 前言Abstract1. Introduction2 Related Work2.1 Video Recognition2.2 Redundancy in Data(数据冗余) 3 Methodology3.1 Arc…

Apache 虚拟主机企业应用

企业真实环境中, 一台服务器发布单个网站非常浪费资源,所以一台 web 服务器上会发布多个网站少则2~3个多则 30多个网站 在一台服务器上发布多网站,也称之为部署多个虚拟主机, Web 虚拟主机配置方法有以下 种: 1、基于单…

基于机器学习的内容推荐算法及其心理学、社会学影响闲谈

基于机器学习的内容推荐算法目前在各类内容类APP中使用的非常普遍。在购物、时尚、新闻咨询、学习等领域,根据用户的喜好,进行较为精准的用户画像与内容推荐。此类算法不但可以较为准确的分析用户的特征,如年龄、性别等,还能通过长…

QT项目实战(视频播放器)

文章目录 前言一、QMediaPlayer二、QVideoWidget三、QAudioOutput四、播放器代码实现五、最终效果总结 前言 本篇文章将使用QT6.4来实现一个简单视频播放器,在QT中使用一个视频播放器还是非常简单的。那么下面就让我们一起来实现这个视频播放器吧。 一、QMediaPla…

深度学习应用篇-计算机视觉-图像增广[1]:数据增广、图像混叠、图像剪裁类变化类等详解

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

基于VGG16实现宝石图像分类任务(acc 84%)--paddle paddle

作业:补充网络定义部分,使用卷积神经网络实现宝石分类 要求:1.补充完成CNN的网络结构定义方法实现宝石识别 2.可尝试不同网络结构、参数等力求达到更好的效果 卷积神经网络 卷积神经网络是提取图像特征的经典网络,其结构一般包…

【hello C++】类和对象(下)

目录 1. 再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1.3 explicit关键字 2. static成员 2.1 概念 2.2 特性 3. 友元 3.1 友元函数 3.2 友元类 4. 内部类 5.匿名对象 6.拷贝对象时的一些编译器优化 7. 再次理解类和对象 1. 再谈构造函数 1.1 构造函数体赋值 在创建对象…

Spring Boot项目使用 jasypt 加密组件进行加密(例如:数据库、服务的Key、等等进行加密)

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

【018】C++的指针数组和数组指针

C 指针数组和数组指针 引言一、指针数组1.1、数值的指针数组1.2、字符的指针数组1.3、二维字符数组 二、指针的指针三、数组指针3.1、数组首元素地址和数组首地址3.2、数组指针的使用示例3.3、二维数组和数组指针的关系 四、多维数组的物理存储总结 引言 💡 作者简介…

从0实现基于Alpha zero的中国象棋AI(会分为多个博客,此处讲解蒙特卡洛树搜索)

从0实现基于Alpha zero的中国象棋AI 0.0、前言 ​ 题主对于阿尔法狗的实现原理好奇,加上毕业在即,因此选择中国象棋版的阿尔法zero,阿尔法zero是阿尔法狗的升级版。在完成代码编写的历程中,深刻感受到深度学习环境的恶劣&#x…

零门槛快速创业:GPT和AI工具的秘密武器

在不到一周的时间里,David创建了一个按需印刷的Etsy商店,该商店具有引人注目的标识和大量独特的文字和艺术。 我最近花了大约一周的时间来建立Etsy店面。在本文中,我将向你展示我如何(可能更有趣的是,在哪里&#xff…

YOLOv5:TensorRT加速YOLOv5模型推理

YOLOv5:TensorRT加速YOLOv5模型推理 前言前提条件相关介绍TensorRT加速YOLOv5模型推理YOLOv5项目官方源地址将训练好的YOLOv5模型权重转换成TensorRT引擎YOLOv5 best.pt推理测试TensorRT Engine推理测试小结 参考 前言 由于本人水平有限,难免出现错漏&am…