mov bp,sp
push ds
lds si,[bp+x+8]
mov ax,[si] ; flags into al
lds dx,[bp+x] ; pointer to the asciiz string
lds si,[bp+x+4]
mov bp,[si] ; time out into bp
mov ah,0EBH
int 21h
mov ah,00h
pop ds
pop bp
ret 12
asclog endp
;--------------------------------
; ASCIIZ file unlock (236) (EC)
;
; var
; RetCode : Integer;
; Asciiz : String[n];
;
; RetCode := asculkf(Asciiz);
;
begin asculkf
mov ah,0ECH
call arg1a
ret 4
asculkf endp
;--------------------------------
; ASCIIZ Clear file func(237) (EDH)
;
; var
; RetCode : Integer;
; Asciiz : String[n];
;
; RetCode := ascclrf(Asciiz);
;
begin ascclrf
mov ah,0EDH
call arg1a
ret 4
ascclrf endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Get Physical Station Number EEH
;
; var
; StationNo : Integer;
;
; StationNo := Get_PSN;
;
begin Get_PSN
mov ah,0EEh
int 21h
mov ah,0
ret
Get_PSN endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Get Shell Table Addresses (239) EFH
;
; var
; Mode,Segment,Offset : Integer;
;
; Get_STA(Mode,Segment,Offset);
;
begin Get_STA
push bp
mov bp,sp
push es
push ds
mov si,[bp+x+8] ; get the mode
mov ax,[si]
mov ah,0EFh ; set the function
int 21h
lds di,[bp+x+4] ; store the segment location
mov [di],es
lds di,[bp+x] ; store the offset location
mov [di],si
pop ds
pop es
pop bp
ret 12
Get_STA endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Set Preferred File Server (240) F0H
;
; var
; RetServer, Mode, NewServ : Integer;
;
; RetServer := SetServ(Mode,NewServ);
;
begin SetServ
push bp
mov bp,sp
push ds
mov si,[bp+x+4] ; get the mode
mov ax,[si]
mov di,[bp+x] ; set the preferred server number
mov dx,[di]
mov ah,0F0h ; set the function
int 21h
mov ah,0
pop ds
pop bp
ret 6
SetServ endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Attach/Detach To File Server (241) F1H
;
; var
; RetCode, Mode, NewServ : Integer;
;
; RetCode := ModServ(Mode,NewServ);
;
begin ModServ
push bp
mov bp,sp
push ds
lds si,[bp+x+4] ; get the mode
mov ax,[si]
lds di,[bp+x] ; set the preferred server number
mov dx,[di]
mov ah,0F1h ; set the function
int 21h
mov ah,0
pop ds
pop bp
ret 6
ModServ endp
;-------------------------------
; Place a single integer argument into dx
; with a return code
arg1 proc near
push bp
mov bp,sp
push ds
lds si,[bp+x+2]
mov dx,[si] ; dx gets the argument
int 21h
mov ah,0 ; clear ah for al return code
pop ds
pop bp
ret
arg1 endp
;--------------------------------
; Place a single integer argument into bp
; for use with time outs - with a return code
arg1t proc near
push bp
mov bp,sp
push ds
lds si,[bp+x+2]
mov bp,[si] ; dx gets the argument
int 21h
mov ah,0 ; clear ah for al return code
pop ds
pop bp
ret
arg1t endp
;--------------------------------
; Process an fcb address in a
; function call with a return code
arg1f proc near
push bp
mov bp,sp
push ds
lds dx,[bp+x+2] ; dx gets the argument
int 21h
mov ah,0 ; clear ah for al return code
pop ds
pop bp
ret
arg1f endp
;--------------------------------
; Process a single string argument in a
; function call with a return code
arg1a proc near
push bp
mov bp,sp
push ds
lds dx,[bp+x+2] ; ptr to parameter string
; inc dx ; add 1 to get the address of the string
int 21h
mov ah,0 ; clear ah for al return code
pop ds
pop bp
ret
arg1a endp
;----------------------------
; Perform a single integer argument
; but without a return code
arg1wor proc near
push bp
mov bp,sp
push ds
lds si,[bp+x+2]
mov dx,[si] ; dx gets the arg (or ptr)
int 21h
pop ds
pop bp
ret
arg1wor endp
;----------------------------
; Perform a single string argument
; but without a return code
arg1awor proc near
push bp
mov bp,sp
push ds
lds dx,[bp+x+2]
inc dx ; add 1 to get the start of the string
int 21h
pop ds
pop bp
ret
arg1awor endp
;----------------------------
; Handle a request$ and reply$ function
; with error code
req_rep proc near
push bp
mov bp,sp
push ds
push es
lds si,[bp+x+6] ; ptr to req. string
inc si ; add 1 to get the address of the string
les di,[bp+x+2] ; ptr to var desc block for reply buf
inc di ; add 1 to get the address of the string
pushf ; save the direction flag
int 21h
popf
mov ah,0
pop es
pop ds
pop bp
ret
req_rep endp
cseg ends
end
6. В И Р У С Ы И N E T W A R E
При работе сети NetWare фирмы Novell для совместного использо-
вания сетевого дискового пространства используется "прозрачный ре-
жим". Пользователь за комьютером видит сетевые диски в виде допол-
нительных винчестеров (F: G: ...). Особенностью этих винчестеров
является то, что для них поддерживаются все операции над файлами и
не поддерживаются операции пямого доступа к секторам диска. Драй-
вера устойств для этих дополнительных букв не существуют и все
операции над ними иммитируются путем перехвата различных прерыва-
ний.
Проблема поведения вирусов на сетевых дисков сразу же распада-
ется на две в зависимости от ответа на вопрос: выполняется ли ви-
рус на машине управляющей сетью (и содержащей сетевые диски) или
нет.
Если вирус выполняется на управляющей машине, то он имеет дост-
уп в MBR, BOOT и к секторам диска. Пока нет подтвержденной инфор-
мации о существовании вирусов знакомых со структурой диска
NetWare. Попытка "не грамотного" вируса записаться на диск NetWare
и в MBR скорее всего окончится плачевно. И не сколько для вируса,
сколько для NetWare. Поэтому для защиты от BOOT-вирусов рекоменду-
ется сохранять 0-ю дорожку. На этой дорожке содержется не только
MBR, но и начало раздела NetWare. Восстановление 0-й дорожки из
копии не всегда, наверное, возможно, но в ряде случаев это помога-
ет. В случае неуспеха еще остается тонкий анализ содержимого ста-
рой и поврежденной 0-й дорожки. Если такой анализ удастся провес-
ти, то возможно ручное восстановление потеянной информации.
Если на управляющей машине вместе с сетью работает DOS, то воз-
можно нарушение работы NetWare в памяти и, как следствие, разнооб-
разные курьезы. Поэтому к чистоте от вирусов управляющей машины
локальной сети следует относится особенно серьезно.
Если вирус выполняется на другой машине, то он не имеет физи-
ческого доступа к диску. Разговор в этом случае может идти только
о файловых вирусах. При этом нужно учесть, что пользователь сети
обычно не имеет доступа на запись ко всем файлам (особенно систем-
ным). Возможность превысить права доступа практически не возможна.
Покрайней мере пока в системе защиты нет явных проколов админист-
ратора сети и не известны "люки" в защите NetWare.
Поведение вирусов в NetWare распадается на три группы: - те кто
успешно функционирует в сети; - те кто заражает файлы на локальных
дисках, но отказывается заpажать файлы в сети (среди них есть та-
кие которые самоочищаются при копировании в сеть зараженного файла
при активном вирусе); - и те кто теряет работоспособность при ак-
тивной сети.
Распределение вирусов по этим группам можно обьяснить следующи-
ми обстаятельствами. В первую группу попадают наиболее примитивные
файловые вирусы котоые законно используют функции DOS для своих
целей. Такие фирусы довольно легко отлавливаются различными сторо-
жевыми средствами. Во вторую группу попадают вирусы которые пыта-
ются бороться с антивирусными средствами. Сеть при этом они также
обходят и поэтому работа с сетью для них не видна. В эту группу
попадает наверное большинство "СТЕЛС"-вирусов. Третью группу сост-
авляют неудачно написанные вирусы из второй группы. Они перестают
работать из-за конфликтов с оболочкой NetWare.
Список литературы.
1. Aнгло-русский словарь терминов NetWare. (13 cтр.)
Чусов В.Е.
2. Англо-русский глоссарий терминов NetWare. (66 стр.)
Чусов В.Е.
3. Введение в локальные вычислительные сети. (45 стр.)
Груздев А.Ю.
4. Texничecкиe cpeдcтвa лoкaльныx ceтeй. (27 стр.)
Гaвpилoв A.B.
5. Введение в сетевые операционные системы NetWare
фирмы Novell. (55 стр.) Груздев А.Ю.
6. Концепции построения и основные особенности системы
NetWare 386. (49 стр.) Груздев А.Ю.
7. Установка NetWare 386. (86 стр.) Гордеев В.В.
8. Установка рабочей станции DOS ODI в сети NetWare 386.
(26 стр.) Гордеев В.В.
9. Cтpyктypa кaтaлoгa, cтpyктypa пoльзoвaтeлeй и cиcтeмa
зaщиты ceти NetWare (62 cтp.) Чycoв B.E.
10. Интерфейс пользователя с системой.
Утилиты меню и утилиты командной строки NetWare 386.
(152 стр.) Шабалин А.Р.
11. Печать в сетевой операционной системе NetWare 386.
(83 стр.) Милентьев А.Д
12. Оперативное управление работой сетевой ОС NetWare 386.
(51 стр.) Поваров А.В.
13. Средства построения гетерогенных комплексов
фирмы Novell. (42 стр.) Коровкин С.Д.
14. Коммуникационные средства фирмы Novell.
(47 стр.) Коровкин С.Д.
15. Проектирование, создание и использование баз данных,
реализованных с применением продуктов фирмы Novell.
(79 стр.) Зимин В.В.
16. Практическое сравнение различных средств управления
данными в среде сетевой ОС NetWare фирмы Novell.
(41 стр.) Зимин В.В.
17. Использование FoxBase+ и Clipper в локальной сети.
(17 стр.) Нестеренко Ю.П.
18. Барри Нанс, Программирование в локальных сетях