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。

大致过程可以看下图:

通用归档头字段大小(bytes)注释头CRC324

头大小vint

头类型vint

头flagvint

扩展区大小vint当头flag 0x01设置时才存在

数据区大小vint当头flag0x02设置时才存在

扩展区大小由扩展区大小定义

数据区vint大小由数据区大小定义

注:头类型,头类型是全局通用的,一共有一下几种类型:1:主存档头

2:文件头

3:服务头

4:归档加密头

5:归档结束头

头flag,与头类型一样,全局通用:0x01:如果设置,则扩展区大小存在

0x02:如果设置,则数据区大小存在

0x04:如果设置,则跳过该块,开始扫描下一个块

0x08:数据区从先前的一个卷继续

0x10:数据区从下一个卷继续

0x20:块取决于前一个文件块

0x40:如果操作系统被修改,则保留子块。

注:RAR的flag计算方式也与其他的不同,像ZIP文件是通过Bit来实现flag的,而RAR是通过叠加来计算flag位的。例如:0x05=0x04+0x01

主归档头字段大小(bytes)注释头CRC324

头大小vint

头类型vint固定值1

头flagvint查见通用归档头

扩展区大小vint当头flag0x01设置时才存在

归档flagvint

卷编号vint当归档flag0x02设置时才存在

扩展区大小由扩展区大小定义

注:归档flag:0x01:如果设置,则本归档是多卷中的一部分,也就是说存在多个RAR包

0x02:如果设置,则卷编号存在

0x04:Solid archive(谷歌翻译:固体归档)

0x08:如果设置,则恢复记录存在

0x10:已锁定归档

文件头字段大小(bytes)注释头CRC324

头大小vint

头类型vint固定值2

头flagvint

扩展区大小vint当头flag0x01设置时才存在

数据区大小vint当头flag0x02设置时才存在

文件flagvint

未解压大小vint

属性vint

时间4当文件flag0x02设置时才存在

数据区CRC324当文件flag0x04设置时才存在

压缩信息vint

操作系统vint

文件名长度vint

文件名大小由文件名长度定义

扩展区大小由扩展区大小定义

数据区vint大小由数据区大小定义

注:头flag:0x01:此文件头为目录

0x02:如果设置,则时间存在

0x04:如果设置,则CRC32存在

0x08:解压大小未知

压缩信息:Bit 1~6:压缩算法版本

Bit 7:定义solid标志,主要与压缩字典相关

Bit 8~10:定义压缩的方法,0~5,0为未压缩

Bit 11~14:定义压缩字典的大小,0=128k,1=256k,2=512k,以此类推

操作系统:0x00:Windows

0x01:Unix

样例

实例见

本文经「原本」原创认证,作者乾坤盘,访问yuanben.io查询【39G4JTQV】获取授权信息。

c语言破解rar5文件,RAR5 文件格式解析相关推荐

  1. matlab如何打开flt文件,FIT文件格式解析及MATLAB读取程序

    FIT文件格式解析 (http://blog.csdn.net/shizhixin,Email: zxshi@nlpr.ia.ac.cn,2011年12月) 摘要:本文档主要介绍了用UltraEdit ...

  2. matlab怎么看fit文件,FIT文件格式解析及MATLAB读取程序

    FIT文件格式解析 (http://blog.csdn.net/shizhixin,Email: zxshi@nlpr.ia.ac.cn,2011年12月) 摘要:本文档主要介绍了用UltraEdit ...

  3. android 解析midi文件,MIDI文件格式解析

    MIDI文件由两部分构成:Header Chunk(MThd)+ Track Chunk(MTrk) "Chunk"是一种数据结构,每个chunk由最初4字节的"Chun ...

  4. 材质库文件 .mtl文件格式解析

    .mtl文件(Material Library File)是材质库文件,描述的是物体的材质信息,ASCII存储,任何文本编辑器可以将其打开和编辑.一个.mtl文件可以包含一个或多个材质定义,对于每个材 ...

  5. cfile清空文件内容_编译-链接-加载 :ELF文件格式解析

    摘要:对于C++的初学者,经常在程序的编译或者加载过程中遇到很多错误,类似undefined reference to ... 和 GLIBCXX_3.4.20 not found 等.这些错误都涉及 ...

  6. mysql par文件_mysql .par文件格式解析

    mysql 5.6版本分区表有一个文件:表名.par, 该文件在5.7.6版本后被移除. 在一个现场环境中,客户端执行check table后报错如下,源码跟踪下来之后是缺失par文件. mysql解 ...

  7. AVI文件格式解析+AVI文件解析工具

    (转)AVI文件格式解析+AVI文件解析工具 AVI文件解析工具下载地址:http://download.csdn.net/detail/zjq634359531/7556659 AVI(Audio ...

  8. mp4文件格式解析(一)

    原文地址:mp4文件格式解析(一)作者:可下人间 目前MP4的概念被炒得很火,也很乱.最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准.随后MP4概念被转移到视频上,对应的是MPE ...

  9. Resource.arsc文件格式解析

    Resource.arsc文件格式 借用了互联网一些资料,记录在此. 准备工作 我们在使用apktool工具进行反编译的时候,会发现有一个:res/values/public.xml这个文件: 我们查 ...

最新文章

  1. PRT(Precomputed Radiance Transfer)球谐光照(Spherical Harmonic Lighting)
  2. Github标星2.3k+!这个仓库提供了靠谱的入门人工智能的路线及资料!
  3. R语言数据类型及数据类型判断
  4. java请求header_java中处理header请求以及跟cookie相关的一些细节
  5. linux怎么离线安装gcc文件夹,CentOS下离线安装gcc环境,图文详细,方法全面
  6. qhfl-5 redis 简单操作
  7. xmlspy php,XMLSpy使用流程 - tnlzz31985的个人空间 - OSCHINA - 中文开源技术交流社区
  8. Linux系统LVM增加新硬盘实现根文件系统扩容
  9. acfun html5 转换,AcFun剧场模式插件
  10. 蓝桥杯 ALGO-43 算法训练 A+B Problem
  11. Laravel 5无法打开所需的bootstrap /../ vendor / autoload.php
  12. html原生js进度条圆形,原生JavaScript实现进度条
  13. 产品和程序员的互殴大战
  14. linux 光功率 模块_光模块基本参数-消光比/光功率/灵敏度
  15. 标识符(Identifier)
  16. Ureport2的表格更改小技巧
  17. 我的世界网易绘梦师国服 物品材料介绍
  18. mapgis java二次开发_mapgis7.0二次开发小试牛刀
  19. 剪映怎么去水印,剪映怎么剪辑视频
  20. web 页面 常用分辨率(PC 移动端)

热门文章

  1. 一文带你入门go语言
  2. 争对让望对思野葛对山栀注解_中华经典名著《笠翁对韵》全文解释(上卷四支)...
  3. python提供了几个基本的数值运算操作符_慢步学习,二级python,数字类型及其运算...
  4. 知乎上这个程序员火了。。。
  5. 三相异步电机,直流电机工作原理
  6. 如何画Flot折线图
  7. 2022-2028全球快餐肉汤食品行业调研及趋势分析报告
  8. IP 别名和辅助 IP 地址
  9. HTML5 postMessage 和 onmessage API 详细应用
  10. 秋裤传奇html5,秋裤传奇