Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2021-21401_nanopb-c_AOSP10_R33 — 轻量级协议缓冲区实现,采用ANSI C编写,适用于微控制器和内存受限的嵌入式系统,能够高效地对结构化数据进行序列化和反序列化。 | Kitploit
工具/GitHubGitHub/uthrasri/cve-2021-21401_nanopb-c_aosp10_r33
嵌入式系统安全物联网安全代码分析密码学硬件安全固件分析
GitHubuthrasri/cve-2021-21401_nanopb-c_aosp10_r33

CVE-2021-21401_nanopb-c_AOSP10_R33

轻量级协议缓冲区实现,采用ANSI C编写,适用于微控制器和内存受限的嵌入式系统,能够高效地对结构化数据进行序列化和反序列化。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
61年前尚未审核

Nanopb - 嵌入式系统的 Protocol Buffers

Build Status

Nanopb 是一个采用 ANSI C 编写的小体积 Protocol Buffers 实现。它特别适合用于微控制器,但也适用于任何内存受限的系统。

  • 主页: https://jpa.kapsi.fi/nanopb/
  • 文档: https://jpa.kapsi.fi/nanopb/docs/
  • 下载: https://jpa.kapsi.fi/nanopb/download/
  • 论坛: https://groups.google.com/forum/#!forum/nanopb

使用 nanopb 库

要使用 nanopb 库,你需要做两件事:

  1. 使用 protoc 将你的 .proto 文件编译为 nanopb 格式。
  2. 将 pb_encode.c、pb_decode.c 和 pb_common.c 包含到你的项目中。

最简单的入门方法是研究 "examples/simple" 中的项目。其中包含一个 Makefile,在大多数 Linux 系统下可以直接使用。然而,对于任何其他类型的构建系统,请参阅该文件夹中 README.txt 里的手动步骤。

使用 Protocol Buffers 编译器(protoc)

nanopb 生成器是作为 Google 官方 protoc 编译器的一个插件实现的。这样做的好处是无需重新实现 .proto 文件的基本解析。但这确实意味着你需要安装 Google 的 protobuf 库才能运行生成器。

如果你下载了 nanopb 的二进制包(无论是 Windows、Linux 还是 Mac OS X 版本),'protoc' 二进制文件已包含在 'generator-bin' 文件夹中。在这种情况下,你可以直接开始使用。只需运行以下命令:

root@kitploit:~
generator-bin/protoc --nanopb_out=. myprotocol.proto

但是,如果你使用的是 git checkout 或纯源码分发版,则需要自行提供 protoc 和 Google 的 protobuf 库。在 Linux 上,需要的软件包是 protobuf-compiler 和 python-protobuf。在 Windows 上,你可以从源码构建 Google 的 protobuf 库,或者使用其二进制发行版之一。无论哪种情况,如果你使用独立的 protoc,都需要手动指定 nanopb 生成器的路径:

root@kitploit:~
protoc --plugin=protoc-gen-nanopb=nanopb/generator/protoc-gen-nanopb ...

运行测试

如果你想对 nanopb 核心进行进一步开发,或者想使用你自己的编译器和平台验证其功能,你需要运行测试套件。测试套件的构建规则使用 Scons 实现,因此你需要安装它。运行测试:

root@kitploit:~
cd tests
scons

这将显示各个测试用例的进度。如果输出没有以错误结束,则测试用例全部通过。

注意:Mac OS X 默认将 'clang' 别名为 'gcc',但实际并不支持与 gcc 相同的命令行选项。要在 Mac OS X 上运行测试,请使用:"scons CC=clang CXX=clang"。同样的方法也可以用于在任何平台上使用不同的编译器运行测试。

下载工具