CRC32 逆向算法的C语言实现

本文介绍了如何使用C语言实现CRC32校验值的逆向计算,通过解析CRC32计算过程,揭示如何根据目标CRC值推导出添加的4个字节,以达到任意修改CRC32校验的目的。内容包括算法原理和C语言代码实现。
摘要由CSDN通过智能技术生成


CRC32:


CRC32校验应用很广泛。本文提供一种算法添加4个字节实现任意的crc32校验值转换,逆向计算crc32的值。可以随意修改文件任意4个字节实现任意的crc32校验值。


原理:

下面是一组CRC32计算过程:

添加了四个字节00ba ff 30, crc322be0dd1d变成eee8a9a6


src32val:2be0dd1d ^ 00 -->x=1d

src32val:002be0dd ^

T(x) : 63066cd9

src32val:632d8c04 (现在计算的CRC值)


src32val:632d8c04 ^ 00-->x=04 x[4]

src32val:00632d8c ^

T(x) : 076dc419

src32val:070ee995


src32val:070ee995 ^ ba-->x=2f x[3]

src32val:00070ee9 ^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值