Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример 2. ASSUME CS:CODE, DS:CODE





CODE SEGMENT

ASSUME CS: CODE, DS: CODE

ORG 10OH

BEG:

/открыть файл

MOV AX, 3D02H

LEA DX, PATH

INT 21H

JC _END

PUSHAX

/байт в таблице дескрипторов файлов равен

; номеру блока описания файла

MOVSI, AX

MOV DL, ES: [SI+18H] - • •

XORDH, DH; номер блока в DX

/адрес списка списков ~

MOV АН, 52Н:

INT 21H

/указатель на системную таблицу файлов

LES SI, ES: [BX+4]; в ES: SI

/ищем блок описания файла

CMPDX, ES: [SI+4]

JB YES

SUB DX, ES: [SI+4]

LESSI, ES: [SI] /второй блок

; номер кластера

YES:

MOVAX, 59 /размерблока

MULDL

ADDSI, AX

MOVAX, ES: [SI+6+OBH] /номеркластера

MOVCLAST, AX

/записываем номер по смещению OFSET, вначале сдвиг,

POPВХ

MOVAX, 4200H

XORCX, CX

может быть помечен как неперемещаемый (READONLY). Однако атрибут файла может быть случайно изменен, что приведет к тому, что пакет не будет работать. В качестве примера, однако, я приведу программу, определяющую начальный кластер заданного файла. Для определения начального кластера файла используется функция 52Н. Конечно, начальный кластер файла можно найти, поработав с FAT, но это гораздо сложнее. Данная программа определяет номер начального кластера файла с именем NONAME.COM и записывает его в него же по смещению OFSET.

CODE SEGMENT

ASSUME CS: CODE, DS: CODE

ORG 10OH

BEG:

/открытьфайл

MOV AX, 3D02H

LEA DX, PATH

INT 21H

JC _END

PUSHAX

/байт в таблице дескрипторов файлов равен

; номеру блока описания файла

MOVSI, AX

MOV DL, ES: [SI+18H] - • •

XORDH, DH; номер блока в DX

/адрес списка списков ~

MOV АН, 52Н:

INT 21H

/указатель на системную таблицу файлов

LES SI, ES: [BX+4]; в ES: SI

/ищем блок описания файла

CMPDX, ES: [SI+4]

JB YES

SUB DX, ES: [SI+4]

LESSI, ES: [SI] /второй блок

; номер кластера

YES:

MOVAX, 59 /размерблока

MULDL

ADDSI, AX

MOVAX, ES: [SI+6+OBH] /номеркластера

MOVCLAST, AX

/записываем номер по смещению OFSET, вначале сдвиг,

POPВХ

MOVAX, 4200H

XORCX, CX

ERR D:

WR:

MOV DH, 2

MOV CL, 4

MOV CH, 3

MOV DL, 80H

MOV BX, OFFSET BUF

INT 13H

JC ERR_D

MOV DX, OFFSET MES1

JMP SHORT WR

MOV DX, OFFSET MES2

MOV AH, 9

INT 21H '

RET

MES1 DB 'Метка установлена на жесткий диск.', 13, 10, ' $ '

MES2 DB 'При установке метки на жесткий диск произошла'

DB 'ошибка.', 13, 10, '$ '

BUFDB 512 DUP(?)

DB 4234'

CODEENDS

ENDBEGIN

(а) Установка метки на жестком диске.

CODE SEGMENT

ASSUME CS-.CODE

ORG 100H

BEGIN:

/читаем: головка 2, дорожка 3, сектор 4

MOV AH, OAH

MOV AL, 1

MOV DL, 80H

MOV DH, 2

MOV CH, 3

MOV CL, 4

MOV BX, OFFSET BUFFER

INT 13H

JCNO_M

; проверка последних 4 байт

CMP BYTE PTR ES: [BX]+512, '! '

JNZ NO_M

CMP BYTE PTR ES: [BX]+513, '2 '

JNZ NO M

CMP BYTE PTR ES: [BX]+514, '3'

JNZ NO_M

CMP BYTE PTR ES: [BX]+515, '4 '

JNZ NO_M

MOV DX, OFFSET MES2

JMP SHORT WR

NO_M:

MOV DX, OFFSET MES1

WR:

MOV AH, 9

INT 21H

RET

BUFFER DB 512 DUP(?)

METDB 4 DUP(?)

MES1 DB 'Метка на жестком диске не обнаружена.'

DB 13, 10, '$'

MES2 DB 'Метка на жестком диске обнаружена.', 13, 10, '$'

CODEENDS

ENDBEGIN

(б) Проверка метки на жестком диске.

Информация, необходимая при идентификации пакета, может быть помещена в ВООТ-сектор или PARTITIONTABLE. Однако это ненадежный способ, и прибегать к нему следует лишь в простых ситуациях. Дело в том, что содержимое этих секторов может измениться при переустановке системы. Некоторые же антивирусные программы могут принять постороннюю информацию в секторе за наличие вируса. Пакет может быть привязан к BAD-кластерам, которые проставляются во время установки.

Привязка к винчестеру может сочетаться с проверкой некоторых индивидуальных параметров компьютера. К таковым относятся:

- серийный номер микропроцессора, микросхемы ПЗУ и дата изготовления;

- аппаратная конфигурация данного компьютера;

- содержание ПЗУ (контрольная сумма);

- частотные и временные характеристики отдельных узлов.







Дата добавления: 2014-11-10; просмотров: 894. Нарушение авторских прав; Мы поможем в написании вашей работы!




Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

ЛЕЧЕБНО-ПРОФИЛАКТИЧЕСКОЙ ПОМОЩИ НАСЕЛЕНИЮ В УСЛОВИЯХ ОМС 001. Основными путями развития поликлинической помощи взрослому населению в новых экономических условиях являются все...

МЕТОДИКА ИЗУЧЕНИЯ МОРФЕМНОГО СОСТАВА СЛОВА В НАЧАЛЬНЫХ КЛАССАХ В практике речевого общения широко известен следующий факт: как взрослые...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Studopedia.info - Студопедия - 2014-2026 год . (0.008 сек.) русская версия | украинская версия