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

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

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

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

工具目录

分类

查看所有分类
Loading categories
protocol-fuzzer-ce — 这是GitLab协议模糊测试框架的社区版。该框架基于Peach Fuzzer Professional,移除了一些功能。 | Kitploit
工具/GitLabGitLab/gitlab-org/security-products/protocol-fuzzer-ce
漏洞分析模糊测试DevSecOps
GitLabgitlab-org/security-products/protocol-fuzzer-ce

protocol-fuzzer-ce

这是GitLab协议模糊测试框架的社区版。该框架基于Peach Fuzzer Professional,移除了一些功能。

查看仓库

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
76304年前Kitploit 审核通过

:toc:

= GitLab 协议模糊测试器社区版

本项目基于 Peach Fuzzer Professional v4,后者于 2020 年被 GitLab 收购。Peach Fuzzer Professional 的某些功能已被移除,并将在未来作为 GitLab 的一部分提供。本项目替代了托管在 GitLab 和 Source Forge 上的 Peach Fuzzer 社区项目。

由于此代码最初由 Peach Tech 开发,仓库中可能多处提及 Peach Tech 的员工、电子邮件地址、网站或特有功能。这些内容将逐步更新为指向 GitLab。如果你发现此类内容,欢迎提交 MR 以请求澄清和/或更新。

在二进制文件可用之前,请遵循本地构建说明。

== 仓库布局

build:: 编译仓库的构建脚本。包括 waf(Peach 使用的构建系统)、asciidoctor 模板以及集成构建中 Jenkins 使用的各种脚本。

core:: 开源与闭源 Peach 之间的通用类和接口。

docs:: 用户指南、开发者指南和试用指南的所有文档。

packer:: packer(https://packer.io)用于生成托管试用 AMI 和本地试用 OVA 的模板和脚本。

pro:: Peach Professional 及其相关应用程序和测试的源代码。

tools:: 构建所需的脚本(nunit 启动器和 *.exe.config 生成器)。

== Git 工作流

构建脚本要求所有提交消息遵循一套规则。消息必须以以下前缀之一开头:new: chg: fix: dev:。不允许合并提交,建议将所有 PR 压缩为单个提交。

提交消息的第一行用于自动生成面向客户的变更日志。后续行可以包含任何内容,并且在生成变更日志时会被忽略。如果提交消息以 dev: 开头,则该提交将从变更日志中省略。其他提交被归类为新增、更改或修复。

== 本地构建说明

Peach 支持在 Windows、Linux 和 OSX 计算机上编译。Peach 使用 waf(https://waf.io/)作为其构建系统。Waf 支持“构建变体”的概念,用于为不同平台和架构编译 Peach。

Peach 使用 11 种不同的构建变体:

Windows:: win_x86_debug win_x86_release win_x64_debug win_x64_release

Linux:: linux_x86_debug linux_x86_release linux_x86_64_debug linux_x86_64_release

OSX:: osx_debug osx_release

文档:: doc

Waf 支持外部构建,这意味着中间文件和输出二进制文件放置在不同于源代码的目录中。对于 Peach 构建,中间文件放置在 slag/{variant} 目录,并安装到 output/{variant} 目录。

Waf 会在根目录的所有子目录中查找 wscript_build 文件并执行其中的内容。对于大多数顶层 wscript_build 文件,它们通常只包含下一步要递归的子目录列表。

=== Windows 构建先决条件:

  • Python 2.7
  • Ruby 2.3
  • doxygen、java、xmllint、xsltproc
  • .NET Framework 4.6.1
  • Visual Studio 2015 或 2017(含 C++ 编译器)
  • TypeScript 编译器 (tsc) v2.8
  • 下载 Intel Pin(参见 3rdParty/pin/README.md)

通过 PowerShell 添加以下两个注册表项:


new-itemproperty -path "HKLM:\SOFTWARE\Microsoft.NETFramework\v4.0.30319" -name "SchUseStrongCrypto" -Value 1 -PropertyType "DWord"; new-itemproperty -path "HKLM:\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v4.0.30319" -name "SchUseStrongCrypto" -Value 1 -PropertyType "DWord"

=== Linux 构建先决条件:

  • 推荐 Ubuntu 16.04
  • gcc 和 g++
  • g++-multilib(用于 x86 交叉编译)
  • python 2.7
  • ruby 2.3
  • doxygen、java、xmllint、xsltproc
  • mono-complete v4.8.1
  • nodejs 和 tsc v2.8
  • 下载 Intel Pin(参见 3rdParty/pin/README.md)

=== 构建命令

编译 Peach 所需的最小命令如下:


waf configure waf build waf install

waf configure:: 这是编译 Peach 必须运行的第一步。此步骤类似于 Linux 库编译的 autoconf 阶段。+Waf 将尝试定位所有构建依赖项并保存其路径。如果某个构建变体的依赖项无法定位,则该构建变体将被标记为不支持。这在你只想构建 linux_x86_64 但不需要构建文档时可能很有用。+configure 阶段将运行 paket(https://fsprojects.github.io/Paket/)程序,并根据 paket/paket.dependencies 中的需求从 nuget 获取所有第三方依赖项。+注意:waf configure 只需运行一次。对于修改 Peach 源代码的通常开发工作流程,你不需要运行此命令。但是,如果你对构建脚本(位于 build 目录)进行了更改,或者更改了已安装的构建工具集,则需要重新运行此命令,以便解析更新的工具路径。+提示:如果由于无法定位所需工具而发生错误,请尝试以更高详细级别重新运行。waf configure -v 将显示每个正在定位的依赖项及其检测到的完整路径。+配置阶段也是集成构建设置版本号的方式。通过运行 waf configure --buildtag=4.3.100,所有构建产物都将标记上指定的构建标签。如果未指定选项,构建标签默认为 0.0.0。

waf build:: 这是编译仓库中所有位的命令。编译包括生成版本标记文件、运行任何源代码转译、编译源代码并链接结果。+此命令类似于在 Linux 上运行 make。+构建阶段的所有产物最终将位于 slag/{variant} 目录。

waf install:: 此命令将程序输出以及所有库依赖项安装到 output/{variant} 目录。+此命令类似于在 Linux 上运行 make install。+Linux 上通常的开发工作流程是运行 waf install --variant=linux_x86_64_debug,然后运行 ./output/linux_x86_64_debug/bin/peach。

=== 可选构建命令

waf pkg:: 生成安装程序 zip。对于 Peach,有两个 zip,一个用于内部使用(运行单元测试/集成测试),另一个用于外部使用(上传到下载站点)。两个 zip 位于 output/{variant}/pkg 文件夹中。最后,此 waf 命令将创建本地许可证服务器 zip。

waf test:: 运行所有单元测试。要为 Windows x64 调试变体运行单元测试,可以运行 waf test --variant=win_x64_debug。

waf msvs2017:: 为 Visual Studio 2017 创建所有 .csproj 文件和 Peach.sln 文件。

waf zip:: 将安装阶段的所有输出压缩到一个单一产物中。

=== Waf 说明

Waf 的使用遵循语法:waf [command] [options]。对于所有命令,可以通过添加一个或多个 -v 参数来提高详细程度。除 configure 外,所有命令都支持以下选项:

  • --variant=xxx 会将命令过滤为名称中包含 'xxx' 的变体。这意味着 --variant=4_d 将匹配 linux_x86_64_debug 和 win_x64_debug 变体。
  • -j1 将控制 waf 的任务并行化,使其一次只能运行一个任务。默认情况下,waf 会同时运行 N 个任务,其中 N 对应于主机 CPU 核心数。仅一次运行一个任务有时可能有助于排除构建错误。
  • waf --help 将显示完整的支持命令和选项列表。

== 提交合并请求

指南

  1. 拉取请求必须附带单元测试
  2. 正确使用日志记录
  3. 所有合并请求都将经过源代码审查

请确保 Peach 团队,特别是 @mikeeddington 知晓合并请求接受的任何截止日期。否则,合并请求通常可能需要几个月才能被接受。

=== 日志记录

Peach 使用 NLog 进行调试/跟踪消息的记录。

调试:: 调试消息应谨慎使用。客户使用 --debug 来识别其测试用例中的问题。保持此输出简洁至关重要,仅显示最终用户需要的信息。

跟踪:: 此日志级别应用于 Peach 开发人员主要需要的输出,或用于诊断可能的问题,但不是客户希望始终看到的内容。

=== 单元测试

所有拉取请求都需要包含单元测试,以合理覆盖所有功能。NUnit 是我们的单元测试框架。在提交拉取请求之前,请验证所有 Peach 单元测试均已通过。

=== 文档

所有发布的代码功能都需要产品文档。这可能是针对修复或类似功能的新文档,或对现有文档的更新。

下载工具