Board logo

标题: [推荐] IO.SYS的超级“减肥”方法 [打印本页]

作者: Wengier     时间: 2003-4-18 00:00    标题: [推荐] IO.SYS的超级“减肥”方法

MS-DOS 7.10启动盘无疑是最实用的启动盘,可惜那个IO.SYS通常实在是太大,占了软盘的200多K的空间,实在是很不值得。几天前看到Roy将REGEDIT.EXE的DOS程序部分成功分割,给了我很大的启示,因此我决定对MS-DOS 7.10的IO.SYS也进行一番分割。经过一番研究,我发现MS-DOS 7.10的IO.SYS文件大体实际上由三部分组成,一部分是启动所需要的代码(121K),第二部分则是内嵌的压缩格式的开机LOGO图片(65K),第三部分是文件镜像部分(32K),基本上没有什么作用。经过试验,我成功地将第二、第三部分从IO.SYS文件中切除,这时它只剩下了121K大小(比原来的小了100K),并能正常启动,而且原Win98的LOGO画面也不复存在!

这样一来,它就成了真正的MS-DOS 7.10的IO.SYS了吧,在此上传上来:
打开附件    链接已失效(管理员注)

[此贴子已经被作者于2003-4-18 8:11:22编辑过]


作者: 如是大师     时间: 2003-4-18 00:00
好。
作者: fjpc     时间: 2003-4-18 00:00
如果想植入自己的的logo图要怎么做?
作者: Dark-Destroy     时间: 2003-4-18 00:00
版主你太厲害了,可不可教我如何看它是分成幾部份呢?謝謝!!
作者: Roy     时间: 2003-4-18 00:00
Wengier你可不可以把那三個部分的地址(offset)說出來?
作者: Wengier     时间: 2003-4-18 00:00
第一部分: 00000H - 1E605H (Header)
第二部分: 1E606H - 2E9FFH (LOGO)
第三部分: 2EA00H - 36B95H (Image)
作者: Roy     时间: 2003-4-18 00:00
對了,我在VPC中試了,可是不能啟動.
作者: Wengier     时间: 2003-4-18 00:00
不过在我的硬盘(C:\)中是可以启动的。
作者: mys     时间: 2003-4-18 00:00
还是Wengier利害,这个问题目前只有你解决掉了。
作者: Roy     时间: 2003-4-18 00:00
我試過了,只可以在硬盤中啟動,在軟盤中不能.
作者: Wengier     时间: 2003-4-18 00:00
Roy知道为什么呢?可能是文件首部的原因,因为文件大小已被改动,前面的文件头信息也需相应修改一下,但这点我不会改。
作者: Roy     时间: 2003-4-18 00:00
我試過修正檔頭,可是在軟盤上還是不能.
作者: LanE     时间: 2003-4-18 00:00
能把具体的方法说一下吗?
还有用哪些工具?
作者: Wengier     时间: 2003-4-18 00:00
那我想知道,IO.SYS在软盘和硬盘中启动时执行的代码有什么不同?为什么效果会不一样?
作者: Wengier     时间: 2003-4-18 00:00
另外Roy帮看看第二部分的那个LOGO是什么压缩格式的(看来压缩比例不高,只有一半左右)?如果能研究出来的话就可以将我们自己喜爱的LOGO放入到里面了。
作者: jssyq     时间: 2003-4-18 00:00
Wengier 老大就别放什么LOGO了,本虾最喜欢精简的东西,强烈【泣盼】版主加油,能在软盘上成功


作者: Wengier     时间: 2003-4-18 00:00
终于知道那个LOGO是用DBLSPACE压缩到IO.SYS中的了,见这儿我刚发的帖子:
http://www2.zzu.edu.cn/ie/newdos/dispbbs.asp?boardID=11&ID=1898

当然要精减,这几天我会想办法的。
作者: Wengier     时间: 2003-4-19 00:00
LanE:其实只用EDIT切割就能做到。


以下附上我的最新研究成果:

我发现之所以124K的IO.SYS不能从软盘中启动,似乎是因为它从软盘启动时要检测自身大小。经多次试验,我已确定这个大小为192,001字节(即文件头190,976字节+镜像1,024字节+1字节),也就是说,若低于这个大小IO.SYS就不能从软盘中启动,但却可以从硬盘中启动。其实它只检查是否到了这个大小,却并不检查是什么内容,因此,即使在后面全部是00 00H都可以,此时无论是从软盘还是硬盘它都能启动了。不过这样做显然比较浪费空间,好的解决方法有两种:

方法1:取消IO.SYS从软盘启动时的这个大小校检(Roy试试吧);
方法2:将用DoubleSpace压缩后的自定义LOGO嵌入到IO.SYS的124-191K的空间中,以有效利用这部分空间来显示自定义启动LOGO画面。

欢迎大家提出方法和建议,谢谢!

此IO.SYS(192,001字节)的下载地址是:
打开附件    链接已失效(管理员注)

大家拿去试试吧。

[此贴子已经被作者于2003-4-19 3:42:58编辑过]


作者: playboy2925     时间: 2003-4-19 00:00
用十六进制编辑器吧,会更好一些。
作者: Roy     时间: 2003-4-19 00:00


  Quote:
以下是引用Wengier在2003-4-19 3:30:11的发言:
方法1:取消IO.SYS从软盘启动时的这个大小校检(Roy试试吧);

我找不到io.sys在哪裡才檢驗大小呢.
Wengier,不如你也試試吧.
作者: Wengier     时间: 2003-4-19 00:00
我可真是找不到校检的地方呢。

2003-4-20更新:终于找到了,并成功“减肥”为123K了!具体请见:

http://www2.zzu.edu.cn/ie/newdos/dispbbs.asp?boardID=11&ID=1916

[此贴子已经被作者于2003-4-21 3:07:01编辑过]



作者: jhsyc     时间: 2003-11-5 00:00
http://www2.zzu.edu.cn/ie/newdos/dispbbs.asp?boardID=11&ID=1916

地址打不开呀
作者: 算了     时间: 2003-11-5 00:00
太强了,是看汇编码知道的吗?很伤神的