Re-Movery是一个基于Movery重构的漏洞代码克隆检测工具。该版本在原有功能基础上进行了重大改进,提升了性能并增加了新特性。
Re-Movery主要用于检测代码库中可能存在的已知漏洞代码克隆。它不仅可以发现完全相同的代码克隆,还能识别经过修改的漏洞代码,帮助开发者及时发现和修复潜在的安全问题。
- 安装Re-Movery:
pip install -r requirements.txt
pip install -e .
- 创建配置文件
config.json
:
{
"processing": {
"num_processes": 4,
"enable_cache": true
}
}
- 运行扫描:
movery /path/to/your/code
- 查看报告:
扫描完成后,在
reports
目录下会生成HTML格式的分析报告。
- 多进程并行分析
- 内存映射文件处理
- 结果缓存机制
- 算法优化
- 基于模式的检测
- AST语法分析
- 语义相似度匹配
- 上下文感知检测
- Python
- Java
- C/C++
- Go
- JavaScript/TypeScript
- HTML格式报告
- 可视化图表
- 漏洞严重程度分类
- 详细的上下文信息
- 修复建议
- 输入验证
- 资源限制
- 速率限制
re-movery/
├── config/ # 配置
├── utils/ # 工具
│ ├── logging.py # 日志
│ ├── memory.py # 内存管理
│ └── parallel.py # 并行处理
├── analyzers/ # 分析器
│ └── language.py # 语言分析
├── detectors/ # 检测器
│ └── vulnerability.py # 漏洞检测
└── reporters/ # 报告生成器
└── html.py # HTML报告
创建config.json
文件来自定义Re-Movery的行为:
{
"processing": {
"num_processes": 4, # 并行进程数
"enable_cache": true # 启用缓存
},
"detector": {
"min_similarity": 0.8, # 最小相似度
"enable_semantic_match": true # 启用语义匹配
}
}
创建signatures.json
文件来定义漏洞模式:
{
"signatures": [
{
"id": "CWE-78",
"name": "OS命令注入",
"severity": "严重",
"code_patterns": [
"os\\.system\\(.*\\)"
]
}
]
}
本项目采用MIT许可证 - 详见LICENSE文件。
本项目由heyangxu开发和维护。
如需报告问题,请在GitHub仓库提交Issue。