关于压缩包伪加密的相关问题

Posted 末 初

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于压缩包伪加密的相关问题相关的知识,希望对你有一定的参考价值。


ZIP伪加密

ZIP伪加密的特征

zip文件结构可以分为三个部分:

  • 压缩源文件数据区
  • 压缩文件目录区
  • 压缩源文件目录结束标志

压缩源文件数据区中的全局方式位标记是判断压缩包有无伪加密的重要标志,即压缩源文件数据区的第7、第8两个字节09 00。ZIP的压缩源文件数据区全局方式位标记010 Editor显示的文件结构中即为ushort frFlags

压缩文件目录区全局方式位标记是进行伪加密的关键,即压缩文件目录区的第9、第10两个字节。ZIP的压缩文件目录区全局方式位标记010 Editor显示的文件结构中即为ushort deFlags

  • 无加密的ZIP
    压缩源文件数据区的全局方式位标记应当为00 00
    压缩源文件目录区的全局方式位标记应当为00 00
  • 真加密的ZIP:
    压缩源文件数据区的全局方式位标记应当为09 00
    压缩源文件目录区的全局方式位标记应当为09 00
  • 伪加密的ZIP:
    压缩源文件数据区的全局方式位标记应当为00 00
    压缩文件目录区的全局方式位标记应当为09 00

如何破解ZIP伪加密

  • 第一种方法:直接修改压缩文件目录区的全局方式位标记为偶数,即可解压
  • 第二种方法:有些压缩软件可以无视伪加密直接解压,例如:WinRAR、7zip、360压缩
  • 第三种办法:有个Java写的小工具ZipCenOp.jar,需要java环境,在cmd中运行java -jar ZipCenOp.jar r xxx.zip即可解压

RAR伪加密

RAR的伪加密与ZIP的伪加密原理相同,造成伪加密的关键都是在一个指定的位标记字段上。

PS:一般RAR伪加密的压缩包用WinRAR打开时都会显示文件头已损坏

在RAR的第24个字节,也就是010 Editor显示的文件结构中的ubyte PASSWORD_ENCRYPTED字段,修改其字段为1即可实现RAR伪加密。

或者修改第11个字节,也就是010 Editor显示的文件结构中的ubyte BLOCK_HEADERS_ENCRYPTED字段的值。修改为1即可造成RAR伪加密。

以上是关于关于压缩包伪加密的相关问题的主要内容,如果未能解决你的问题,请参考以下文章

zip伪加密-Write Up

bugku-writeup-MISC-赛博朋克

关于文件压缩解压缩与文件加密解密的项目

关于文件压缩解压缩与文件加密解密的项目

js压缩混淆和加密

js压缩混淆和加密