一、将资料存盘。(只有这些而已喔!) ───────┐
二、使用DEBUG < FileName.xxx(文件名称) │
三、即可产生一个执行档案。 │
│
N DS_ABOMB.COM ←┤
E0100 E8 00 00 5E 83 EE 03 BF 00 01 57 B8 99 4B CD 21 │
. │
. │
. │
RCX │
02DD │
W │
Q ←┘
当我们用DOS 的File Handle 来读写档案时,有没有人想过它的原理,假设一开
始档案指标指向档案开头,我们读取或写入这个档案后会改变它的指标,是否有人想
过它将这个指针值记录在哪里? 如果我们写入一个档案,DOS 如何能得知在关档时怎
样更改此文件的目录? 关于这一切档案处理的数据都记录在SFT 之中,oh... yeah...
SFT!!!是写毒者的强力工具,深入了解SFT 并且应用在您的病毒之中,将会使您的毒
变的更强,事实上... 早在DOS 3.3 的时代就已经有人利用SFT 来写毒了,他就是保
加利亚的毒王Dark Avenger,国外使用SFT 的技术很久了,但是我们国内的病毒作者
却很少有人懂的去利用SFT(我例外啦... 呵呵呵...)OK!废话不多说... 我们赶快来
看看这样一个好东西...
DOS 4.0-6.2 的 SFT 格式 (取自 INTRLIST,由我翻译)
偏移 大小 描述
00h WORD 参考至此档案的 handle 个数
02h WORD 开文件模式 (参考 AH=3Dh,int 21h)
如果此檔是利用FCB 来开档则 bit 15=1
04h BYTE 档案属性 (参考 AH=43h,int 21h)
05h WORD 装置信息 (参考 AX=4400h,int 21h)
bit 15=1 表是此档为远方 (在网络上)
bit 14=1 在关档时不要设定档案的日期及时间
bit 7 1: 设备 device,0: 档案
bit 6 =1 档案尚未被写入
bits 5~0 当 bit 7=1 时磁盘驱动器编号 (0=A:,1=B: ...)
bit 7=0 时为装置信息
07h DWORD 如果是字符装置,则此为指向装置驱动程序表头之指针
否则,此为指向DOS 磁盘参数区块 (DPB) 之指标
(参考 AH=32h,int 21h)
0Bh WORD 档案的启始丛集 (cluster)
0Dh WORD 档案时间 (参考 AH=57h,int 21h)
0Fh WORD 档案日期 (参考 AH=57h,int 21h)
11h DWORD 档案大小
15h DWORD 档案读写指标 (参考 AH=42h,int 21h)
19h WORD 最后一次存取的 cluster 之相对 cluster 编号
1Bh DWORD 此档案目录进入点的扇区编号 (可用直接用 int 25h/26h 读写)
1Fh BYTE 一个扇区中,可容纳的目录个数
20h 11 BYTEs FCB 格式的文件名 (无路径,无句点 '.',剩下的空间以
空白 space (ASCII code 20h) 补足
2Bh DWORD (SHARE.EXE) 指向前一个 SFT 共享相同档案之指标
2Fh WORD (SHARE.EXE) 开启档案的网络机器编号
31h WORD 档案拥有者的 PSP 区段,AUX/CON/PRN 指向 IO.SYS
33h WORD (SHARE.EXE) 在 SHARE 程序段中共享录的偏移值
0000h=没有 SHARE
35h WORD 最后一次存取的 cluster 之绝对 cluster 编号
37h DWORD 指向 IFS 驱动程序之指标.
亲!本部分内容设定了隐藏,需要回复后才能看到. 请先
注册! 再回帖! 免费下载上千GB的课程.