CRC32爆破

CRC32爆破

有时候需要用CRC32值对应的原始内容,因为CRC32较短,可以在短时间内爆破出一些可能的值。

内容小于6个字节

小于6个字节可以直接用脚本爆破,太长的话,脚本就太慢了

# coding:utf8
# python3

'''
文件名 内容长度 crc32值
3.txt 5 0x289585AF
2.txt 4 0xEED7E184
1.txt 5 0x9AEACC13
'''

from binascii import crc32
from itertools import product

dic = 'abcdefghijklmnopqrstuvwxyz0123456789_'


def crack(content_len, wanted):
    print('start cracking...')
    tuple_iter = product(dic, repeat=content_len)
    for char_tuple in tuple_iter:
        char_str = ''.join(char_tuple)
        crc32_value = crc32(char_str.encode())
        if crc32_value == wanted:
            print(char_str, hex(crc32_value))


if __name__ == '__main__':
    crack(5, 0x9AEACC13)
    crack(4, 0xEED7E184)
    crack(5, 0x289585AF)

'''
level6_isready
'''

如果要提高效率的话,需要使用多线程或多进程

内容等于6个字节

有一个项目可以很快得出CRC32对应的若干个6位长度字符串:
https://github.com/theonlypwner/crc32

简单使用方法:

py -3 crc32.py reverse 0x123456

供测试数据:

name len crc32 content
1.txt 6 0xCC86365B forum_
2.txt 6 0xBCEE7ED5 91ctf_
3.txt 6 0xCCCA7E74 com_66

2020/9/10

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值