D0I:10.13374/j.issn1001-053x.1996.06.022 第18卷第6期 北京科技大学学报 Vol.18 No.6 1996年12月 Journal of University of Science and Technology Beijing Dec.1996 科研快报 用软件给C盘及软盘加锁 蒋一凡 北京科技大学计算中心,北京100083 当今社会是一个信息社会,信息是一种无形的资源,它不仅了提高人们的工作效率,而且 还改变了生活质量.计算机的磁盘作为信息的载体,它的安全性就显得越来越重要,如何安全 地使用计算机,使信息不遭破坏,是每一个计算机用户所面临的首要问题. 1给C盘加锁 目前最有效的安全措施是给硬盘加上防写卡,即把硬盘划分成若干个逻辑盘,通过防写 卡后,使C盘的信息只能读不能写,这样就不用担心硬盘的信息被破坏掉.但是,一卡只能用 于一台计算机上.一块卡少则100多元,多则200~300元.对于一台家用计算机,这样的投人 还是可以的,而对于一个机房(一般几十台至上百台计算机),花费是相当可观的.笔者通过一 段时间研究,编制了一个锁C盘的软件.现在对编制程序中几个关键的问题作些说明. 中断NT13H是对磁盘(包括软盘和硬盘)进行各种操作的中断.在调用中断NT13H以 前,首先要将各寄存器中设置参数,AH是设置子功能的寄存器,02H时表示读盘操作,03H时 表示写盘操作,05H时表示格式磁盘;对磁盘进行操作是由DL寄存器来完成的,DL为OH时 表示对A驱进行操作,为01H时表示对B驱进行操作,为80H时表示对第1个物理硬盘进行 操作,为81H时表示对第2个物理硬盘进行操作;当读写磁盘操作时,BX的内容表示的是要 读写信息到内存中的偏移量;硬盘某一物理位置是由3个参数来确定的,即柱面、扇区及磁 头,它们分别对应CH、CL及DH的内容, 从中断NT13H的情况可以看出,要锁C盘,必须对原有中断NT13H加以修改,首先锁 C盘就是让C盘只能读,不能写,也不能格式化,所以,当AH为O3H和05H,且只有在DL为 80H时,改变中断NT13H.因为DL为80H,是指第1个物理硬盘,如果只要是DL为80H就 加锁,那是对整个物理硬盘加锁,这不是我们的目的.为了对物理硬盘中的第1个逻辑盘进行 加锁,即对C盘加锁,DOS下提FDISK命令是对计算机硬盘进行划分分区的命令,划分后的 分区信息被保存到硬盘物理上的第0柱面、0磁头、1扇区内,通过下列一小段汇编程序就可 读到分区信息: c>debug -a 2DBC:0100 mov ax,0201 2DBC:0103 mov cx,1 1995-10-25收稿第一作者男35岁讲师
第 卷 第 期 年 月 北 京 科 技 大 学 学 报 科研快报 用 软件给 盘及 软盘加锁 蒋一凡 北京科技大学计算 中心 , 北京 当今社 会是 一个信息社 会 , 信息是 一种 无形 的资源 , 它不 仅了提高人们 的工作效率 , 而 且 还 改 变 了生 活 质量 计算 机 的磁盘作 为信 息 的载体 , 它 的安全性 就显得 越来越 重 要 , 如 何 安 全 地使用计算机 , 使信息不遭破坏 , 是 每一个计算机 用户 所 面 临 的首要 问题 给 盘加锁 目前最 有 效 的安 全措 施 是 给硬 盘 加 上 防写 卡 , 即 把硬 盘 划 分成 若 干个 逻 辑 盘 , 通 过 防写 卡 后 , 使 盘 的信 息只 能读 不 能写 , 这样 就 不 用 担 心 硬 盘 的信 息被破 坏 掉 但是 , 一 卡 只 能 用 于 一 台计算机 上 一块卡 少则 多 元 , 多则 一 元 对于 一 台 家 用 计算 机 , 这样 的投八 还是 可 以 的 , 而 对于 一个机房 一般几 十台 至 上 百 台计算机 , 花 费是 相 当可 观 的 笔者 通 过 一 段 时 间研究 , 编制 了一个锁 盘 的软件 现在 对编制程 序 中几 个 关键 的 问题 作些 说 明 中断 是 对磁 盘 包 括 软 盘 和 硬 盘 进行 各种 操 作 的 中断 在 调 用 中断 以 前 , 首先要 将各 寄存器 中设 置参数 , 是设 置 子 功 能 的寄存器 , 时表示 读 盘操作 , 时 表示 写盘操 作 , 时表示 格 式 磁 盘 对磁 盘 进行操 作是 由 寄存器来完成 的 , 为 时 表示 对 驱 进行操 作 , 为 时表示 对 驱 进行操作 , 为 时表示 对第 个物理 硬 盘进行 操 作 , 为 时表 示 对第 个物理 硬 盘进 行 操作 当读 写磁 盘操作 时 , 的 内容表示 的是要 读 写 信 息 到 内存 中 的偏 移 量 硬 盘 某 一 物 理 位 置 是 由 个参 数来 确 定 的 , 即 柱 面 、 扇 区 及 磁 头 , 它 们分别 对应 、 及 的 内容 从 中断 的情 况 可 以 看 出 , 要 锁 盘 , 必 须 对原有 中断 加 以 修改 首 先锁 盘就是 让 盘 只 能读 , 不 能 写 , 也不 能格 式 化 , 所 以 , 当 为 和 , 且 只 有在 为 时 , 改 变 中断 因为 为 , 是 指 第 个 物理 硬 盘 , 如果 只要 是 为 就 加锁 , 那是 对整个物理 硬 盘加锁 , 这不是 我们 的 目的 为 了 对物理 硬盘 中的第 个逻辑盘进行 加锁 , 即对 盘 加锁 , 下 提 命 令 是 对计 算 机 硬 盘进 行 划 分分 区 的命令 , 划 分后 的 分 区 信息被保存到 硬 盘 物理 上 的第 柱 面 、 磁 头 、 扇 区 内 , 通 过 下 列 一 小 段 汇 编程 序就 可 读到分 区信 息 一 , , 一 一 收稿 第 一作者 男 岁 讲师 DOI :10.13374/j .issn1001-53x.1996.06.022
·596· 北京科技大学学报 1996年No.6 2DBC:0106 mov bx,300 2DBC:0109 mov dx,80 2DBC:010C int 13 2DBC:010E int 3 2DBC:010F -g -d 4c0,4df 2DBC:04C00100061F7F963F00-0000E1840C000000?… 2DBC:04D04197051FBF6C2085-0C00409506000000A.1.@.. 从上述数据中可以看到,4D0后的2个字节放的是柱面数和扇区数,也就是说在对硬盘 进行写操作过程,当CX内数据大于该数值时,表示信息将不会写在C盘上,而写在其他逻辑 盘,允许写操作执行;当CX内数据小于该数值时,不允许在C盘上进行写操作执行, 另外当给C盘加锁后,C盘的信息不会被病毒感染.我们知道,一般病毒的传染要经过两 步:①改变中断NT13H或功能调用NT21H,使中断病毒程序驻留内存;②病毒程序驻留内 存后就对系统具有了控制权,当系统满足病毒程序所设定的条件时,就对磁盘上某一执行文 件(COM和EXE)进行先读后写操作,即传染病毒.这样不管病毒程序在加锁前,还是加锁后 运行,都要经过加锁后的中断NT13H程序.当对硬盘进行写操作时,先确定写操作的范围是 在C盘内,还是C盘外,如果是C盘内,就不执行写操作.从这个意义上讲,不管内存中有无病 毒,最终传染都要经过中断NT13H,这样就可以防止病毒传染到C盘上, 2给软盘加锁 微机作为强有力的教学及科研工具,受到了许多用户的欢迎.但是有些操作人员把它作 为游戏机使用.为了解决这个问题,有效的办法是将所有有用软件装入C盘,将C盘加锁,再 将软驱加锁,使软盘能写不能读,软盘的信息不能读人内存,也就无法执行.另外,在公共机房 中,有些人经常改动CMOS信息,将开机启动设置为C盘,并设置CMOS密码,且将C盘中的 COMMAND.COM文件删除,使A盘和C盘都无法启机,给机房带来许多不必要的麻烦.为 此必需给软驱加锁,使软盘不能读执行文件,但能读写文本文件,即对键盘输人的信息(原程 序或汉字)能正常读写, 我们知道,调用中断NT13H,AH为02H,DL为01H时,表示读软盘信息.软盘的信息读 入内存后,可以根据BX设定的内存偏移量及AL所设定的扇区个数,来统计该区域ASCI码 和汉字机内码(7FH~FFH)比率,当比率达到一定数值时,表示是键盘输入的信息,即文本文 件;否则表示是其他类型文件,然后加以破坏,使其无法正常运行,起到软盘加锁的目的, 3结束语 本软件设置了几个密级,可以任意对软,硬盘加锁解锁.只要在AUTOEXEC.BAT启动该 软件,且在CONFIG、SYS文件中加人SWITCHES=N/F及BREAK=OFF,使F5,SHIFT键及 BREAK不起作用,一般用户不可能将硬盘或软盘解锁
北 京 科 技 大 学 学 报 年 , , 一 一 , 一 … … … … 一 … … … 从上 述 数 据 中可 以看 到 , 后 的 个 字节 放 的是 柱 面 数和 扇 区数 , 也 就是 说在 对硬 盘 进行 写 操 作过程 , 当 内数据大 于 该数值 时 , 表示 信 息将不 会写在 盘 上 , 而 写在其他 逻辑 盘 , 允许写操作 执行 当 内数据小于 该数值 时 , 不 允许在 盘上 进行写操作执行 另 外 当给 盘加 锁后 , 盘 的信 息不 会被病 毒感 染 我们 知 道 , 一般病毒 的传染要 经过两 步 ① 改 变 中断 州 或功 能调 用 , 使 中断病毒程 序 驻 留 内存 ② 病 毒程 序驻 留 内 存后 就 对系 统具 有 了控 制 权 , 当系 统满 足病 毒程 序 所 设定 的条件 时 , 就 对磁盘 上 某 一 执行 文 件 和 进行 先读后 写操作 , 即传染病 毒 这 样 不 管病 毒程 序在 加锁前 , 还是 加 锁 后 运 行 , 都要 经 过加 锁后 的 中断 程 序 当对硬 盘进行写 操作 时 , 先 确 定 写操作 的范 围是 在 盘 内 , 还是 盘外 , 如 果是 盘 内 , 就 不 执行 写操作 从这个意 义 上讲 , 不 管 内存 中有 无病 毒 , 最 终传染 都要 经 过 中断 , 这样 就 可 以 防止病 毒传染 到 盘 上 给软盘加锁 微 机作 为 强 有 力 的教 学 及 科 研 工具 , 受 到 了许 多 用 户 的欢 迎 但 是 有 些 操 作 人 员 把 它作 为游 戏机使 用 为 了解 决这个 问题 , 有 效 的办 法 是 将 所有 有 用 软件 装人 盘 , 将 盘加 锁 , 再 将软驱加 锁 , 使 软盘能 写 不 能读 , 软盘 的信息不 能读人 内存 , 也 就 无法 执行 另 外 , 在 公 共机房 中 , 有 些 人 经 常改 动 信息 , 将 开机 启 动设置 为 盘 , 并设置 密码 , 且 将 盘 中的 文 件 删 除 , 使 盘 和 盘 都 无 法 启 机 , 给机 房 带来 许 多 不 必 要 的麻 烦 为 此必需 给软驱 加 锁 , 使 软盘 不 能读 执 行 文件 , 但 能读 写 文 本 文 件 , 即 对键盘 输人 的信 息 原 程 序 或汉字 能 正 常读 写 我们 知道 , 调 用 中断 , 为 , 为 时 , 表示 读软盘信 息 软 盘 的信息读 人 内存后 , 可 以根 据 设定 的 内存偏移量 及 所设定 的扇 区 个数 , 来 统计该 区域 码 和 汉 字机 内码 一 比率 当 比率 达 到 一定 数值 时 , 表示 是 键盘输人 的信 息 , 即 文本文 件 否 则表示 是 其他类 型 文件 , 然 后 加 以 破 坏 , 使其无法 正 常运 行 , 起 到 软盘加锁 的 目的 结束语 本软件设置 了几 个 密级 , 可 以 任意 对软 、 硬 盘加 锁解 锁 只要 在 启动该 软件 , 且 在 、 文 件 中加 人 压 及 , 使 , 键 及 不起作用 , 一般 用 户不 可 能将硬 盘或 软盘解锁