Linux下打开rar/zip/7z自解压格式文件的技巧

OOo,TeX,KO,ABI,GIMP,Picasa,ProE,QCAD,Inkscape,Kicad,Eagle
头像
careone
帖子: 834
注册时间: 2007-12-17 21:41
送出感谢: 74 次
接收感谢: 25 次

Linux下打开rar/zip/7z自解压格式文件的技巧

#1

帖子 careone » 2009-08-06 14:10

Linux下打开rar/zip/7z自解压格式文件的技巧

Linux 下支持多种压缩文件格式,但是Windows 下生成的 rar/zip/7z等自解压格式文件,在 Linux下却没有相应的程序能打开或解压缩。其实我们也可以通过一些简单的处理,把自解压文件变成普通压缩文件,就可以正常打开。

一、原理
rar/zip/7z自解压格式文件,其实就是在普通的压缩文件的文件头,添加了一个自解压模块,自解压模块的文件名一般是Default.SFX, 或者Zip.SFX, 或者7z.sfx。只是zip自解压格式稍微复杂一点,它还修改了普通zip格式压缩文件末尾的5个字节(普通zip格式压缩文件末尾的5个字节内容一般是5个 0x00)。

二、需要用到的linux命令和程序

1 dd 命令(用于跳过自解压文件头,直接把普通压缩文件复制出来);
对于 rar/zip/7z自解压格式文件, 只用这个命令就行了。再在linux用解压缩软件直接打开压缩文件就行了。

2 二进制编辑器 (主要用于编辑 zip自解压格式文件的末尾5个字节)
如 gnome 下的 ghex, bless; KDE 下的 khexedit; 文本模式的 qemacs, hexedit 等。
安装方法:

代码: 全选

sudo apt-get install ghex bless khexedit gemacs hexedit
3 cat 命令 (主要用于合并自解压模块和普通压缩文件,生成一个新文件)

三、技术常识
3.1 WinRAR 3.71 for Windows 的自解压模块的大小:
* Default.SFX (rar自解压模块): 103424字节;
* Zip.SFX (zip自解压模块): 67584字节;

3.2 7-zip 自解压模块的大小:
* 7z.sfx (7z自解压模块): 60928字节;

说明:不同的程序使用的自解压模块,不同的程序版本号,不同的自解压模块版本,上面的大小可能不同。如果无法正常打开处理后的压缩文件,请用二进制编辑器查看自解压格式文件的压缩模块结尾和普通压缩文件的文件头,确定有效的自解压模块大小,再进行处理。

四、操作实例:
4.1 提取 WinRAR 3.71 for Windows 生成的rar自解压文件中的普通压缩文件

代码: 全选

dd if=old.rar.exe of=new.rar bs=103424 skip=1
警告: 使用dd 命令有一定的风险,使用时尽可能以普通用户身份运行,并且 if,of,等号(=)的前后不要有空格。使用错误的参数可能带来不可预知的后果或数据损坏!!!
上面的 old.rar.exe 是旧文件名,
new.rar 是新文件名,
103424 是自解压模块的大小,单位是字节(byte)
skip=1 代表复制时跳过文件前面的自解压模块103424字节*1 =103424

4.2 提取 WinRAR 3.71 for Windows 生成的zip自解压文件中的普通压缩文件

代码: 全选

dd if=old.zip.exe of=new.zip bs=67584 skip=1
这时提取出的 new.zip 是不能正常打开的,还需要用二进制编辑器(如 gnome 下的 ghex, bless; KDE 下的 khexedit; 文本模式的 qemacs, hexedit 等),把文件末尾最后的5个字节改为 5个 0x00, 这才变成地地道道的 zip 普通压缩文件,再用其它解压缩软件打开。

4.3 提取 7-zip 生成的7z自解压文件中的普通压缩文件

代码: 全选

dd if=old.7z.exe of=new.7z bs=60928 skip=1
再用解压缩软件打开得到的新文件 new.7z 即可。

五、自己把普通压缩文件处理成自解压文件
5.1 先制作一个普通的 rar/7z 压缩文件,再运行下面的命令即可。
(注意:不推荐生成 zip 自解压文件,因为要对文件末尾进行处理,操作较复杂)

代码: 全选

cat rar.sfx old.rar > new.rar.exe
(生成rar自解压文件)
------------------

代码: 全选

cat 7z.sfx old.7z > new.7z.exe
(生成7z自解压文件)
上面的 rar.sfx 和 7z.sfx 分别是自解压模块。如果没有,也可按下面的命令进行提取:

代码: 全选

dd if=old.rar.exe of=rar.sfx bs=103424 count=1

代码: 全选

dd if=old.zip.exe of=zip.sfx bs=67584 count=1

代码: 全选

dd if=old.7z.exe of=7z.sfx bs=60928 count=1
重复说明:不同的程序使用的自解压模块,不同的程序版本号,不同的自解压模块版本,上面的大小可能不同。如果无法正常打开处理后的压缩文件,请用二进制编辑器查看自解压格式文件的压缩模块结尾和普通压缩文件的文件头,确定有效的自解压模块大小,再进行处理。

下面是一些压缩文件格式的文件头和文件尾内容,可供有一定经验的用户参考。
11winrar3.71.rar.head-end.png
11winrar3.71.rar.head-end.png (7.82 KiB) 查看 10377 次
12winrar3.71.rar-exe.head.png
12winrar3.71.rar-exe.head.png (10.22 KiB) 查看 10377 次
21winrar3.71.zip.head-end.png
21winrar3.71.zip.head-end.png (8.48 KiB) 查看 10377 次
22winrar3.71.zip-exe.head.png
22winrar3.71.zip-exe.head.png (10.23 KiB) 查看 10377 次
23winrar3.71.zip-exe.end.png
23winrar3.71.zip-exe.end.png (10.36 KiB) 查看 10377 次
31-7z.head.png
32-7z.end.png
33-7z-exe.head.png
把上面的图片打了包:
sfx-pic.tar.gz
(82.32 KiB) 下载 41 次
魁拔不死,天下不宁。
魁拔既死,天下不平。
--------------
Careone <emacslocale^126.com>
https://sourceforge.net/projects/emacslocale/files/
头像
黄美姬
帖子: 8428
注册时间: 2009-10-08 11:15
来自: 大城市铁岭
送出感谢: 0
接收感谢: 1 次

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#2

帖子 黄美姬 » 2010-03-05 18:42

消灭零回复
我们是命运的妓女,它把我们都嫖了

N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\[email protected]\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
delectate
帖子: 18311
注册时间: 2008-01-09 22:41
送出感谢: 0
接收感谢: 6 次

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#3

帖子 delectate » 2010-03-05 18:49

wormhole
头像
黄美姬
帖子: 8428
注册时间: 2009-10-08 11:15
来自: 大城市铁岭
送出感谢: 0
接收感谢: 1 次

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#4

帖子 黄美姬 » 2010-03-05 19:00

终于找到这个超时空帖贴了: :em04
07年的问题, 09年才回贴。 :em06
http://diybbs.zol.com.cn/3/12_27326.html
我们是命运的妓女,它把我们都嫖了

N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\[email protected]\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵
送出感谢: 1 次
接收感谢: 6 次

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#5

帖子 wangdu2002 » 2010-03-05 19:15

这个坟挖得不错。。。某也乐于鞭尸了。 :em11
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
rediscover
帖子: 3173
注册时间: 2010-01-13 23:26
送出感谢: 0
接收感谢: 12 次

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#7

帖子 rediscover » 2010-03-24 15:01

来Mark一下。。。
Here I am.
Ubuntu 桌面培训 - 全中文官方文档,含汉化截图,提供PDF
yqh1203
帖子: 108
注册时间: 2005-11-06 16:54
送出感谢: 0
接收感谢: 2 次

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#8

帖子 yqh1203 » 2010-03-25 13:02

干嘛不直接用wine呢?不是很方便吗?
wanderer11
帖子: 23
注册时间: 2009-03-28 8:58
送出感谢: 0
接收感谢: 0

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#9

帖子 wanderer11 » 2010-03-30 14:08

Windows 下生成的 rar/zip/7z等自解压格式文件,在 Linux下却没有相应的程序能打开或解压缩


没搞懂啥子意思?

ubntu:
rar:
sudo apt-get install rar

zip:
自带

7z:

sudo apt-get install p7zip


安装候你试试,能不能压缩、解压这些格式???????
xliu.cn
帖子: 60
注册时间: 2008-08-30 13:43
送出感谢: 0
接收感谢: 0
联系:

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#10

帖子 xliu.cn » 2010-05-22 10:51

感觉还是很复杂,办公使用最重要的是简单,易用,其他的都是零。
头像
jioyo源
帖子: 3476
注册时间: 2008-10-08 13:48
送出感谢: 0
接收感谢: 4 次

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#11

帖子 jioyo源 » 2010-05-22 16:44

:em03 遇到这样的飞鸽叫别人帮我解下,或者直接删除……
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
头像
playeryang
帖子: 249
注册时间: 2009-04-04 12:55
来自: 四川...泸州||江苏...镇江
送出感谢: 0
接收感谢: 1 次

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#12

帖子 playeryang » 2010-05-25 10:37

:em06
头像
mark1991
帖子: 218
注册时间: 2007-02-12 19:46
送出感谢: 1 次
接收感谢: 0

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#13

帖子 mark1991 » 2010-12-20 18:40

wanderer11 写了:Windows 下生成的 rar/zip/7z等自解压格式文件,在 Linux下却没有相应的程序能打开或解压缩


没搞懂啥子意思?

ubntu:
rar:
sudo apt-get install rar

zip:
自带

7z:

sudo apt-get install p7zip


安装候你试试,能不能压缩、解压这些格式???????
自解压格式 是不是exe的?
thorne
帖子: 660
注册时间: 2008-10-08 22:01
送出感谢: 0
接收感谢: 2 次

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#14

帖子 thorne » 2010-12-20 22:43

我觉得从来没有解压缩的麻烦或者困惑
KDE下ark
gonme下的file-roler
都很不错 直接右键解压就是了
需要这么些个么?
TULK:

代码: 全选

其实我是个Debian GNU/Linux用户
Octave script :http://forum.ubuntu.org.cn/viewtopic.php?f=35&t=254511
Octave中文:http://forum.ubuntu.org.cn/viewtopic.php?f=35&t=318969
shouyushi
帖子: 1
注册时间: 2011-03-18 16:25
送出感谢: 0
接收感谢: 0

Re: Linux下打开rar/zip/7z自解压格式文件的技巧

#15

帖子 shouyushi » 2011-03-18 16:30

careone, delectate,
回复

回到 “办公、图像、机械电子设计等”