纲目规则库 · gangmu-rules
免费的规则库:被各家 SDK 拷贝最多的上游开源组件,社区共同维护。
纲目 Gangmu 用这份规则库在嵌入式 C/C++ 源码树里认出被改名、魔改、 静态链接的开源组件,并生成 SBOM。工具和规则分开维护:工具按版本发布,规则按日期发布, 新增一条规则不用等工具发版。
安装
pip install gangmu-sbom # 会一并装上 gangmu-rules
pip install -U gangmu-rules # 只更新规则
gangmu rules lint # 查看当前加载了哪些规则
无法访问 PyPI 的内网环境:从 Releases 下载
gangmu-rules-offline-<版本>.tar.gz,解压后用 SHA256SUMS 校验,再设置 GANGMU_RULES=<解压目录>。
里面有什么
| 目录 | 内容 |
|---|---|
rules/generic/ |
被各家 SDK 拷贝最多的上游组件:lwIP、Mbed TLS、FreeRTOS、RT-Thread、LiteOS、GmSSL、铜锁、wolfSSL,以及 zlib、libpng、curl、Expat、LZ4、Lua、ThreadX、WAMR、coreMQTT、TinyUSB、MCUboot、FreeRTOS-Plus-TCP、libsodium、Mongoose、MicroPython 等 |
rules/zephyrproject/ |
Zephyr 及其 HAL 模块 |
rules/patches/ |
补丁记录:某条公告的修复改了哪些函数。gangmu vuln --source ROOT 据此判断厂商那份代码里修复本身在不在,而不是只看版本号去猜(目前 9 条:nanopb、nimble、wolfSSL、libjpeg-turbo)。每条记录在 CI 里都从它写明的上游提交重新生成并比对,见 CONTRIBUTING.md |
共 89 条规则,全部免费,欢迎社区贡献。
厂商专属的规则
只跟一家公司绑定的规则(这家公司自己的 SDK、固件库,或它 fork 过的开源组件)不在这个免费规则库里,属于商业版规则包。 规则 id 与这里一致,装上商业版规则包后自动叠加;只装这个仓库时,这些公司的固件库不会被认出来。
每条规则都写明它对应的上游版本(固定的标签或提交),CI 会从这个上游重新推导证据,复现不了的规则不会合入。
叠加自己的规则
自有 BSP、未公开的 SDK,可以写在自己的目录里,扫描时叠加在社区规则之上;同一个 id 以后加载的为准:
gangmu scan firmware/ --rules "$(python -c 'import gangmu_rules;print(gangmu_rules.path())')" --rules my-rules/
也可以把私有规则做成 Python 包,通过 gangmu.rule_packs 入口自动加载(见本仓库的 pyproject.toml)。
相关仓库
| 仓库 | 做什么 |
|---|---|
| gangmu | 工具本体:扫描、SBOM、漏洞比对、CRA 与工信部草稿。工具本身的问题去那里提 |
| gangmu-rules(本仓库) | 免费规则库:认不出某个 SDK 里的通用组件、认错了版本,在这里提 issue 或 PR |
| gangmu-bench | 评测:用真实上游发布版检验规则认得对不对,每次规则变动后都可以重跑 |
| gangmu-cbom-rules | 密码算法与库能力表:gangmu cbom 读的规则,格式和本仓库不同 |
| gangmu-action | GitHub Action:在 CI 里生成 SBOM、CBOM 并给出后量子就绪报告 |
商业版在开源版之上叠加持续监测、报送工作台和规则企业服务,见开源版与商业版。
参与规则共建,联系我们
一条规则只需要一个干净的上游版本和一次 gangmu rules verify,欢迎大家一起补。
- 通用开源组件、Zephyr 与 HAL、国产 SDK 里常见的第三方库:直接提 issue 或 PR,见 CONTRIBUTING.md;
- 想认领某个芯片 SDK、不确定规则该放哪里、手上有真实固件样本愿意帮忙验证:先联系我,避免重复劳动;
- 厂商专属规则、私有 BSP、商业版规则包:同样联系我。
联系方式:邮箱 64031875@qq.com,或扫码进「CRA 合规群」(二维码有有效期,扫不出来请发邮件)。
你贡献的规则按本仓库的许可证(CDLA-Permissive-2.0)授权;已有内容不会撤回,也不会收费。
许可证
规则数据采用 CDLA-Permissive-2.0,任何项目和产品都可以使用;打包代码采用 Apache-2.0。
厂商专属规则包、带响应时限的规则更新、离线镜像或为自有 SDK 编写私有规则,见开源版与商业版。
Metadata
Release files for gangmu-rules 2026.10.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gangmu_rules-2026.10.11.tar.gz | 5.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gangmu_rules-2026.10.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.3 MB
Release files / gangmu_rules-2026.10.11.tar.gz
| Download URL | gangmu_rules-2026.10.11.tar.gz |
|---|---|
| Size | 5.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5cc7dfccdf6380f6de6a9287a62af1a8629b148daddf8a5b954265640fee51e5
|
|
BLAKE2b-256 checksum How to use checksums |
624237ef7e707d0e9ee8cbdf7767980e30e09cbd3c5b7b855c47171e4abd5f2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / gangmu_rules-2026.10.11-py3-none-any.whl
| Download URL | gangmu_rules-2026.10.11-py3-none-any.whl |
|---|---|
| Size | 5.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eefa40435cc1aa23e6d4780b164b75b2b33c18f5b00c074c3951b0589e55fbd9
|
|
BLAKE2b-256 checksum How to use checksums |
0359e30ae9a394661c4474ed01e6203fb6156834cd07e8223dcb64281c6998fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency log