这款ts-rar合成jpg软件可以帮助大家将RAR压缩文件合成JGP图片,当大家在百度贴吧想给别人发送压缩包,但是又不能上传时就可以用这个工具了,实用性还是很强的,有需要的朋友可以试试!
本质上它是利用文件格式设计而 hack,最重要的一个原理就是:RAR 的文件格式规定文件头不必从 0 地址开始。RAR 程序解压文件时,会寻找
0x52 0x61 0x72 0x21 0x1a 0x07 0x00
这样一串字节,具体意义请见[1],前四个字节转为 ASCII 码恰好是「Rar!」。正常的 RAR 文件会把这串字节放在文件头部,但 RAR 文件格式并没有规定这是必须的(实际上,RAR 文件并不是开放的格式,怎么才算「正确」的 RAR 文件并无公共可见的文档),所以如果文件头并没有出现它,RAR 解压程序就会持续搜寻这个字串,找到之后把后面的部分当作 RAR 来处里,前面的部分就无视掉了。
反过来,JPG 格式规定文件起始两个字节必须是 0xFF 0xD8,如果找不到这两个字节,那么就不认为它是 JPG 文件。
RAR 并不是唯一一种不规定文件格式必须起始于文件头的格式。比如下面这个文件同时是:
Windows 应用程序
Adobe PDF
Java JAR
HTML 网页
为了提高可用性,jpg还rar这样的软件都会试图在解码时排除那些错误的字节,一般情况下,除非文件头位置,其他位置的错误最多造成马赛克而已。最简单的是copy a.jpg+b.rar c.jpg 基本上不会影响两个文件的打开。最早还有txt的玩法。推荐winhex深入研究。
用16进制编辑器打开这样的文件,很明显看到两个文件的文件头大写JPEG和!RAR。
可以实现的主要原因有两个,一是jpeg的头格式里面保存了jpeg图像的图像的宽度和高度,而window图片阅读器正好是按照jpeg的格式处理的,活该它就这样,读取到jpeg文件结尾,rar的开头后就停止了。
二是rar要支持用rar程序打开自解压形式的压缩文件。因为自解压是一种可执行文件的形式,rar的实现方法就是把rar文件附到自解压程序的尾部。于是在我们按照'用winrar打开'这种方式给它发命令时,它只是把jpeg当作一个自解压程序了!不信你去桌面右键->'用winrar'一下jpg。
140.5M / 09-05
76.4M / 03-25
55M / 06-05
237.9M / 04-13
900.9M / 03-02
96.2M / 07-06
311.2M / 07-06
335M / 07-06
200M / 07-06
413.8M / 07-06
484.7M / 09-27
165.4M / 09-05
353.9M / 06-05
131.8M / 04-13
195.6M / 03-03
45.6M / 09-08
665.2M / 07-06
2.84G / 07-06
93M / 07-06
338.3M / 07-06
1.38G / 07-26
488.3M / 07-16
109.8M / 06-03
142M / 01-08
1.2M / 11-23
548.8M / 04-13
1.6M / 04-13
1.48G / 03-18
646.6M / 03-03
133.7M / 03-03
110.5M / 09-05
33.4M / 09-05
325.8M / 08-12
60M / 04-29
254M / 04-25
659M / 04-23
1M / 12-26
253.4M / 12-08
253M / 12-08
1.19G / 11-16
369M / 09-22
181.5M / 09-22
201.2M / 09-05
488.3M / 07-16
248.9M / 12-08
248.9M / 12-08
100.6M / 03-06
148.9M / 03-06
1.12G / 07-06
1.25G / 07-06
1.76G / 09-22
1.92G / 04-17
116.2M / 04-10
201.5M / 04-13
7.31G / 07-01
94.3M / 07-06
2.48G / 07-06
7.63G / 07-06
1M / 07-06
778.1M / 07-06
561.8M / 07-11
72M / 07-06
548.7M / 07-06
1.00G / 07-06
9.13G / 07-06
126.2M / 07-06
72M / 07-06
105.1M / 07-06
132M / 07-06
132M / 07-06