Cyberchef使用功能之-多种压缩/解压缩操作对比
cyberchef的compression操作大类中有大量的压缩和解压缩操作,每种操作的功能和区别是什么,本章将进行讲解,作为我的专栏《Cyberchef 从入门到精通教程》中的一篇,详见这里。
关于文件格式和压缩算法的理论部分在之前的文章《压缩文件格式和压缩算法的那些事》,这里,已经进行了说明,可先行参考之。
对于Cyberchef中compression大类中的操作大致可以分成两类,一类是针对文件的压缩和解压缩,一类是针对数据流的压缩和解压缩。当然这么说可能会有些不严谨之处,因为文件其实也是被cyberchef当作数据流进行对待的。做这种区分的目的在于说明这些操作针对的是有意义的文件和数据流,而并非是无意义的数据流。
文件格式
从名称上可以看出其中Gzip/Gunzip,Zip/Unzip,bzip2,Tar/Untar,zlib都是可以针对对应格式的文件进行压缩和解压缩。
压缩文件
使用文本文件测试cyberchef压缩功能,文件的内容+包含中英文,如下:
this is a blog of xiaofan
这是村中少年的CSDN博客
https://xiaofan.blog.csdn.net/
gzip压缩如图1:

图1
zip压缩如图2:

图2
bzip2压缩如图3:

图3
tar打包如图4:

图4
由之前的理论部分可知tar只负责打包,不具备压缩功能,因此tar中的数据还是以明文的形式显示,只是多了一些文件的结构数据而已,从后图6的untar可以对比压缩和打包的区别。
上述可以看到,采用这种这些方式的压缩之后的数据,都会有显著的文件特征,例如
- 例如gz格式文件的signature 是 1F 8B
- 例如tar格式文件的signature 是 75 73 74 61 72
- 例如zip格式文件的signature是 50 4B 03 04
- 例如bzip2格式文件的signature 是 42 5A 68
更多文件格式详见这里。
解压缩文件
因此在解压缩的时候,如果在提前并不知道文件的压缩算法的情况下,通过判断文件的头部特征,则可以选择对应的操作进行处理。由于tar只是负责文件打包,gzip负责文件压缩,因此解压之后的显示略有区别,如下图5,图6:

图5

图6
虽然输入文单个文件,但是tar打包的时候是以文件夹的格式进行打包,因此在untar之后,可以看到显示的是文件夹中的文件而不是直接显示数据。
解压缩部分文件数据
这里需要注意的cyberchef只能对于完整的文件进行处理,如果缺少文件尾部数据,则可能出现无法解压缩的情况,可能的原因是cyberchef对于文件完整性进行了判定,使用上述图1,2,3,4中的部分数据(去除部分尾部数据)进行验证,如下图7, 图8,图9,图10:

图7

图8

图9

图10
untar虽然也只是使用了部分数据,但是没有破坏文件结构,还是能够还原部分数据。虽然cyberchef不能使用一些压缩算法的针对部分数据进行还原,但是7z等压缩软件可以,因此可以使用7z等压缩软件进行尝试。当然本质要研究每种文件的文件结构,看看缺少的数据是否是关键部分数据。
压缩算法
针对数据流的压缩算法因为数据结构敏感性低,按块压缩,理论上问题偏少。由之前的文章《压缩文件格式和压缩算法的那些事》,这里,可知对于raw deflate,LZMA ,bzip2事实上是一种混合压缩算法,即封装了几种算法并形成了一种新的数据格式。对于数据结构来说,不同的混合压缩算法则表现不同。
失败解压部分数据
下图11,12为 和raw inflate的示例,可以看到cyberchef对于部分数据的解压缩是失败的,只有部分数据则破坏了某个块的数据结构,因此出现解压缩失败的场景。同样不能部分解压成功的还有Lzstring算法。

图11

图12
成功解压部分数据
下图13,14为LZ4压缩和解压缩的示例,可以看到cyberchef对于部分数据的解压缩是成功的。

图13

图 14
其中LZMA 也可以解压缩部分数据,可自行尝试之。
针对上述的尝试,可以使用更多的数据进行的验证。当然本质要研究每种压缩算法的数据结构,看看缺少的数据是否是关键部分数据。
本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。
相关文章:
Cyberchef使用功能之-多种压缩/解压缩操作对比
cyberchef的compression操作大类中有大量的压缩和解压缩操作,每种操作的功能和区别是什么,本章将进行讲解,作为我的专栏《Cyberchef 从入门到精通教程》中的一篇,详见这里。 关于文件格式和压缩算法的理论部分在之前的文章《压缩…...
TypeScript 装饰器都有那些应用场景?如何更快的上手?
TypeScript 装饰器简介 在 TypeScript 中,装饰器(Decorators)是一种特殊的语法,用于在类、类方法、属性、访问器等上动态地添加行为或修改现有行为。装饰器可以用来增强类的功能、修改方法的行为,或者修改类的元数据等…...
堆优化版本的Prim
prim和dijkstra每轮找最小边的松弛操作其实是同源的,因而受dijkstra堆优化的启发,那么prim也可以采用小根堆进行优化。时间复杂度也由 O ( n 2 ) O(n^2) O(n2)降为 O ( n l o g n ) O(nlogn) O(nlogn)。 测试一下吧:原题链接 #include <i…...
Ubuntu上安装MySQL并且实现远程登录
目录 下载网络工具 查看网络连接 更新系统软件包; 安装mysql数据库 查看mysql数据库状态 以数字ip形式显示mysql的监听状态。(默认监听端口是3306) 查看安装mysql数据库时系统创建的目录信息。 根据查询到的系统用户名以及随机密码&a…...
蓝桥杯每日真题 - 第21天
题目:(空间) 题目描述(12届 C&C B组A题) 解题思路: 转换单位: 内存总大小为 256MB,换算为字节: 25610241024268,435,456字节 计算每个整数占用空间: 每个 32 位整数占用…...
(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(下)----空间数据的编辑与处理(超超超详细!!!)
续上篇博客(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(上)----空间数据的编辑与处理(超超超详细!!!)-CSDN博客 继续更新 目录 什么是拓扑? 1.3.5道路…...
NLP论文速读(CVPR 2024)|使用DPO进行diffusion模型对齐
论文速读|Diffusion Model Alignment Using Direct Preference Optimization 论文信息: 简介: 本文探讨的背景是大型语言模型(LLMs)通过人类比较数据和从人类反馈中学习(RLHF)的方法进行微调,以…...
操作系统——揭开盖子
计算机执行时——取指执行 es:bx等于从0x9000开始,到0x90200结束...
如何在 React 项目中应用 TypeScript?应该注意那些点?结合实际项目示例及代码进行讲解!
在 React 项目中应用 TypeScript 是提升开发效率、增强代码可维护性和可读性的好方法。TypeScript 提供了静态类型检查、自动补全和代码提示等功能,这对于 React 开发者来说,能够帮助早期发现潜在的 bug,提高开发体验。 1. 项目初始化 在现…...
C++学习第四天
创作过程中难免有不足,若您发现本文内容有误,恳请不吝赐教。 提示:以下是本篇文章正文内容,下面案例可供参考 一、计算类对象的大小 #include<iostream> using namespace std;class Date { public:void Init(int year, in…...
【从零开始的LeetCode-算法】3232. 判断是否可以赢得数字游戏
给你一个 正整数 数组 nums。 Alice 和 Bob 正在玩游戏。在游戏中,Alice 可以从 nums 中选择所有个位数 或 所有两位数,剩余的数字归 Bob 所有。如果 Alice 所选数字之和 严格大于 Bob 的数字之和,则 Alice 获胜。 如果 Alice 能赢得这场游…...
一种简单高效的RTSP流在线检测方法,不需要再过渡拉流就可以获取设备状态以及对应音视频通道与编码格式
平台如何检测一路RTSP流是否在线? 在之前的流媒体平台方案中,我们都是通过定时RTSP拉流的方式,走一个完整的RTSP流程:包括OPTIONS、DESCRIBE、SETUP、PLAY、RTP收流,这种方式去取流,然后取到流之后进行流解…...
24/11/22 项目拆解 艺术风格转移
我们有时候想把两种艺术风格整合,创造更具艺术特色的艺术品,人很难办到,但是人工智能可以,比如下面将艺术画的风格转移到照片上。 我们先来初步了解一下实现上述功能的数学原理 所谓艺术风格,其实就是边缘,颜色&#…...
数字赋能,气象引领 | 气象景观数字化服务平台重塑京城旅游生态
在数字化转型的浪潮中,旅游行业正以前所未有的速度重塑自身,人民群众对于高品质、个性化旅游服务需求的日益增长,迎着新时代的挑战与机遇,为开展北京地区特色气象景观预报,打造“生态气象旅游”新业态,助推…...
关于Redux的学习(包括Redux-toolkit中间件)
目录 什么是 Redux ? 我为什么要用 Redux ? 我什么时候应该用 Redux ? Redux 库和工具 React-Redux Redux Toolkit Redux DevTools 拓展 一个redux小示例 代码示例(很有用): Redux 术语 Actions Reducers Store Dis…...
【无人机】
GJI Mini 4 Pro学习 首次飞行使用 01 开箱 打开长飞套装 依次取出产品及配件 飞行器、DJI RC - N2(DJI RC 2)、桨叶/螺丝、云台保护罩、束桨器、电池、螺丝刀、USB-C快接线、单肩包、USB-C数据线、充电管家 02 准备飞行器 取下束桨器,…...
Zabbix7.0.6的容器镜像准备
准备Zabbix7.0.6部署所需的容器镜像。 更新时间:20241122 一、准备数据库镜像 1、核对版本支持 根据Zabbix官网文档requirements 可知,当前最新的Zabbix 7.0.6对PostgreSQL数据库的要求如下: support for PostgreSQL versions:- 17.X …...
利用 GitHub 和 Hexo 搭建个人博客【保姆教程】
利用 GitHub 和 Hexo 搭建个人博客 利用 GitHub 和 Hexo 搭建个人博客一、前言二、准备工作(一)安装 Node.js 和 Git(二)注册 GitHub 账号 三、安装 Hexo(一)创建博客目录(二)安装 H…...
React第四节 组件的三大属性之state
前言 状态 state适用于类式组件中,而再函数式组件中需要使用 useState HOOK 模拟状态; React的组件就是一个状态机,通过与用户的交互,实现不同的状态,根据不同的状态展现出不一样的UI视图 并不是组件中所有的属性 都是组件的状态…...
MongoDB进阶篇-索引(索引概述、索引的类型、索引相关操作、索引的使用)
文章目录 1. 索引概述2. 索引的类型2.1 单字段索引2.2 复合索引2.3 其他索引2.3.1 地理空间索引(Geospatial Index)2.3.2 文本索引(Text Indexes)2.3.3 哈希索引(Hashed Indexes) 3. 索引相关操作3.1 查看索…...
STM32单片机技术优势与应用指南
1. STM32的崛起背景与技术优势2007年之前,8位单片机市场被8051架构主导,16位市场则有MSP430等产品。这些传统MCU在简单控制领域表现出色,但随着物联网时代的到来,其局限性逐渐显现:性能瓶颈:8位机的处理能力…...
新手零基础入门:利用快马平台交互式学习Python库安装与初体验
作为一个刚接触Python数据分析的小白,第一次听说pandas库时既兴奋又忐忑。兴奋的是这个工具能帮我处理数据,忐忑的是连安装都怕搞砸。好在发现了InsCode(快马)平台,它把复杂的安装过程变成了可以直接运行的交互式教程,下面分享我的…...
SEO_避开常见误区,正确理解SEO的核心价值(127 )
SEO的核心价值:避开常见误区,正确理解 在当今互联网时代,SEO(搜索引擎优化)无疑是提升网站流量、吸引潜在客户的重要手段。许多企业在SEO实践中常常陷入一些误区,无法正确理解SEO的核心价值,导…...
Open UI5 源代码解析之780:Label.js
源代码仓库: https://github.com/SAP/openui5 源代码位置:src\sap.m\src\sap\m\Label.js sap.m.Label 文件深度解析与项目作用说明 一、文件定位与整体职责 Label.js 位于 sap.m 组件库中,是一个非常基础却影响面极广的控件实现文件。它定义了 sap.m.Label 的完整行为,…...
从SAP实施到微信上线:一文读懂不同类型软件公司的实施岗到底有啥区别
从SAP实施到微信上线:一文读懂不同类型软件公司的实施岗核心差异 刚入行的技术新人小张最近很困惑:同样是"软件实施工程师"岗位,为什么招聘JD里有的要求精通SAP模块配置,有的却强调微信生态部署经验?在面试了…...
从平台束缚到自由聆听:ncmdump如何让加密音乐重获新生?
从平台束缚到自由聆听:ncmdump如何让加密音乐重获新生? 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经遇到过这样的困境?在某个音乐平台精心收藏的歌单,却无法在车载音响上…...
青蓝送水模式小程序开发指南
核心功能模块设计编辑: 三匠互联土土哥用户端功能在线订水:支持选择水桶规格(如18L、12L)、品牌(农夫山泉、怡宝等)及配送时间。订单跟踪:实时显示配送状态(接单、配送中、已完成)&a…...
PPTist:重新定义在线演示文稿创作体验
PPTist:重新定义在线演示文稿创作体验 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing for the editing a…...
避坑指南:WFDB读取ECG数据时,.hea文件真的‘几乎没用’吗?
避坑指南:WFDB读取ECG数据时,.hea文件真的‘几乎没用’吗? 在生物信号处理领域,WFDB(Waveform Database)格式是存储心电图(ECG)数据的黄金标准。许多开发者习惯性地认为.hea头文件只…...
原理图画得又快又整齐的秘密:深度解析Altium Designer栅格系统与高效绘图心法
原理图设计的秩序美学:Altium Designer栅格系统高阶应用指南 在电子设计领域,原理图的整洁程度往往直接反映了工程师的专业水准。那些线条横平竖直、元件排列有序的图纸,不仅赏心悦目,更能显著降低后续PCB布局的沟通成本。这种视觉…...
