成都网站建设电话咨询,网络软文营销的案例,环保公司网站架构怎么做,建筑公司需求发布网站cyberchef的compression操作大类中有大量的压缩和解压缩操作#xff0c;每种操作的功能和区别是什么#xff0c;本章将进行讲解#xff0c;作为我的专栏《Cyberchef 从入门到精通教程》中的一篇#xff0c;详见这里。
关于文件格式和压缩算法的理论部分在之前的文章《压缩…cyberchef的compression操作大类中有大量的压缩和解压缩操作每种操作的功能和区别是什么本章将进行讲解作为我的专栏《Cyberchef 从入门到精通教程》中的一篇详见这里。
关于文件格式和压缩算法的理论部分在之前的文章《压缩文件格式和压缩算法的那些事》这里已经进行了说明可先行参考之。
对于Cyberchef中compression大类中的操作大致可以分成两类一类是针对文件的压缩和解压缩一类是针对数据流的压缩和解压缩。当然这么说可能会有些不严谨之处因为文件其实也是被cyberchef当作数据流进行对待的。做这种区分的目的在于说明这些操作针对的是有意义的文件和数据流而并非是无意义的数据流。
文件格式
从名称上可以看出其中Gzip/GunzipZip/Unzipbzip2Tar/Untarzlib都是可以针对对应格式的文件进行压缩和解压缩。
压缩文件
使用文本文件测试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对于文件完整性进行了判定使用上述图1234中的部分数据去除部分尾部数据进行验证如下图7 图8图9图10 图7 图8 图9 图10
untar虽然也只是使用了部分数据但是没有破坏文件结构还是能够还原部分数据。虽然cyberchef不能使用一些压缩算法的针对部分数据进行还原但是7z等压缩软件可以因此可以使用7z等压缩软件进行尝试。当然本质要研究每种文件的文件结构看看缺少的数据是否是关键部分数据。
压缩算法
针对数据流的压缩算法因为数据结构敏感性低按块压缩理论上问题偏少。由之前的文章《压缩文件格式和压缩算法的那些事》这里可知对于raw deflateLZMA bzip2事实上是一种混合压缩算法即封装了几种算法并形成了一种新的数据格式。对于数据结构来说不同的混合压缩算法则表现不同。
失败解压部分数据
下图11,12为 和raw inflate的示例可以看到cyberchef对于部分数据的解压缩是失败的只有部分数据则破坏了某个块的数据结构因此出现解压缩失败的场景。同样不能部分解压成功的还有Lzstring算法。 图11 图12
成功解压部分数据
下图13,14为LZ4压缩和解压缩的示例可以看到cyberchef对于部分数据的解压缩是成功的。 图13
图 14 其中LZMA 也可以解压缩部分数据可自行尝试之。
针对上述的尝试可以使用更多的数据进行的验证。当然本质要研究每种压缩算法的数据结构看看缺少的数据是否是关键部分数据。
本文为CSDN村中少年原创文章未经允许不得转载博主链接这里。