Cyberchef开发operation操作之-node开发环境搭建

devtools/2025/1/16 21:53:53/

本文介绍一下Cyberchef开发operation操作环境的搭建工作,为后续的Cyberchef开发operation操作提供开发环境基础,这里。该篇作为我的专栏《Cyberchef 从入门到精通教程》中的一篇,详见这里。

Linux环境

由于cyberchef只支持Linux和MAC的开发环境,因此需要安装Linux,我个人选择Debian为开发环境。
在这里插入图片描述
我的环境如下:
在这里插入图片描述
个人可以根据情况灵活选择MAC系统或者不同的Linux发行版本。

node_7">node安装

cyberchef的开发环境为node18,具体要求详见这里。关于node的安装参考见这里,和这里。使用如下命令安装node18:

sudo apt-get install -y curl
curl -fsSL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh
sudo -E bash nodesource_setup.sh
sudo apt-get install -y nodejs
node -v

SMB设置

由于开发环境是在debian中,但是IDE工具使用的是Windows上的VS code,因此需要配置SMB。debian默认没有SMB,因此需要首先安装,命令如下:

apt-get install samba
sudo mkdir -p /repo
sudo chmod 777 /repo
chown -R debain:debian repo

选择repo为共享目录,同时通过bashnano /etc/samba/smb.conf修改SMB配置文件,在配置文件末尾添加如下配置:

[share]comment = Shared folderpath = /repobrowseable = yesguest only = yeswritable = yesread only = nocreate mask = 0777directory mask = 0777

修改之后重启SMB,如下:

systemctl restart smbd
systemctl restart nmbd

这里这个共享目录路径选择非常关键,最好在根目录下设置repo。因为在Samba里,如果你要设置的共享目录是/home/debian/share,那么必须把home,debian ,share这三个目录,即共享的父目录直到 / 下面的目录,全部设置为可访问可读写权限,这样最后才能在Windows上成功访问SMB,不然的话在输入正确的用户名和密码之后会一直提示没有权限访问。因此为了省事,上述直接在根目录新建repo目录。

Windows设置

为了避免可能的SMB访问问题,通常在window上还需要做如下设置,首先打开SMB1:
在这里插入图片描述

其次启动不安全来宾登录:
在这里插入图片描述

最后将SMB的文件路径映射到本地的F盘:
在这里插入图片描述

如果已经存在连接使用如下命令进行删除:

net use \\192.168.233.132\share /delete

Git设置

下载代码,首先确保本机器安装了gitgit的下载链接为这里。需要设置git的代理进行GitHub代码下载,前提要本地启用代理,在debian中使用命令如下:

git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

当然也可以在winddows上VScode设置,如下:
在这里插入图片描述

cyberchef_69">cyberchef

代理

首先在debian的cyberchef文件夹下,执行npm install,将会按照package.json文件中的配置,安装cyberchef所需要的依赖文件。需要注意的是这个地方需要设置代理,不然有些安装包源可能存在问题,debian上设置代理如下:
在这里插入图片描述

去除代理的命令为:

unset http_proxy
unset https_proxy

npm_install_80">npm install

执行npm install,安装依赖如下:
在这里插入图片描述
npm install执行的结果如下

npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@astronautlabs/amf@0.0.6',
npm warn EBADENGINE   required: { node: '^14' },
npm warn EBADENGINE   current: { node: 'v18.20.5', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn deprecated phin@2.9.3: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm warn deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm warn deprecated loglevel-message-prefix@3.0.0: Use @natlibfi/loglevel-message-prefix instead
npm warn deprecated es6-polyfills@2.0.0: Use @natlibfi/es6-polyfills instead> cyberchef@10.19.4 postinstall
> npx grunt exec:fixCryptoApiImports && npx grunt exec:fixSnackbarMarkup && npx grunt exec:fixJimpModuleRunning "exec:fixCryptoApiImports" (exec) taskDone.
Running "exec:fixSnackbarMarkup" (exec) taskDone.
Running "exec:fixJimpModule" (exec) taskDone.added 1468 packages in 2m199 packages are looking for fundingrun `npm fund` for details

npm_start_114">npm start

执行npm start, 该命令的逻辑位于package.json中,如下:
在这里插入图片描述

npm start 执行结果如下:

> cyberchef@10.19.4 start
> npx grunt devRunning "clean:dev" (clean) task
>> 0 paths cleaned.Running "clean:config" (clean) task
>> 0 paths cleaned.Running "exec:generateConfig" (exec) task--- Regenerating config files. ---
Written operation index.
Written OperationConfig.json
Written Ciphers module
Written Default module
Written Encodings module
Written Image module
Written Crypto module
Written Serialise module
Written Hashing module
Written Bletchley module
Written Compression module
Written Code module
Written Diff module
Written Shellcode module
Written Charts module
Written Regex module
Written PGP module
Written PublicKey module
Written OCR module
Written URL module
Written UserAgent module
Written Protobuf module
Written Yara module
Written OpModules.mjs
--- Config scripts finished. ---Running "concurrent:dev" (concurrent) taskRunning "watch:config" (watch) taskWaiting...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://[::1]:8080/<i> [webpack-dev-server] Content not from webpack is served from '/repo/CyberChef-Peter/public' directoryBrowserslist: caniuse-lite is outdated. Please run:npx update-browserslist-db@latestWhy you should do it regularly: https://github.com/browserslist/update-db#readme

访问本地localhost:8080的web服务如下:
在这里插入图片描述

有了上述的前期准备,接下来就可以按照自己的需求定制化自己的operation了,详见后续的文章《Cyberchef开发operation操作之-增加LEEF解析插件》,这里。

上述就是cyberchef开发所依赖的环境配置,希望对你开发cyberchef的操作有所帮助。

本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。


http://www.ppmy.cn/devtools/151068.html

相关文章

Linux下源码编译安装Nginx1.24及服务脚本实战

1、下载Nginx [rootlocalhost ~]# wget -c https://nginx.org/download/nginx-1.24.0.tar.gz2、解压 [rootlocalhost ~]# tar xf nginx-1.24.0.tar.gz -C /usr/local/src/3、安装依赖 [rootlocalhost ~]# yum install gcc gcc-c make pcre-devel openssl-devel -y4、 准备 N…

python学opencv|读取图像(三十二)使用cv2.getPerspectiveTransform()函数制作透视图-变形的喵喵

【1】引言 前序已经对图像展开了平移、旋转缩放和倾斜拉伸技巧探索&#xff0c;相关链接为&#xff1a; python学opencv|读取图像&#xff08;二十八&#xff09;使用cv2.warpAffine&#xff08;&#xff09;函数平移图像-CSDN博客 python学opencv|读取图像&#xff08;二十…

es,单个节点磁盘使用率高

背景&#xff1a; 磁盘使用率不均匀&#xff0c;一般是因为存在大分片&#xff0c;分片数和机器数不匹配引起的。 这次出现的问题排除了&#xff0c;分片问题。 一个节点使用到87%&#xff0c; 其它节点60% 左右&#xff0c; 原因&#xff1a; 是因为升级配置数据迁移的时候 迁…

android 主题都表示什么意思

Theme.AppCompat Theme.AppCompat 是一个兼容性主题&#xff0c;用于确保应用在不同版本的 Android 系统上都能保持一致的外观和行为。它提供了 Material Design 的样式&#xff0c;并且兼容 Android 2.1&#xff08;API 级别 7&#xff09;及以上版本。 Theme.AppCompat&#…

docker run一个镜像如何指定最大可使用的内存大小、cpu大小

在 Docker 中&#xff0c;你可以通过 --memory 和 --cpus 参数来指定容器的最大内存和 CPU 限制。这样可以确保容器不会超出特定的资源限制&#xff0c;从而避免影响主机的其他进程。 1. 限制内存&#xff08;--memory&#xff09; 通过 --memory 或 -m 参数&#xff0c;你可…

iOS - Objective-C 底层中的内存屏障

1. 基本实现 // objc-os.h 中的内存屏障实现 #define OSMemoryBarrier() __sync_synchronize()// ARM 架构特殊处理 static ALWAYS_INLINE void OSMemoryBarrierBeforeUnlock() { #if defined(__arm__) || defined(__arm64__)OSMemoryBarrier(); #endif } 2. 解锁前的内存屏…

【编程语言】C/C++语言常见标准和规范

C/C 是两种功能强大且广泛使用的编程语言。尽管它们没有像 Java 那样强制性的命名规则&#xff0c;但为了提高代码的可读性和可维护性&#xff0c;遵循一些普遍认同的编程规范和标准仍然是非常重要的。本文将探讨 C/C 编程中的一些命名规范及标准&#xff0c;以帮助开发者编写更…

Java开发防止SQL注入攻击

在Java编程过程中&#xff0c;防止SQL注入攻击是非常重要的安全措施。以下是常用的防注入攻击措施及其原理&#xff1a; 1. 使用预编译语句&#xff08;PreparedStatement&#xff09; 原理&#xff1a;PreparedStatement 是 JDBC 提供的一种接口&#xff0c;它允许 SQL 语句…