第2节 安装部署(可选)
由于CyberChef工具开源,并且不依赖于服务器,所以你可以按照本说明离线使用,或者部署到自己的服务器上。
离线使用
首先来验证一个关键问题,打开我们的CyberChef中文版:https://mm.imbyter.com,等页面加载完成后,断网,然后双击一个左侧的模块,在输入面板输入任意字符,发现输出功能是有效的:
说明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中部署。
- 安装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/
- 下载CyberChef
git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install
编译
- 运行测试
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
。
- 编译打包
通过编译得到整个项目,就可以得到一个随处可用的CyberChef了。
npm run build
此命令执行后,将会对所有源文件进行整理、测试、编译和压缩,并在/build/prod
中生成CyberChef的完整web应用。
目录结构
- build/
- prod/ - 此文件夹包含最新构建的CyberChef生产版本,包括内联版本。
- src/
- core/ - 构成应用程序核心的CyberChef文件
- config/ - 指定操作配置的文件
- modules/ - 自动生成的模块引用
- lib/ - 包含用于多个操作的共享代码库
- errors/ - 自定义错误类型
- operations/ - 操作对象
- vendor/ - 当前无法通过npm导入的库
- config/ - 指定操作配置的文件
- node/ - CyberChef的NodeJS版本的包装器
- web/ - 组成CyberChef的应用程序的源代码
- css/
- lib/ - CSS库和Less文件
- structure/ - 布局的结构样式
- themes/ - 外观和感觉风格
- html/
- index.html - CyberChef页面结构
- static/ - 静态文件,如图像
- css/
- core/ - 构成应用程序核心的CyberChef文件
- 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 说明
相关参考: