正在加载图片...
·206· 北京科技大学学报 1997年第2期 2本软件的设计思想 2.1中断型病毒的防范 大多数计算机病毒都是通过改变中断向量使其指向病毒程序,当执行文件执行中断程序 时,首先执行病毒代码,再将病毒代码传染到其他正常文件中.执行完病毒程序后,再执行正 常的中断程序,这就是病毒传染的基本过程, 中断型病毒程序改变中断有2种途径:一是改变中断地址,使中断指向病毒程序,执行完 病毒程序后,病毒程序又将指针指向正常的中断程序;另一是不改变中断向量表,而是改变中 断程序内容,将中断程序的第1条改为JMP,使之跳转到病毒程序,执行完病毒程序后,再跳 回到正常的中断程序中,从中断向量表中,看不出中断程序已被病毒感染,所以往往被人们所 忽略. 我们设想在内存中开辟一区域,将内存低端的中断向量表保存起来,不断通过中断NT8 将中断向量表与保存的区域进行比较,一旦发现不一致,就可能被病毒感染;然后将保存起来 的中断向量表恢复到内存低端的中断向量表中.这样即使内存中存在着病毒代码,由于它得 不到执行权,这些病毒代码就变成了完全无用的废码,它既不能传染,也不能破坏.对于那些 不改变中断向量表,而改变中断程序的病毒,可以把某些中断程序的前几然而10个字节累加 和保存起来,然后利用中断T8,不断对这些中断程序进行检验,一且发现不一致,提示病毒 警告并破坏这些中断程序,使这些病毒程序无法正常运行下去, 不同的计算机病毒表现形式是不一样的,有些病毒改变中断TI7H使打印无法正常执 行,有些病毒改变T10H,使显示信息不正确.虽然病毒程序改变了上述中断,使某些执行文 件无法正常运行,但是病毒程序却不能通过上述中断传染给其他执行文件,因为这些中断既 不与执行文件直接打交道,也不接触磁盘物理地址.我们的最终目标是防止病毒的传播.从这 个意义上来说,保护上述中断意义并不大,尽管也可以保护上述中断,使我们的防毒软件更加 完美,功能调用INT21H是DOS的核心,对文件的各种操作都是通过它完成的,病毒要对文件 进行读写操作,病毒程序也通常要改变功能调用INT2IH;另外,对文件的各种读写操作,最终 是通过中断INTI3H来完成的,INTI3H是对磁盘物理地址进行各种操作,因此只要保护功能 调用INT21H和中断IT13H就能防止中断向量型病毒的侵人.在实际应用中,一般软件设有 必要去改变功能调用NT21H和中断INT13H(即使汉字系统也是如此).一且上述中断被改 变,一定是病毒造成的,如果某些用户非要改变上述中断,本程序设置了中断保护和非中断保 护2种方式,用户可以随意选择. 2.2瞬间读写型病毒的防范 瞬间读写型病毒与中断向量病毒不同,它并不改变中断向量表及中断程序,它只是瞬间 对分区表、BOOT区或某一文件进行先读后写操作,即在很短一时间内将磁盘(软盘或硬盘) 上的某一物理地址内的信息读入内存,加人病毒代码,然后再写人回到原物理地址内.对于向 分区表、BOO丁区里写人信息的病毒很容易识别,也很容易防范,因为分区表、BOOT区都是 在磁盘的特定位置上,而那些对某一执行文件进行瞬间读写的计算机病毒,防范起来就不那 么容易.防范的办法是可以在内存中开辟一缓冲区,每当做读磁盘操作前,首先将CX和DX北 京 科 技 大 学 学 报 年 第 期 本软件 的设计思想 中断型病毒 的防范 大 多 数计算 机病 毒都 是 通 过 改 变 中断 向量 使其指 向病 毒 程序 , 当执行 文件执行 中断程序 时 , 首 先 执行 病 毒 代 码 , 再 将病 毒 代码 传染 到 其 他 正 常 文 件 中 执行 完病 毒程 序后 , 再 执行正 常 的 中断程序 , 这 就 是 病 毒传 染 的基 本过 程 中断型 病 毒 程 序 改变 中断有 种途 径 一 是 改 变 中断地址 , 使 中断指 向病 毒 程序 , 执行完 病 毒 程 序 后 , 病 毒 程 序 又将 指 针指 向正 常 的 中断 程 序 另 一 是 不 改 变 中断 向量 表 , 而 是 改变 中 断程 序 内容 , 将 中断程 序 的第 条 改 为 , 使 之 跳 转 到 病 毒 程 序 , 执 行 完病 毒程 序后 , 再 跳 回到 正 常 的 中断程 序 中 , 从 中断 向量 表 中 , 看 不 出 中断程序 已 被病 毒感染 , 所 以 往往被 人们 所 忽 略 我 们设 想 在 内存 中开辟 一 区 域 , 将 内存低端 的 中断 向量 表保存起来 , 不 断通过 中断 】 将 中断 向量 表 与保存 的 区 域 进 行 比较 , 一 旦 发现不 一致 , 就 可 能被 病毒感染 然后将保存起来 的 中断 向量 表恢 复 到 内存 低端 的 中断 向量 表 中 这 样 即使 内存 中存在 着 病毒代码 , 由于 它得 不 到 执 行 权 , 这 些 病 毒 代 码 就 变 成 了完 全 无 用 的 废 码 , 它 既 不 能 传染 , 也 不 能破 坏 对于 那些 不 改变 中断 向量 表 , 而 改 变 中断程 序 的病 毒 , 可 以 把 某些 中断程序 的前几 然而 个字 节累加 和 保 存起 来 , 然 后 利 用 中断 , 不 断 对这些 中断 程 序进 行 检验 , 一旦 发现不 一致 , 提示病毒 警 告 并 破 坏 这 些 中断 程序 , 使 这 些病 毒 程 序 无法 正 常运 行 下 去 不 同 的计算 机病 毒 表 现 形 式 是 不 一 样 的 , 有 些病 毒 改 变 中断 使打 印无法 正 常执 行 , 有 些 病毒 改 变 , 使 显示 信息不 正 确 虽 然病 毒程 序改 变 了上 述 中断 , 使某些 执行文 件 无 法 正 常 运 行 , 但 是 病 毒 程 序 却不 能 通 过 上 述 中断传染 给 其他 执行 文件 , 因为这些 中断既 不 与执 行 文件 直 接 打交 道 , 也 不 接 触磁 盘 物理 地 址 我 们 的最 终 目标是 防止病毒的传播 从这 个 意 义 上 来说 , 保 护 上 述 中断意 义 并 不 大 , 尽 管也 可 以 保护上 述 中断 , 使我们 的防毒软件更加 完 美 功 能 调 用 是 〕 的核心 , 对文 件 的各 种操 作都是通 过 它 完成 的 , 病毒要 对文件 进行 读 写操 作 , 病 毒 程序 也通 常要 改 变功 能 调 用 另外 , 对文件 的各 种读写操作 , 最终 是 通 过 中断 来 完 成 的 , 是 对磁 盘 物理 地 址 进 行 各种操 作 , 因此 只要保 护功能 调 用 和 中断 就 能 防止 中断 向量 型 病 毒 的侵人 在 实 际应 用 中 , 一 般软件没 有 必 要 去 改 变 功 能 调 用 和 中断 〕, 即 使汉 字 系 统 也是 如此 一旦 上 述 中断被 改 变 , 一 定 是 病 毒造 成 的 , 如果 某 些 用 户 非要 改 变 上 述 中断 , 本程 序设 置 了 中断保 护 和 非 中断保 护 种 方 式 , 用 户 可 以 随意 选 择 瞬 间读 写型 病毒 的防范 瞬 间读 写 型 病 毒 与中 断 向量 病 毒 不 同 , 它 并 不 改 变 中断 向量 表及 中断程 序 , 它 只 是 瞬 间 对分 区 表 、 区 或 某 一 文 件 进 行 先读 后 写 操 作 , 即 在 很 短 一 时 间 内将 磁 盘 软 盘 或 硬 盘 上 的某 一 物理 地 址 内的信 息读 人 内存 , 加 人病 毒代码 , 然 后 再 写 入 回 到 原物理 地 址 内 对于 向 分 区 表 、 区 里 写 人 信 息 的病 毒 很 容 易 识别 , 也 很 容 易 防 范 , 因 为分 区 表 、 区 都是 在 磁 盘 的 特 定 位 置 上 而 那 些 对某 一 执 行 文件 进 行 瞬 间读 写 的计算 机病 毒 , 防范起 来 就不那 么容 易 防 范 的办 法 是 可 以 在 内存 中开辟 一缓 冲 区 , 每 当做读 磁 盘操 作 前 , 首先 将 和
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有