记得在此版块讨论过最小的.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 ]
我的实验结果是:最小的.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 ]
