标题: [讨论]关于精简COMMAND.COM的问题
[打印本页]
作者: Wengier
时间: 2003-6-3 00:00
标题: [讨论]关于精简COMMAND.COM的问题
MS-DOS 7.x中的必备文件COMMAND.COM等的体积比较大,占用了不少空间,应该好好减减肥了。不过,UPX、aPack等软件都不能对它进行压缩的。而COMPREXE压缩的结果是,能运行但不能做为SHELL,否则会出现“Invalid COMMAND.COM”的错误。
我观察了一下,发现COMMAND.COM目前最多只能减2个字节,连3个字节都不可以的。给他加字节或修改原来的字节也都可以的,但就是不能减去超过2个的字节。显然,COMMAND.COM在做SHELL时会做体积校验的,若少于94,290字节就不行。谁有办法解决一下呢?
作者: minisheep
时间: 2003-6-3 00:00
用破解的眼光来看!他检验自己的大小是吧!你不让他检验!他用条件语句吧!你用无条件语句!在就是把大小改成你修改后的大小!别用崇拜的眼光看我!我只是知道原理!方法不会!
作者: 如是大师
时间: 2003-6-3 00:00
哈哈。。。。。我也会说。谁来崇拜崇拜我呀。。。。
作者: Wengier
时间: 2003-6-4 00:00
Roy、lydong等高手也来说说一下方法吧。
作者: 9zhmke
时间: 2003-6-5 00:00
以前有个游戏要打个大于10M的电影文件,结果一查执行文件里,10M的地方只有两个,第一次没对,第二次.....,从此那个游戏就可以在硬盘玩了。
............试试吧。
作者: Wengier
时间: 2003-6-13 00:00
刚才我对COMMAND.COM进行了一番研究,发现对COMMAND.COM进行大精简确实不太容易呢,除非做一些较大的修改。因为,COMMAND.COM会直接存取文件内部的地址,而不像普通程序那样的。比如,通过对COMMAND.COM的5F10H处的修改,就至少可以减少COMMAND.COM好几十字节的内容,但再想精简的话就得修改COMMAND.COM中更多的内容了。希望大家共同努力吧。
作者: dos时代菜鸟
时间: 2003-6-13 00:00
command程序只不过是一个外挂的命令解析程序而已,我们为什么不可以用其他的代替?比如ndos
作者: Wengier
时间: 2003-6-13 00:00
Quote: |
以下是引用dos时代菜鸟在2003-6-13 9:26:29的发言:
command程序只不过是一个外挂的命令解析程序而已,我们为什么不可以用其他的代替?比如ndos |
|
因为NDOS等不支持长文件名呀。而MS-DOS 7.10中的COMMAND在DOSLFN下是完全支持长文件名的,而且兼容性好。
作者: Roy
时间: 2003-6-13 00:00
用ROM-DOS的COMMAND.COM吧
作者: Wengier
时间: 2003-6-13 00:00
Quote: |
以下是引用Roy在2003-6-13 15:35:51的发言:
用ROM-DOS的COMMAND.COM吧 |
|
ROM-DOS的COMMAND.COM和MS-DOS 7.10的配合有些问题,而且不支持LOCK等命令呢。
作者: 沈洁
时间: 2003-6-13 00:00
Wengier版主的新logo是挺漂亮的!
可惜为什么一个男孩子会选一个女孩头像作logo,
相比之下Roy和如是大师的头像就更有点男人味!
作者: 沈洁
时间: 2003-6-13 00:00
还有就是希望Wengier版主能把command压缩成功!
作者: lydong
时间: 2003-6-14 00:00
Quote: |
以下是引用Wengier在2003-6-4 19:36:34的发言:
Roy、lydong等高手也来说说一下方法吧。 |
|
给Wengier称为"高手"真的令人愧不敢当(有点脸红)啊,在论坛中我主要还是在向大家学习呢,虽然我很有兴趣跟大家一起研究DOS方面的问题,但自己知识肤浅,真的不敢居于"高手"之列(有点惭愧)……
上面提到的问题中,我想COMMAND.COM能不能也像精简IO.SYS时一样,把程序分成几段,去掉一些不重要的内容,来达到精简呢。其次,校验COMMAND.COM大小的程序我想应该是在IO.SYS之中,因为若换成其它的SHELL时,都会有同样的出错提示,问题应该不会出在COMMAND.COM 身上。而是IO.SYS 对COMMAND.COM 的大小进行检查而出现的。不知说的对不对,请Wengier指教!
作者: Wengier
时间: 2003-6-14 00:00
Quote: |
以下是引用lydong在2003-6-14 4:19:17的发言:
上面提到的问题中,我想COMMAND.COM能不能也像精简IO.SYS时一样,把程序分成几段,去掉一些不重要的内容,来达到精简呢。其次,校验COMMAND.COM大小的程序我想应该是在IO.SYS之中,因为若换成其它的SHELL时,都会有同样的出错提示,问题应该不会出在COMMAND.COM 身上。而是IO.SYS 对COMMAND.COM 的大小进行检查而出现的。不知说的对不对,请Wengier指教! |
|
唉,可惜不是这样的。据我观察,IO.SYS和COMMAND.COM的结构完全是两回事,所以上回精减IO.SYS的经验无法应用于COMMAND.COM中。对IO.SYS进行的是精减,而对COMMAND.COM只能是进行压缩了。但校验大小并不是在IO.SYS中进行的,而是在COMMAND.COM内部进行的,这点已被我通过研究和试验证实了,但目前却还没有很好的解决办法。
作者: 沈洁
时间: 2003-6-14 00:00
这就麻烦了的先压缩一下知道压缩后的体积,
然后在在没有压缩过的command中修改标注文件体积的地址,
最后再用同样的方法,把此程序再压缩一遍!
真麻烦啊!
作者: Wengier
时间: 2003-6-14 00:00
更重要的是,COMMAND.COM内部校验文件体积的地方可不止一处呢!
作者: 沈洁
时间: 2003-6-14 00:00
那就全修改啊!
作者: 如是大师
时间: 2003-6-14 00:00
呵呵~不容易啊~
作者: yiyesong
时间: 2003-6-14 00:00
说实在的,如果从实际的角度来说没有任何意义,因为现在软盘已经基本上被淘汰了,无论是速度还是容量都让人受不了。它唯一还存在的理由就是携带方便,同时也可以写。一个CD-R比软盘还便宜,容量却相当于五百张软盘。只是它不能多次擦写。CD-RW相对来说还太贵。
但是如果作为一个课题的话,精简COMMAND.COM却是很值得研究。如果能做到的话,对个人的计算机水平提高很多。知识都是在不断遇到挑战中而得到增长的。
作者: mys
时间: 2003-6-14 00:00
换用其他COMMAND。COM行不行呢,例如IBMDOS2000或MSDOS8的COMMAND.COM