|
本是
银牌会员
积分 2201
发帖 789
注册 2005-1-27
状态 离线
|
『楼 主』:
最小的.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 ]
|
my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2007-11-8 11:43 |
|
|
jojand
初级用户
积分 117
发帖 57
注册 2007-10-23
状态 离线
|
『第
2 楼』:
讨论这个有用吗?
|
在她弯下腰的瞬间 我彷佛看见 那神秘柔和的曲线 如云雾中岭壑的蜿蜒 |
|
2007-11-8 12:18 |
|
|
本是
银牌会员
积分 2201
发帖 789
注册 2005-1-27
状态 离线
|
『第
3 楼』:
我在试用config.ctl(config.sys启动中实时编辑(非菜单选择)驱动控制)时进行了改进,但需要一个最小的虚拟驱动设备,我以前的结果是45字节,今天的结果是18字节!而且在此过程中,对EXE和SYS以及EXE与SYS二合一的exe也有了更深刻的了解。
|
my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2007-11-8 18:26 |
|
|
本是
银牌会员
积分 2201
发帖 789
注册 2005-1-27
状态 离线
|
『第
4 楼』:
我的实验结果是:最小的.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
|
my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2007-11-27 22:15 |
|
|
happyman06
初级用户
积分 52
发帖 19
注册 2006-9-2
状态 离线
|
『第
5 楼』:
支持本是大哥
强烈支持本是大哥,通过这种尝试,可以更深刻的了解内核的相关知识!
|
|
2007-11-27 23:15 |
|
|
本是
银牌会员
积分 2201
发帖 789
注册 2005-1-27
状态 离线
|
『第
6 楼』:
最新实验结果是:最小的.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
|
my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2007-12-1 13:40 |
|