GCHQ网络厨师:网络瑞士军刀

2020-08-30 18:22:12

CyberChef是一款简单、直观的网络应用程序,可以在网络浏览器中执行各种网络操作。这些操作包括简单的编码(如XOR或Base64)、更复杂的加密(如AES、DES和Blowfish)、创建二进制和六进制转储、数据压缩和解压缩、计算散列和校验和、IPv6和X.509解析、更改字符编码,等等。

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

CyberChef仍在积极开发中。因此,它不应该被认为是成品。还有测试和错误修复要做,还有新功能要添加,还有其他文档要写。请大家贡献自己的力量!

在任何情况下都不应依赖CyberChef中的加密操作来提供安全性。不能保证它们的正确性。

右上角的输入框,您可以在其中粘贴、键入或拖动要操作的文本或文件。

右下角的输出框,将在其中显示处理结果。

最左边的操作列表,您可以在分类列表中或通过搜索找到CyberChef能够执行的所有操作。

中间的配方区域,您可以在其中拖动要使用的操作并指定参数和选项。

您可以通过简单或复杂的方式使用任意多的操作。以下是一些示例:

可以将最大2 GB的文件拖放到输入框上,将其直接加载到浏览器中。

自动烘焙每当您修改输入或食谱时,CyberChef将自动为您烘焙并立即产生输出。

如果这会影响性能(例如,如果输入非常大),则可以关闭并手动操作。

自动编码检测CyberChef使用许多技术来尝试自动检测您的数据采用的是哪种编码。如果它找到可以理解您的数据的合适操作,它会在输出字段中显示魔术图标,您可以单击该图标来解码您的数据。

断点您可以在配方中的任何操作上设置断点,以便在运行之前暂停执行。

您还可以一次单步执行一个食谱操作,以查看每个阶段的数据情况。

保存并加载食谱如果您想要再次使用一个很棒的食谱,只需单击“保存食谱”并将其添加到您的本地存储中。它将在您下次访问CyberChef时恭候您的光临。

您还可以复制URL,其中包括您的食谱和输入,以便与其他人轻松共享。

搜索如果您知道所需操作的名称或与其相关联的单词,请开始在搜索字段中键入该名称,任何匹配的操作都将立即显示。

突出显示当您突出显示输入或输出中的文本时,将显示偏移量和长度值,如果可能,相应的数据将分别突出显示在输出或输入中(例如:突出显示输入中的单词问题以查看其在输出中的位置)。

保存到文件和从文件加载您可以随时将输出保存到文件,或者通过将文件拖放到输入字段来加载文件。支持大小约为2 GB的文件(取决于您的浏览器),但是有些操作可能需要很长时间才能处理这么多数据。

CyberChef完全是客户端应该注意的是,您的配方配置或输入(无论是文本还是文件)都不会发送到CyberChef Web服务器-所有处理都是在您的浏览器中、在您自己的计算机上执行的。

由于这一功能,CyberChef可以下载并在本地运行。你可以使用应用程序左上角的链接下载CyberChef的完整副本,并将其放入虚拟机中,与其他人共享,或者将其托管在封闭的网络中。

通过操作CyberChef的URL散列,您可以更改打开页面的初始设置。格式为https://gchq.github.io/CyberChef/#recipe=Operation()&;input=...。

CyberChef构建为完全支持Node.js V10,部分支持V12。使用深度导入说明符的命名导入在V12中不起作用。有关详细信息,请参阅项目维基页面中的节点API页面

为CyberChef贡献一个新的业务是超级容易的!这里有一个快速入门脚本,它将引导您完成此过程。如果可以编写基本的JavaScript,就可以编写CyberChef操作。

安装演练、添加新操作和主题的操作指南、存储库结构描述、可用的数据类型和编码约定都可以在项目维基页面中找到。

提交拉式请求。如果您是第一次这样做,系统将提示您通过CLA助理在Pull请求上签署GCHQ贡献者许可协议。这也将询问您是否很高兴GCHQ与您联系,以感谢您的贡献,或者GCHQ的工作机会。