c语言破解rar5文件,RAR5 文件格式解析
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 文件格式解析相关推荐
- matlab如何打开flt文件,FIT文件格式解析及MATLAB读取程序
FIT文件格式解析 (http://blog.csdn.net/shizhixin,Email: zxshi@nlpr.ia.ac.cn,2011年12月) 摘要:本文档主要介绍了用UltraEdit ...
- matlab怎么看fit文件,FIT文件格式解析及MATLAB读取程序
FIT文件格式解析 (http://blog.csdn.net/shizhixin,Email: zxshi@nlpr.ia.ac.cn,2011年12月) 摘要:本文档主要介绍了用UltraEdit ...
- android 解析midi文件,MIDI文件格式解析
MIDI文件由两部分构成:Header Chunk(MThd)+ Track Chunk(MTrk) "Chunk"是一种数据结构,每个chunk由最初4字节的"Chun ...
- 材质库文件 .mtl文件格式解析
.mtl文件(Material Library File)是材质库文件,描述的是物体的材质信息,ASCII存储,任何文本编辑器可以将其打开和编辑.一个.mtl文件可以包含一个或多个材质定义,对于每个材 ...
- cfile清空文件内容_编译-链接-加载 :ELF文件格式解析
摘要:对于C++的初学者,经常在程序的编译或者加载过程中遇到很多错误,类似undefined reference to ... 和 GLIBCXX_3.4.20 not found 等.这些错误都涉及 ...
- mysql par文件_mysql .par文件格式解析
mysql 5.6版本分区表有一个文件:表名.par, 该文件在5.7.6版本后被移除. 在一个现场环境中,客户端执行check table后报错如下,源码跟踪下来之后是缺失par文件. mysql解 ...
- AVI文件格式解析+AVI文件解析工具
(转)AVI文件格式解析+AVI文件解析工具 AVI文件解析工具下载地址:http://download.csdn.net/detail/zjq634359531/7556659 AVI(Audio ...
- mp4文件格式解析(一)
原文地址:mp4文件格式解析(一)作者:可下人间 目前MP4的概念被炒得很火,也很乱.最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准.随后MP4概念被转移到视频上,对应的是MPE ...
- Resource.arsc文件格式解析
Resource.arsc文件格式 借用了互联网一些资料,记录在此. 准备工作 我们在使用apktool工具进行反编译的时候,会发现有一个:res/values/public.xml这个文件: 我们查 ...
最新文章
- PRT(Precomputed Radiance Transfer)球谐光照(Spherical Harmonic Lighting)
- Github标星2.3k+!这个仓库提供了靠谱的入门人工智能的路线及资料!
- R语言数据类型及数据类型判断
- java请求header_java中处理header请求以及跟cookie相关的一些细节
- linux怎么离线安装gcc文件夹,CentOS下离线安装gcc环境,图文详细,方法全面
- qhfl-5 redis 简单操作
- xmlspy php,XMLSpy使用流程 - tnlzz31985的个人空间 - OSCHINA - 中文开源技术交流社区
- Linux系统LVM增加新硬盘实现根文件系统扩容
- acfun html5 转换,AcFun剧场模式插件
- 蓝桥杯 ALGO-43 算法训练 A+B Problem
- Laravel 5无法打开所需的bootstrap /../ vendor / autoload.php
- html原生js进度条圆形,原生JavaScript实现进度条
- 产品和程序员的互殴大战
- linux 光功率 模块_光模块基本参数-消光比/光功率/灵敏度
- 标识符(Identifier)
- Ureport2的表格更改小技巧
- 我的世界网易绘梦师国服 物品材料介绍
- mapgis java二次开发_mapgis7.0二次开发小试牛刀
- 剪映怎么去水印,剪映怎么剪辑视频
- web 页面 常用分辨率(PC 移动端)
热门文章
- 一文带你入门go语言
- 争对让望对思野葛对山栀注解_中华经典名著《笠翁对韵》全文解释(上卷四支)...
- python提供了几个基本的数值运算操作符_慢步学习,二级python,数字类型及其运算...
- 知乎上这个程序员火了。。。
- 三相异步电机,直流电机工作原理
- 如何画Flot折线图
- 2022-2028全球快餐肉汤食品行业调研及趋势分析报告
- IP 别名和辅助 IP 地址
- HTML5 postMessage 和 onmessage API 详细应用
- 秋裤传奇html5,秋裤传奇