Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аккорд 1.95 / Ruadm.doc
Скачиваний:
41
Добавлен:
02.05.2014
Размер:
355.84 Кб
Скачать

Приложение 2. Операции, регистрируемые подсистемой регистрации.

Функции DOS.

N Код Операция

1 ACHE Конец контроля целостности

2 ACHS Начало контроля целостности

3 BIST Буферизованный ввод строки

4 CFAT Получить информацию о FAT текущего диска

5 CHEI Завершение проверки целостности (вход)

6 CHEO Завершение проверки целостности (выход)

7 CHKF Контроль целостности файла

8 CHSI Начало проверки целостности (вход)

9 CHSO Начало проверки целостности (выход)

10 CI Ввод с консоли без вывода

11 CINF Ввод с консоли без вывода и фильтра

12 CNIO Консольный I/O

13 CNTR Получить/установить параметры страны

14 CPSP Создать PSP

15 DFRE Получить размер свободного места на диске

16 DGET Получить текущий диск

17 DICH Перейти в каталог

18 DIMK Создать новый каталог

19 DINF Получить информацию о диске

20 DIRM Удалить каталог

21 DRES Сброс диска

22 DSET Установить текущий диск

23 DSPO Вывод на дисплей

24 EMEM Нарушение целостности ACRUN в памяти

25 EUED ACED: Конец редактирования

26 EXCD Получить код завершения программы

27 EXEC Запустить программу

28 f1ST Find1st через FCB

29 F1ST Find1st

30 FACC Запрет/разрешение файлового доступа

31 FATR Установить/получить атрибуты файла

32 fCLO Закрыть файл через FCB

33 FCLO Закрыть файл

34 fCR Создать файл через FCB

35 FCR Создать файл

36 fDEL Удалить файл через FCB

37 FDEL Удалить файл

38 fGSZ Получить размер файла через FCB

39 FNEW Создать новый файл

40 fNXT FindNext через FCB

41 FNXT FindNext

42 FO Открыть файл

43 FOC+ Открыть/создать файл 4.0+

44 fOP Открыть файл через FCB

45 fRBR Читать блок файла с произвольным доступом через FCB

46 FRD Чтение из файла

47 fREN Переименовать файл через FCB

48 FREN Переименование/перемещение файла

49 fRRD Чтение файла с произвольным доступом через FCB

50 fRSQ Чтение последовательного файла через FCB

51 fSBA Установить адрес блока файла с произвольным доступом через CB

52 FSEK Позиционирование в файле

53 FTIM Запрос/установка даты/времени файла

54 FTMP Создать уникальный временный файл

55 fWBR Писать блок файла с произвольным доступом через FCB

56 FWR Запись в файл

57 fWRD Запись файла с произвольным доступом через FCB

58 fWSQ Запись последовательного файла через FCB

59 GDIR Получить текущий каталог

60 GDTA Получить адрес DTA

61 GERR Получить информацию об ошибке

62 GETD Получить текущую дату

63 GETT Получить текущее время

64 GFAT Получить информацию о FAT

65 GPSP Получить сегмент PSP

66 GVER Получить версию ДОС

67 GVRF Получить состояние флага ДОС Verify

68 HDUP Дублировать Handle

69 HRED Перенаправить Handle

70 IAUX Ввод с AUX

71 ICHK Проверка состояния ввода

72 ICLR Ввод с очисткой

73 iDP ИА Пароль получен

74 iDTM ИА Дождались TM

75 iLOG ИА Вход в сиcтему

76 INL Начало работы пользователя

77 IOCT Функции IOCTL

78 iST ИА Начало

79 iWP ИА Ожидание пароля

80 iWTM ИА Ожидание TM

81 KBDI Ввод с клавиатуры

82 LOUT Завершение работы пользователя

83 MEMA Запросить блок памяти

84 MEMC Изменить размер блока памяти

85 MEMF Освободить блок памяти

86 NETM Сеть: разное

87 NRDR Перенаправление сетевого устройства

88 OAUX Вывод на AUX

89 OPRI Печать

90 PARS Разбор имени файла

91 PRI Печать

92 PRST Печать строки

93 SBRK Запросить/установить состояние флага Break

94 SETD Установить текущую дату

95 SETT Установить текущее время

96 SFDA Получить адрес флага реентерабельности ДОС

97 STDA Установить DTA

98 SUED ACED: Начало редактирования

99 SVRF Установка состояния флага Verify

100 SWTC Set/Query Switchar (undocumented)

101 TERM Завершение программы

102 TERM Завершение программы

103 TSR Завершить и остаться резидентом

104 UWRK Продолжение работы

105 VGET Получить адрес вектора прерывания

106 VSET Установить вектор прерывания

Функции Windows.

Реализация разграничения доступа в модуле Acrun.vxd

Модуль состоит из пяти субмодулей, каждый из которых отвечает за перехват определенных функций Windows 9X.

1. Субмодуль перехвата функций IFSMGR (ACRUN_IFS).

Операции файловой системы делятся на операции с локальными ресурсами и сетевыми. В Windows 9X за работу с файловой системой отвечает IFSMgr (Installable File System Manager), который принимает и выполняет запросы от всех объектов системы. IFSMgr нужен для унификации ресурсов, т.е. запрос на доступ к локальному или сетевому ресурсу поступает сначала к IFSMgr. IFSMgr анализирует запрос и на основании анализа вызывает соответствующий драйвер устройства (FSD – File System Driver). Таким образом, перехватив функции IFSMgr, можно контролировать все файловые запросы в системе.

Рассмотрим, от кого приходят запросы к IFSMgr.

1.1. VXD Ring0 – Запросы, приходящие от Windows Vxd на нулевом кольце привилегий.

1.2. WIN 16 PM - Запросы, приходящие от 16-битных приложений Windows.

1.3. INT21 PM/V86 - Запросы, приходящие от приложений, работающих в защищенном или виртуальном режимах.

1.4. WIN32 - Запросы, приходящие от 32-битных приложений Windows.

1.5. FSD - Запросы, приходящие от FSD, работающих в Windows (например, Network FSD).

При наличии модуля разграничения доступа Acrun.vxd, запрос сначала приходит к субмодулю перехвата функций IFSMGR, затем происходит проверка запроса на соответствие ПРД (правилам разграничения доступа) и в случае успеха, запрос передается IFSMgr. Запросы, приходящие к ACRUN_IFS, показаны в Таблице 1.

Досадным исключением является Novell Client 32, на момент написания которого, Microsoft ещё не опубликовала спецификацию FSD. Реализация перехвата функций Novell Client 32 будет рассмотрена далее.

2. Субмодуль перехвата функций INT 21h (ACRUN_INT21).

Для обеспечения перехвата файловых запросов необходимо также обрабатывать функции 21-го прерывания для PM и V86 режимов. Хотя теоретически все эти запросы попадают к IFSMGR, но на практике существуют программы, которые перехватывают функции INT 21h и далее сами выполняют запрос, т.е. запрос не проходит через IFSMGR. Одной из таких программ является Novell Client 32. В INT 21h также обрабатываются запросы на запуск задач и изменение системного времени/даты (нужно для обеспечения разграничения доступа к ПЭВМ по времени).

Рассмотрим, от кого приходят запросы к INT 21h.

2.1. INT 21h PM (включая NWClient32) - запросы, приходящие от приложений, работающих в защищенном режиме Windows.

2.2. INT 21h V86 (включая NWClient32)- запросы, приходящие от приложений, работающих в виртуальном режиме Windows.

Запросы, приходящие к ACRUN_INT21, показаны в Таблице 2.

3. Субмодуль перехвата функций работы с реестром Windows (ACRUN_REG).

В реестре Windows хранится много информации, несанкционированный доступ к которой, может повлечь за собой нарушение целостности программной среды или вообще выход системы из строя. Также возможна подмена системных модулей на сторонние, что может позволить получить доступ к запрещенным ресурсам.

Запросы, приходящие к ACRUN_REG, показаны в Таблице 3.

4. Субмодуль перехвата функций Kernel16 (ACRUN_KERNEL16).

В этот модуль попадают запросы от 16-и битных приложений Windows. Запросы, приходящие к ACRUN_KERNEL16, показаны в Таблице 4.

5. Субмодуль перехвата функций Kernel32 (ACRUN_KERNEL32).

В этот модуль попадают запросы от 32-х битных приложений Windows. Запросы, приходящие к ACRUN_KERNEL32, показаны в Таблице 5.

Таблица 1.

Запросы, приходящие к ACRUN_IFS.

Запрос к IFSMgr

Расшифровка запроса

Обработка

IFSFN_READ

Чтение файла

+

IFSFN_WRITE

Запись в файл

+

IFSFN_FINDNEXT

Поиск следующего ресурса (длинные имена)

+

IFSFN_FCNNEXT

Изменение нотификации FINDNEXT

+

IFSFN_FILETIMES

Установка/получение времени модификации файла

+

IFSFN_FINDCLOSE

Завершить поиск

+

IFSFN_FCNCLOSE

Завершить нотификацию

+

IFSFN_CONNECT

Подключить ресурс

+

IFSFN_DELETE

Удалить файл

+

IFSFN_DIR

Манипуляция с директориями

+

IFSFN_FILEATTRIB

Манипуляция с атрибутами файла под ДОС

+

IFSFN_GETDISKINFO

Получить объем свободного пространства для диска

+

IFSFN_OPEN

Открыть файл

+

IFSFN_RENAME

Переименовать путь

+

IFSFN_SEARCH

Поиск имен (короткие имена)

+

IFSFN_QUERY

Получить информацию о ресурсе (только сеть)

+

IFSFN_DISCONNECT

Отключить ресурс (только сеть)

+

IFSFN_IOCTL16DRIVE

Дисковые 16-битные IOCTL операции

+

IFSFN_GETDISKPARMS

Получить параметры диска (DPB)

+

IFSFN_FINDOPEN

Начать поиск имен (длинные имена)

+

IFSFN_DASDIO

Прямой доступ к диску

+

Таблица 2

Запросы к ACRUN_INT21.

Номер функции

Название функции

Расшифровка запроса

Обработка

00

TERM00

Завершить задачу

+

0D

RESETDISK

Переустановить диск

+

0E

SETDRIVE

Установить диск

+

0F

OPENFCB

Открыть файл через FCB

+

10

CLOSEFCB

Закрыть файл через FCB

+

11

F1STFCB

Первый поиск через FCB

+

12

FNXTFCB

Следующий поиск через FCB

+

13

DELFCB

Удалить файл через FCB

+

14

READSEQFCB

Читать файл через FCB

+

15

WRITESEQFCB

Записать файл через FCB

+

16

CREATEFCB

Создать файл через FCB

+

17

RENFCB

Переименовать файл через FCB

+

19

GETDRIVE

Получить диск

+

1A

SETDTA

Установить DTA

+

1B

GETCURFAT

Получить текущий FAT

+

1C

GETFAT

Получить FAT

+

27

READBLKFCB

Считать блок через FCB

+

28

WRITEBLKFCB

Записать блок через FCB

+

2B

SETDATE

Установить дату

+

2D

SETTIME

Установить время

+

36

GETDISKFREE

Получить свободное место на диске

+

39

MKDIR

Создать каталог

+

3A

RMDIR

Переименовать каталог

+

3B

CHDIR

Изменить каталог

+

3C

CREATE

Создать файл

+

3D

OPENFILE

Открыть файл

+

3F

READ

Читать из файла

+

40

WRITE

Записать в файл

+

41

DELETE

Удалить файл

+

43

CHMOD

Получить/установить атрибуты файла

+

47

GETDIR

Получить каталог

+

4B

EXEC

Запустить программу

+

4C

EXIT

Выход из программы

+

4E

FINDFIRST

Первый поиск

+

4F

FINDNEXT

Следующий поиск

+

56

RENAME

Переименовать файл

+

5A

TEMPFILE

Создать временный файл

+

5B

NEWFILE

Создать новый файл

+

62

GETPSP

Получить PSP

+

6C

XOPEN

Расширенное создание/открытие

+

71

LFN

Операции с длинными именами

+

Таблица 3

Запросы к ACRUN_REG.

Название функции

Расшифровка названия

Обработка

REGOPENKEY

Открыть ключ

+

REGCLOSEKEY

Закрыть ключ

+

REGCREATEKEY

Создать ключ

+

REGDELETEKEY

Удалить ключ

+

REGSETVALUE

Изменить значение ключа

+

REGENUMKEY

Поиск ключей

+

Таблица 4

Запросы к ACRUN_KERNEL16.

Название функции

Откуда пришла

Обработка

WINEXEC16

Krnl386.exe

+

LOADLIBRARY16

Krnl386.exe

+

LOADMODULE16

Krnl386.exe

+

Таблица 5

Запросы к ACRUN_KERNEL32.

Название функции

Откуда пришла

Обработка

WINEXEC32

Kernel32

+

LOADLIBRARY32

Kernel32

+

LOADMODULE32

Kernel32

+

CREATEPROCESS32

Kernel32

+

42

Соседние файлы в папке Аккорд 1.95