CyberChef用于加密、编码、压缩和数据分析的Web程序

CyberChef


网络瑞士军刀

Cyber​​Chef 是一款简洁直观的 Web 应用,可在 Web 浏览器中执行各种“网络”操作。这些操作包括简单的编码(例如 XOR 和 Base64)、更复杂的加密(例如 AES、DES 和 Blowfish)、创建二进制和十六进制转储、数据压缩和解压缩、计算哈希值和校验和、IPv6 和 X.509 解析、更改字符编码等等。

该工具旨在使技术和非技术分析师都能以复杂的方式操作数据,而无需处理复杂的工具或算法。它是由一位分析师在数年时间里,利用 10% 的创新时间构思、设计、构建和逐步改进的。

现场演示

Cyber​​Chef 仍在积极开发中。因此,它不应被视为成品。仍有测试和错误修复工作要做,需要添加新功能,还需要编写其他文档。请贡献力量!

在任何情况下,都不应依赖 Cyber​​Chef 中的加密操作来提供安全性。我们不保证其正确性。

使用 Docker 在本地运行

先决条件

  • Docker
  • Docker Desktop 必须在您的计算机上打开并运行

选项 1:自行构建 Docker 镜像

  1. 构建 Docker 镜像
bash 复制代码
docker build --tag cyberchef --ulimit nofile=10000 .
  1. 运行 docker 容器
bash 复制代码
docker run -it -p 8080:80 cyberchef
  1. 在浏览器中访问 http://localhost:8080

选项 2:使用预构建的 Docker 镜像

如果您不想执行构建过程,可以使用预构建的镜像

bash 复制代码
docker run -it -p 8080:80 ghcr.io/gchq/cyberchef:latest

和之前一样,在浏览器中访问 http://localhost:8080

此镜像是通过我们的 GitHub Workflows 构建和发布的。

工作原理

Cyber​​Chef 主要分为四个区域:

  1. 右上角的输入框,您可以在其中粘贴、输入或拖动要操作的文本或文件。
  2. 右下角的输出框,您的处理结果将显示在此处。
  3. 最左侧的操作列表,您可以在其中通过分类列表或搜索找到 Cyber​​Chef 支持的所有操作。
  4. 中间的配方区域,您可以在其中拖动要使用的操作并指定参数和选项。

您可以根据需要使用任意数量的操作,并设置简单或复杂的操作方式。以下是一些示例:

  • 解码 Base64 编码的字符串
  • 将日期和时间转换为不同的时区
  • 解析 Teredo IPv6 地址
  • 转换十六进制转储数据,然后解压缩
  • 解密并反汇编 Shellcode
  • 将多个时间戳显示为完整日期
  • 对不同类型的数据执行不同的操作
  • 将输入的部分内容用作操作的参数
  • 执行 AES 解密,从密码流的开头提取初始向量
  • 自动检测多层嵌套编码

功能

  • 拖放
    • 操作可拖入或拖出配方列表,或重新组织操作。
    • 可将最大 2GB 的文件拖到输入框上,直接加载到浏览器中。
  • 自动烘焙
    • 每当您修改输入或配方时,Cyber​​Chef 都会自动为您“烘焙”并立即生成输出。
    • 如果此功能影响性能(例如,当输入数据非常大时),您可以关闭此功能并手动操作。
  • 自动编码检测
    • Cyber​​Chef 使用多种技术尝试自动检测数据所采用的编码。如果它找到适合您数据的操作,它会在“输出”字段中显示“magic”图标,您可以点击该图标来解码数据。
  • 断点
    • 您可以在配方中的任何操作上设置断点,以便在运行之前暂停执行。
    • 您还可以逐个操作地执行配方,查看每个阶段的数据。
  • 保存和加载配方
    • 如果您想出了一个很棒的配方,并且知道您会想再次使用,只需点击“保存配方”并将其添加到本地存储即可。下次您访问 Cyber​​Chef 时,它就会等着您。
    • 您还可以复制包含配方和输入的 URL,以便轻松与他人分享。
  • 搜索
    • 如果您知道所需操作的名称或与其相关的单词,请在搜索栏中输入该名称,任何匹配的操作都会立即显示出来。
  • 突出显示
    • 当您突出显示输入或输出中的文本时,将显示偏移量和长度值,并且如果可能,相应的数据也会分别在输出或输入中突出显示(例如:[突出显示输入中的单词“question”以查看它在输出中出现的位置][11])。
  • 保存到文件并从文件加载
    • 您可以随时将输出保存到文件,或通过拖放文件到输入字段来加载文件。支持最大约 2GB 的文件(取决于您的浏览器),但是,某些操作可能需要很长时间才能处理如此大的数据量。
  • Cyber​​Chef 完全是客户端应用程序。
    • 需要注意的是,您的任何食谱配置或输入(无论是文本还是文件)都不会发送到 Cyber​​Chef 网络服务器 - 所有处理都在您的计算机上的浏览器中进行。
    • 由于此功能,Cyber​​Chef 可以下载并在本地运行。您可以使用应用程序左上角的链接下载 Cyber​​Chef 的完整版本,并将其放入虚拟机、与其他人共享或托管在封闭网络中。

深度链接

通过修改 Cyber​​Chef 的 URL 哈希值,您可以更改页面打开时的初始设置。
格式为 https://gchq.github.io/Cyber​​Chef/#recipe=Operation()&input=...

支持的参数包括 recipeinput(Base64 编码)和 theme

浏览器支持

Cyber​​Chef 支持以下浏览器:

  • Google Chrome 50+
  • Mozilla Firefox 38+

Node.js 支持

Cyber​​Chef 完全支持 Node.js v16。更多信息,请参阅 “Node API” wiki 页面

贡献

向 Cyber​​Chef 贡献新操作非常简单!快速入门脚本将引导您完成整个过程。如果您会编写基本的 JavaScript,就能编写 Cyber​​Chef 操作。

您可以在 “贡献”wiki 页面 中找到安装指南、添加新操作和主题的操作指南、代码库结构描述、可用数据类型和编码规范。

  • 将更改推送到您的 fork 分支。
  • 提交拉取请求。如果您是首次执行此操作,系统将提示您通过拉取请求中的 CLA 助手签署 GCHQ 贡献者许可协议。这还会询问您是否愿意让 GCHQ 与您联系,以感谢您的贡献,或提供 GCHQ 的工作机会。

许可

Cyber​​Chef 采用 Apache 2.0 许可证 发布,并受 英国皇家版权 保护。

关于项目

Cyber​​Chef 是一款简洁直观的 Web 应用,可在 Web 浏览器中执行各种“网络”操作。这些操作包括 XOR 和 Base64 等简单编码、AES、DES 和 Blowfish 等复杂加密、创建二进制和十六进制转储、数据压缩和解压缩、计算哈希值和校验和、IPv6 和 X.509 解析、更改字符编码等等。
Apache-2.0
Javascript
32,773
3691
396
2016-11-28
2025-08-06

增长趋势 - stars