文章总结: xcanvas是一个轻量级、无依赖的开源代码指纹框架,旨在为DevSecOps场景提供标准化的项目技术栈识别能力。它通过规则驱动的方式,可以快速构建项目画像,识别出项目使用的语言、框架和组件,并输出详细的报告。 综合评分: 85 文章分类: 工具介绍,代码审计,安全建设,应用安全,技术标准
【工具】xcanvas:开源代码指纹框架
原创
酒零 酒零
NOVASEC
2026年3月1日 00:00 湖南
0x00 前言
免责声明:继续阅读文章视为您已同意[NOVASEC免责声明].
注:本文属于推荐系列文章,本文所推荐内容为内部项目,由本团队开源实现。本系列文章旨在分享各类优质项目,提升其关注度与影响力,文中观点仅代表作者个人看法。若您有更合适的替代项目,欢迎在留言区推荐分享,共同推荐优质项目资源。
xcanvas
轻量级、无依赖、可嵌入的代码画像引擎,面向 DevSecOps 场景,提供标准化的项目技术栈识别能力。
核心价值
✅ 快速构建项目画像:输出语言、框架、组件三元组
✅ 规则驱动:新增框架/组件仅需更新 YAML 配置,无需重新编译
程序逻辑
xcanvas 的运行逻辑分为以下几个主要步骤:
-
命令行参数解析
:解析项目路径、规则目录、输出文件等参数
-
初始化框架引擎
:加载嵌入式规则和用户自定义规则
-
代码分析
:
- 遍历项目目录,构建文件索引
- 识别文件语言类型,统计各语言的文件数、代码行数等信息
- 对语言进行分类(前端/后端/桌面/其他)
-
框架和组件检测
:
- 根据检测到的语言过滤规则
- 使用文件索引加速匹配过程
- 遍历规则,对每个框架进行检测,提取版本信息
-
生成报告
:输出命令行报告和JSON格式结果
运行示例
λ xcanvas.exe -p xcanvasFrontend LanguageInfos:- Markdown- TSX
Backend LanguageInfos:- Java- PHP- Go
Other LanguageInfos:- XML- YAML- JSON
All LanguageInfos:- XML: 2 files, 175 lines- Java: 1 files, 41 lines- PHP: 3 files, 15 lines- Markdown: 1 files, 140 lines- Go: 31 files, 2423 lines- YAML: 14 files, 2025 lines- JSON: 2 files, 18 lines- TSX: 1 files, 7 lines
Detected Frameworks: [frontend] - React (JavaScript) Version: 18.0.0 Evidence: FrameRule matched for React - Vue.js (JavaScript) Version: 3.3.4 Evidence: FrameRule matched for Vue.js - Next.js (JavaScript) Version: 13.5.6 Evidence: FrameRule matched for Next.js [backend] - Gin (Go) Version: 1.9.0 Evidence: FrameRule matched for Gin - Hibernate ORM (Java) Version: 5.6.15.Final Evidence: FrameRule matched for Hibernate ORM - Express (JavaScript) Version: 4.18.2 Evidence: FrameRule matched for Express - Laravel (PHP) Version: 10.0 Evidence: FrameRule matched for Laravel
Detected Components: [frontend] - lodash (JavaScript) Version: 4.17.21 Evidence: FrameRule matched for lodash - axios (JavaScript) Version: 1.6.2 Evidence: FrameRule matched for axios [backend] - grpc-go (Go) Version: 1.59.0 Evidence: FrameRule matched for grpc-go - log4j (Java) Version: 2.23.1 Evidence: FrameRule matched for log4j - fastjson (Java) Version: 1.2.83 Evidence: FrameRule matched for fastjson - mysql-connector-java (Java) Version: 8.3.0 Evidence: FrameRule matched for mysql-connector-java - postgresql (Java) Version: 42.7.4 Evidence: FrameRule matched for postgresql - commons-collections (Java) Version: 3.2.2 Evidence: FrameRule matched for commons-collections - commons-beanutils (Java) Version: 1.9.4 Evidence: FrameRule matched for commons-beanutils - rome (Java) Version: 1.18.0 Evidence: FrameRule matched for rome - groovy (Java) Version: 4.0.18 Evidence: FrameRule matched for groovy - spring (Java) Version: 5.3.31 Evidence: FrameRule matched for spring - hibernate (Java) Version: 5.6.15.Final Evidence: FrameRule matched for hibernate - javassist (Java) Version: 3.29.2-GA Evidence: FrameRule matched for javassist - c3p0 (Java) Version: 0.9.5.5 Evidence: FrameRule matched for c3p0 - commons-io (Java) Version: 2.15.1 Evidence: FrameRule matched for commons-io - commons-lang (Java) Version: 3.14.0 Evidence: FrameRule matched for commons-lang - httpclient (Java) Version: 4.5.14 Evidence: FrameRule matched for httpclient - jackson (Java) Version: 2.17.1 Evidence: FrameRule matched for jackson - junit (Java) Version: 4.13.2 Evidence: FrameRule matched for junit
Generated: Wed, 11 Feb 2026 11:05:55 CST
项目地址
https://github.com/winezer0/xcanvas
本项目 xcanvas 是 XSASTGO 的 项目信息基础依赖部分,主要用于分析代码的组件和框架信息,并提供给相关审计工具进行使用。
如果您对XSASTGO感兴趣可以访问XSASTGO 代码审计工具更新
NOVASEC
WINEZER0
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:NOVASEC 酒零 酒零《【工具】xcanvas:开源代码指纹框架》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论