Skip to content

第2节 安装部署(可选)


由于CyberChef工具开源,并且不依赖于服务器,所以你可以按照本说明离线使用,或者部署到自己的服务器上。

离线使用

首先来验证一个关键问题,打开我们的CyberChef中文版:https://mm.imbyter.com,等页面加载完成后,断网,然后双击一个左侧的模块,在输入面板输入任意字符,发现输出功能是有效的:

断网使用CyberChef

说明CyberChef虽然是一个web应用,但它的功能是可以离线使用,不依赖于服务器。

官方也明确说明了CyberChef完全在用户的浏览器中运行,没有服务器端组件,这意味着你输入的数据和处理流程不会发送到任何地方,无论你使用的是CyberChef的实时官方版本还是下载的独立版本版亦是如此。

那么,只要你愿意,你可以完全把CyberChef下载到电脑中当成一个本地工具,无论是Windows、Linux还是MacOS,都可以。

请注意,独立版本永远不会自我更新,所以你需要在需要的时候手动下载更新。

使用离线版非常简单,点击CyberChef中文版左上角的“下载官方源码”,然后点击“下载ZIP压缩包”即可:

下载官方源码

下载解压后,直接打开CyberChef_v10.8.2.html就可以正常使用了👏。

安装编译

如果你想给CyberChef做私有化定制,或者像我一样汉化翻译,二次开发,就可以按照下面的步骤来实现。

安装

CyberChef使用Grunt构建的,相对来说还是比较容易部署的。但有几个坑,我亲自踩过的,给大家提醒一下:

不建议 在Windows中部署CyberChef,即使是Windows中WSL的各种Linux子系统,都存在各种各样的错误(已踩坑🐸),所以只建议在Linux上或MacOS中部署。

  1. 安装nodejs

下载nodejs安装包,然后解压复制文件到执行目录:

tar -xf node-v20.11.1-linux-x64.tar
sudo mv node-v20.11.1-linux-x64/bin/* /usr/local/bin/
sudo mv node-v20.11.1-linux-x64/lib/node_modules/ /usr/local/lib/
  1. 下载CyberChef
git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install

编译

  1. 运行测试
npm start

如果一切正常,我们会得到类似如下的提示:

Running "concurrent:dev" (concurrent) task
Running "watch:config" (watch) task
Waiting...
Running "webpack-dev-server:start" (webpack-dev-server) task
<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: http://localhost:8080, http://127.0.0.1:8080/

此时就可以在本地浏览中访问 http://localhost:8080/ 测试CyberChef了。

如果期间遇到缺少xx模块的错误,根据错误类型安装指定模块即可,比如我在安装时提示:

WARNING in ./node_modules/asn1.js/lib/asn1/api.js 21:12-42
Module not found: Error: Can't resolve 'vm' in '/home/test/CyberChef/node_modules/asn1.js/lib/asn1'
    
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

就可以先通过npm install vm安装这个模块解决这个错误,然后再执行npm start

  1. 编译打包

通过编译得到整个项目,就可以得到一个随处可用的CyberChef了。

npm run build

此命令执行后,将会对所有源文件进行整理、测试、编译和压缩,并在/build/prod中生成CyberChef的完整web应用。

目录结构

  • build/
    • prod/ - 此文件夹包含最新构建的CyberChef生产版本,包括内联版本。
  • src/
    • core/ - 构成应用程序核心的CyberChef文件
      • config/ - 指定操作配置的文件
        • modules/ - 自动生成的模块引用
      • lib/ - 包含用于多个操作的共享代码库
      • errors/ - 自定义错误类型
      • operations/ - 操作对象
      • vendor/ - 当前无法通过npm导入的库
    • node/ - CyberChef的NodeJS版本的包装器
    • web/ - 组成CyberChef的应用程序的源代码
      • css/
        • lib/ - CSS库和Less文件
        • structure/ - 布局的结构样式
        • themes/ - 外观和感觉风格
      • html/
        • index.html - CyberChef页面结构
      • static/ - 静态文件,如图像
  • test/
    • tests/ - 操作配置测试文件
  • .babelrc - 模板配置
  • .editorconfig - 交叉兼容格式存储的文本编辑器
  • .travis.yml - Travis CI 构建的配置文件
  • Gruntfile.js - Grunt 构建的配置文件
  • webpack.config.js - Webpack 配置文件
  • postcss.config.js - PostCSS 配置文件
  • LICENSE - 开原许可 Apache 2.0 licence
  • package.json - npm 配置与依赖文件
  • README.md - CyberChef 说明

相关参考: