尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

CyberChef实战:505个加密编码操作在离线环境中的落地方法

CyberChef实战:505个加密编码操作在离线环境中的落地方法 CyberChef实战505个加密编码操作在离线环境中的落地方法【免费下载链接】CyberChefThe Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef同事发来一段加密数据编码不明文件又不能上传到在线工具。CyberChef 把 Base64、AES、十六进制转储这类操作全部放在本地浏览器里执行还能用 Node.js 脚本批量调用。10 分钟跑起来浏览器、脚本、深链三种用法都够用。快速上手三步在本地跑通 CyberChefCyberChef 是纯前端项目没有后端也没有账号把开发服务器跑起来就能用。下面的 bash 命令带你从零把 CyberChef 部署到本地只需要 Node.js 24 及以上版本git clone https://gitcode.com/GitHub_Trending/cy/CyberChef cd CyberChef npm install npm start打开http://localhost:8080你会看到四个区域左侧是按分类组织的操作列表支持搜索右上是输入框右下是输出框中间是配方区——把任何操作从左边拖进中间参数就地填写输出实时刷新。整个过程不产生任何外发请求数据始终留在你这台机器上。核心能力拆解505 个操作三种调用入口CyberChef 的全部 505 个操作都放在src/core/operations/目录里前端src/web/只是把它们包装成拖拽界面。真正决定效率的是三种调用入口怎么选调用方式入口适合场景浏览器npm start后打开localhost:8080交互式探索、拖拽试错Node.js APIimport chef from cyberchef写脚本、CI、批量处理REPLnpm run repl快速验证单个操作拖拽配方最低的上手门槛拿到一段来路不明的字符串在左侧搜索框输入base64把From_Base64拖进配方区输出框立刻给出解码结果。CyberChef 默认开启 Auto Bake你每次改动输入或调整参数整条配方都会自动重跑不需要手动触发。如果一时判断不出编码类型可以拖一个Magic操作进来它会自动尝试识别数据上的编码层命中时输出框会出现魔法棒图标点一下就能逐层解开。Node.js API把瑞士军刀变成脚本浏览器适合交互式分析但日常里更多场景是把 CyberChef 的操作嵌进自己的流水线。Node API 的实现在src/node/api.mjs所有调用都是同步的装好npm install cyberchef后即可直接 importimport chef from cyberchef; // Base64 解码.to(string) 把结果转成可读字符串 const decoded chef.fromBase64(MTIzNDU2); console.log(decoded.to(string)); // 参数支持对象形式比位置参数清晰得多 console.log(chef.fromBase64(MTIz, { alphabet: A-Za-z0-9/ }).to(string));深链分享一个 URL 就是一份配方CyberChef 会把当前配方和输入编码进地址栏格式类似#recipeFrom_Base64(A-Za-z0-9/,true)input...其中 input 是 Base64 编码后的内容。把地址栏链接发给同事他在浏览器打开就能复现你的全部处理步骤不需要截图、不需要传文件。这也是它适合团队协作的原因配方本身就是链接。完整工作流演示从十六进制转储日志到可读文本 ⚡用 CyberChef 走一个应急响应里的高频场景现场设备抓下来的日志是一段十六进制转储hexdump里面包着一个 gzip 压缩流需要还原成明文。浏览器里的操作路径分四步。第一步把 hexdump 日志粘贴进右上输入框——第一行开头的1f 8b 08就是 gzip 的魔数可以先靠它确认方向。第二步从左侧把From_Hexdump拖进配方区转储文本被还原成字节流。第三步在下方再拖入Gunzip输出框立刻显示解压后的明文。第四步点 Save recipe 存进本地存储或直接复制地址栏链接发给同事复现。如果输入不是文本而是一张扫描图直接把图片拖进输入框支持约 2GB 大小的文件拖入Optical_Character_Recognition操作即可提取文字。仓库自带一张 OCR 测试样本图可以拿来练手同一条流程用 Node 脚本实现下面这段代码演示了完整的两级处理链import chef from cyberchef; // 输入一段 gzip 流的 hexdump前几字节 1f 8b 08 是 gzip 签名 const input 00000000 1f 8b 08 00 12 bc f3 57 00 ff 0d c7 ...; // 第一级From_Hexdump 把转储还原成原始字节 const bytes chef.fromHexdump(input); // 第二级Gunzip 解压.to(string) 得到可读结果 console.log(chef.gunzip(bytes).to(string));第一级负责格式转换第二级负责内容还原两级操作之间通过返回值自然衔接。把这段逻辑套上文件读取和循环就是一个可以批量处理整目录日志的脚本而每个操作的具体实现都能在src/core/operations/里找到对应源文件。进阶技巧与避坑四个容易翻车的细节 CyberChef 本地跑得起来之后真正拉开差距的是下面这些细节。大文件输入时关掉 Auto Bake处理超过 100MB 的输入时先去设置里把 Auto Bake 关掉改为手动触发烘焙。原因是每次改动都会重跑整条配方浏览器里同时驻留多份中间结果内存占用成倍增长。不关的话大文件一触发重算标签页内存飙升直到崩溃输入内容和已配的配方全得重来一遍。深链分享前把密钥从 URL 里抠掉深链的 recipe 和 input 都明文躺在 URL 里分享前务必确认配方参数中没有密钥、口令之类的敏感值。原因是 URL 会残留在浏览器历史、代理日志和聊天记录里传播范围完全不受你控制。图省事把带 AES 密钥的链接发进群等于把密钥公开广播这是新手最常见的泄露路径。Node API 坚持用对象形式传参调用chef的操作时参数尽量写成{ alphabet: A-Za-z0-9/ }这种对象形式。原因是位置参数的顺序很难背别人读代码时也看不出某个字符串是干什么的对象形式的 key 自带语义参考tests/node/tests/nodeApi.mjs里的用例。用位置参数写脚本顺序一偏解码结果照样输出一堆乱码却不抛任何错误排查起来非常消耗时间。构建报内存不足时先调堆上限如果npm run build中途报 out-of-memory先执行npm run setheapsize把 Node 的堆上限调大再重试。原因是 webpack 需要一次性把 505 个操作及其全部依赖打进构建产物默认堆内存不够用。跳过这一步的话构建会反复失败很容易误判成代码问题而白白排查半天。回到开头那份加密文件开头那份不能外传的加密文件现在粘贴进输入框、配好操作答案就显示在屏幕上全程没有任何数据离开本机。想继续深入的话两个入口值得马上动手打开src/core/operations/目录挑一个像RC4.mjs这样的文件看看单个操作是怎么实现的或者在终端跑npm run repl在chef 提示符下随手试几个操作。工具已经摆在本地了下次再遇到来路不明的数据你可以先自己过一遍再决定要不要开口求助。【免费下载链接】CyberChefThe Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表