CRC32碰撞用于绕过压缩包密码获取内部文本信息。内部文件必须为小文件(<10B)

一、无脑for枚举法

实测,大于4B的文件python运算效率极低。。

语言:python2

#coding:utf-8
import zipfile
import string
import binascii
 
def CrackCrc(crc):
    for i in dic :
        for j in dic:
            for p in dic:
                for q in dic:
                    for m in dic:
                        for n in dic:
                        #文件大小为6B的6重循环
                            s=i+j+p+q+m+n
                            if crc == (binascii.crc32(s) & 0xffffffff):
                                print s     
                                #return
 
def CrackZip(): 
    for I in range(2,3):
        file = 'crc.zip'
        f = zipfile.ZipFile(file, 'r')
        GetCrc = f.getinfo('crc/ad71bf43131c4b3fa27066a3b408f843/'+str(I)+'.txt')
        crc = GetCrc.CRC
        #以上3行为获取压缩包CRC32值的步骤
        CrackCrc(crc)

dic = string.digits+string.ascii_letters+"+="
CrackZip()

二、GitHub上的开源CRC32工具

GitHub: theonlypwner/crc32

语言:Python3

使用方法: python3 crc32.py reverse <CRC32数值(前面加上0x)>

说点什么
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...