c语言破解rar5文件,RAR5 文件格式解析

本文详细介绍了RAR5文件的结构,包括其动态大小的vint表示法,以及主归档头、文件信息等关键部分。重点讨论了小端序模式、头部标志位和不同类型的头部信息,为理解和破解RAR5文件提供了基础。
摘要由CSDN通过智能技术生成

RAR的所有数值存放都将使用小端序模式,通常使用的编辑器都是大端序的,在查看的时候需要特别注意!!

RAR5的宏观构造如下:RAR5文件头(0x526172211A070100)+

主归档头

文件信息

RAR5文件结尾(0x1D77565103050400)

当然这里还有额外的字段,这里就不展示了,详细的可以查看官方文档:

动态大小

RAR5的大部分参数数据占用的块大小是不固定的,需要通过标志位判断数值占用的位数。同时这样也能尽可能的减少文件的占用。

这里就来介绍一下动态大小类型,vint。

vint的大小占用在1~10bytes之间,通过第8位来进行判断,0为截止标识,1为延续标识。

同时vint表示的大小最多为64位整数,可以使用10bytes来表示。

这里举一个例子来说明vint是如何计算数值的:0x9A10:

因为使用的是小端序模式,所以首先我们需要更换一下两个数据的位置,它就变成了0x109A,然后我们需要再转换为二进制b0001 0000 1001 1010。

这里我们去掉延续标志位和空余位,那么其结果也就是b1000 1001 1010,换算成十六进制也就是0x81A。

大致过程可以看下图:

40c70ca5ba90b75e14e037f020e6fdca.png

通用归档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值