1、RAR文件头格式
组成:标记块、压缩文件头块、文件头块及结尾块
开头:
十六进制编辑器打开:0x526172211A070100
记事本打开:Rar!
2、ZIP文件头格式
十六进制编辑器打开:0x504B0304
记事本打开:PK
3、压缩包文件尾问题
压缩包文件尾部经常可能会被做手脚,要看看文件尾是否有额外的信息
首先压缩包解密那肯定是要真加密,如果是伪加密那我们就没有进一步爆破的必要了,所以我们拿到加密压缩包,先判断是否为伪加密,可以节省时间
若(0000h,6)该位为奇数,则为真加密。若为偶数且打开压缩包需要密码则为伪加密
判断为是真加密后,那我们就开始进入到解密了
其解密方法有五种,分别是:暴力破解,字典破解,掩码破解,明文破解,CRC32碰撞。
首先我们要用到我们的爆破神器——ARCHPR
先对ARCHPR的使用做个简单介绍吧,其实还是很简单的,主要很多人可能困于英文
暴力可以解决一切加密,但是要破解到什么时候就不好说了,一般当题目没有了其他破解提示,我们再选择暴力,建议密码长度先6位再8位,密码字符类型先数字后大小写后特殊字符。
即我们要的密码在一个文件中以下面这样的形式存在,我们要从这个密码的集合中找到我们所需的正确密码
通过定义密码的特征和约束条件,逐个尝试不同的字符组合来解密
来个简单的例子
题目给你了密码的约束条件,然后进行破解
同一个ZIP压缩包里的文件都是使用同一个密码加密的,所以可以用已知的文件推测出密钥并解密压缩包,例如下:
我们得到一个压缩包,里面有flag文件但是加密,而另一个压缩包里的加密文件,我们以及在压缩包外得到,那么就可以使用已经得到的压缩包里的文件,去破解压缩包里的其他文件。
每个文件都有一个CRC(循环冗余校验)32值,即使数据中一个bit发生变化,也会导致CRC32值不同,因此通过不断生成字符串,使其CRC32值和题目文件的CRC32值进行对比,不需要压缩包密码就可以得到文件内容。
简单例子,假如文件有三个字节且知道CRC32的值为0xEC40CA13,可以写下面这个python脚本