AI-代码扫描工具

AI-代码扫描工具

1、目的

一个团队或者个人,会因为自己所处位置不同,都有封装过的函数和产品代码业务代码编写规则。本文基于以上痛点,实现代码扫描功能,减轻开发、审核、测试的工作量,提升代码质量。同时用户可以自行添加相应的个性化规则,实现自己的代码管理。扫描和生成检查报告。详细的使用说明见文档和代码。

2、源码位置

源码地址

3、详细介绍

C/C++ 代码审核工具

一个可扩展的 C/C++ 代码静态分析工具,用于检测代码中的内存泄漏、死锁、死循环、性能问题等。

功能特性

  • 内存管理检测: malloc/new 后未释放、双重释放、野指针等
  • 并发/死锁检测: 嵌套锁、未释放的互斥锁、std::thread 资源泄漏等
  • 循环效率检测: 死循环、循环内重复计算、嵌套循环性能等
  • 性能问题检测: 字符串频繁拼接、不必要的拷贝、循环内定义对象等
  • 业务逻辑检测: 未检查返回值、Magic Number、敏感信息打印等
  • 函数使用范例: fopen、memcpy、strncpy 等函数的正确用法

安装

bash 复制代码
pip install pyyaml chardet

使用方法

扫描文件或目录

bash 复制代码
# 扫描整个项目
python main.py scan /path/to/project

# 扫描指定文件
python main.py scan /path/to/file.cpp

# 不递归扫描子目录
python main.py scan /path/to/project --no-recursive

指定规则

bash 复制代码
# 只启用特定规则类别
python main.py scan /path/to/project --rules memory,deadlock

# 按严重程度过滤
python main.py scan /path/to/project --severity Critical Warning

输出格式

bash 复制代码
# 彩色终端输出 (默认)
python main.py scan /path/to/project --format color

# JSON 输出
python main.py scan /path/to/project --format json --output report.json

# 纯文本输出
python main.py scan /path/to/project --format text --output report.txt

# 生成 HTML 报告
python main.py scan /path/to/project --format html --output report.html

其他命令

bash 复制代码
# 列出所有规则
python main.py list-rules

# 按类别筛选规则
python main.py list-rules --category memory

# 添加自定义规则
python main.py add-rule /path/to/your_rule.yaml

添加自定义规则

rules/custom/ 目录下创建 YAML 规则文件:

yaml 复制代码
- id: CUSTOM001
  name: "自定义规则名称"
  category: business
  severity: Warning
  description: "规则描述"
  patterns:
    - pattern: 'your_regex_pattern'
      description: "匹配描述"
      suggestion: "修复建议"

规则说明

类别 说明
memory 内存管理问题
deadlock 并发/死锁问题
loop 循环效率问题
performance 性能问题
business 业务逻辑问题
example 函数使用范例
严重程度 说明
Critical 严重问题,可能导致崩溃或内存泄漏
Warning 警告,需要关注的问题
Info 信息性建议

项目结构

复制代码
code_auditor/
├── main.py                 # 入口文件
├── config.yaml             # 配置文件
├── auditor/                # 核心模块
│   ├── scanner.py          # 文件扫描
│   ├── analyzer.py         # 代码分析
│   ├── rule_engine.py      # 规则引擎
│   └── reporter.py         # 报告生成
├── rules/                  # 规则定义
│   ├── memory_leak.yaml    # 内存规则
│   ├── deadlock.yaml       # 死锁规则
│   ├── dead_loop.yaml      # 循环规则
│   ├── performance.yaml    # 性能规则
│   ├── business.yaml       # 业务规则
│   └── examples.yaml       # 函数范例
└── tests/                  # 测试文件

扩展开发

可以通过以下方式扩展工具功能:

  1. 添加新规则 : 在 rules/ 目录下创建新的 YAML 文件
  2. 扩展分析器 : 修改 auditor/analyzer.py 添加更复杂的分析逻辑
  3. 添加输出格式 : 修改 auditor/reporter.py 添加新的报告格式

4、效果图

相关推荐
这个DBA有点耶4 天前
分组排名不用窗口函数?那你还在写几十行的子查询
前端·代码规范
这个DBA有点耶4 天前
两张百万级大表JOIN跑崩了?试试这3招
数据库·代码规范
得物技术4 天前
网关路由 AI 安全审计:智能漏洞检测实践|得物技术
程序员·ai编程·代码规范
这个DBA有点耶5 天前
3步抓出慢SQL,别等半夜被叫醒😴
数据库·代码规范
Jesse1218 天前
lint-staged与ls-lint配合使用时的陷阱
代码规范·命令行
电子科技圈11 天前
IAR作为Qt Group独立BU携两项重磅汽车电子应用开发方案首秀北京车展
开发语言·人工智能·汽车·软件工程·软件构建·代码规范·设计规范
Fate_I_C12 天前
Android函数式编程代码规范文档
android·代码规范
Fate_I_C12 天前
Kotlin 协程:串行/并行请求、async/await、coroutineScope 管理并发、重试机制
android·代码规范
东方隐侠安全团队-千里14 天前
DataGear 源码审计记录:我重点看了两条危险链
安全·代码规范·代码复审
程序员cxuan18 天前
10 个贼爽的 workflow 工作流
后端·程序员·代码规范