![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 18:19 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 最小的.COM/.EXE/.SYS文件长=1/33/10字节? |
| 可打印版本 1,436 / 5 |
| 第1楼 本是 | 发表于 2007-11-08 11:43 |
| 银牌会员 发帖 790 积分 2,227 | |
|
最小的.COM/.EXE/.SYS文件长=1/33/10字节? 记得在此版块讨论过最小的.EXE文件的问题,应该是文件头长32+最小执行代码1(C3h);最小的.COM也就自然是最小执行代码1(C3h);那最小的.SYS代码长度是文件头长18+最小执行代码1(CBh)吗?
我的实验结果是:最小的.SYS代码长度是文件头长18! 秘密是:最小执行代码1(CBh)嵌入到本来是驱动名称的0Ah字节后的0Bh--11h字节处! DEBUG代码脚本: e0 FF FF 0 0 0 0 0B 0 0B 0 1 CB 0 0 0 0 e10 0 0 nnull.sys rcx 12 wds:0 q 汇编源代码: dev segment assume cs:dev, ds:dev org 0 start: dw -1,0, 0, offset _,offset _ db 1 _:retf db 0,0,0,0,0,0 dev ends end start [ Last edited by 本是 on 2007-12-1 at 01:41 PM ] |
|
| 第2楼 jojand | 发表于 2007-11-08 12:18 |
| 初级用户 发帖 57 积分 117 | |
|
讨论这个有用吗?
|
|
| 第3楼 本是 | 发表于 2007-11-08 18:26 |
| 银牌会员 发帖 790 积分 2,227 | |
|
我在试用config.ctl(config.sys启动中实时编辑(非菜单选择)驱动控制)时进行了改进,但需要一个最小的虚拟驱动设备,我以前的结果是45字节,今天的结果是18字节!而且在此过程中,对EXE和SYS以及EXE与SYS二合一的exe也有了更深刻的了解。
|
|
| 第4楼 本是 | 发表于 2007-11-27 22:15 |
| 银牌会员 发帖 790 积分 2,227 | |
|
我的实验结果是:最小的.SYS代码长度是11字节!
秘密是:最小执行代码1(CBh)嵌入到本来是驱动名称的0Ah字节起的0Ah字节处! DEBUG代码脚本: e0 FF FF 0 0 0 0 0B 0 0B 0 CB nnull.sys rcx B wds:0 q 汇编源代码: dev segment assume cs:dev, ds:dev org 0 start: dw -1,0, 0, offset _,offset _ _:retf dev ends end start |
|
| 第5楼 happyman06 | 发表于 2007-11-27 23:15 |
| 初级用户 发帖 19 积分 52 | |
|
支持本是大哥 强烈支持本是大哥,通过这种尝试,可以更深刻的了解内核的相关知识!
|
|
| 第6楼 本是 | 发表于 2007-12-01 13:40 |
| 银牌会员 发帖 790 积分 2,227 | |
|
最新实验结果是:最小的.SYS代码长度是10字节!
秘密是:最小执行代码1字节的RETF(CBh)嵌入到本来是驱动属性的04h字节处! DEBUG代码脚本: e0 FF FF 0 0 CB 0 04 0 04 0 nnull.sys rcx A wds:0 q 汇编源代码: dev segment assume cs:dev, ds:dev org 0 start: dw -1,0 _:retf db 0 dw offset _,offset _ dev ends end start |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |