![]() |
|
|
Реферат: Интранет сетиlds di,[bp+x+8] ; return high handle mov [di],dx mov ah,00h pop ds pop bp ret 22 OpenSem endp ;-------------------------------- ; Semaphores func(197) (C5H) subfunction 01h ; ; var ; RetCode,HiHandle,LoHandle,SemaValu,OpenCnt : Integer; ; ; RetCode := ExamSem(HiHandle,LoHandle,SemaValu,OpenCnt); ; begin ExamSem push bp mov bp,sp push ds lds si,[bp+x+12] ; hi handle mov dx,[si] lds si,[bp+x+8] ; lo handle mov cx,[si] mov ax,0C501h ; set function int 21h lds di,[bp+x+4] ; return semaphore value mov [di],cx mov dh,00h lds di,[bp+x] mov [di],dx ; return open count mov ah,00h pop ds pop bp ret 16 ExamSem endp ;-------------------------------- ; Semaphores func(197) (C5H) subfunction 02h ; ; var ; RetCode,HiHandle,LoHandle,TimeOut : Integer; ; ; RetCode := WaitSem(HiHandle,LoHandle,TimeOut); ; begin WaitSem push bp mov bp,sp push ds lds si,[bp+x+8] ; hi handle mov dx,[si] lds si,[bp+x+4] ; lo handle mov cx,[si] lds si,[bp+x] mov bp,[si] ; set time out mov ax,0C502h ; set function int 21h mov ah,00h pop ds pop bp ret 12 WaitSem endp ;-------------------------------- ; Semaphores func(197) (C5H) subfunction 03h ; ; var ; RetCode,HiHandle,LoHandle : Integer; ; ; RetCode := SigSem(HiHandle,LoHandle); ; begin SigSem push bp mov bp,sp push ds lds si,[bp+x+4] ; hi handle mov dx,[si] lds si,[bp+x] ; lo handle mov cx,[si] mov ax,0C503h ; set function int 21h mov ah,00h pop ds pop bp ret 8 SigSem endp ;-------------------------------- ; Semaphores func(197) (C5H) subfunction 04h ; ; var ; RetCode,HiHandle,LoHandle : Integer; ; ; RetCode := ClosSem(HiHandle,LoHandle); ; begin ClosSem push bp mov bp,sp push ds lds si,[bp+x+4] ; hi handle mov dx,[si] lds si,[bp+x] ; lo handle mov cx,[si] mov ax,0C504h ; set function int 21h mov ah,00h pop ds pop bp ret 8 ClosSem endp ;-------------------------------- ; Get or Set Lock Mode func(198) (C6H) ; ; var ; Mode,Func : Integer; ; ; Mode := setlck(Func); ; begin setlck push bp mov bp,sp push ds lds si,[bp+x] mov ax,[si] ; set the subfunction mov ah,0C6h ; set the function int 21h mov ah,0 pop ds pop bp ret 4 setlck endp ;-------------------------------- ; Transactional Backout func(199) (C7H) ; ; var ; RetCode, Func : Integer; ; ; RetCode := BakOuts(Func); ; begin BakOuts push bp mov bp,sp push ds lds si,[bp+x] ; set the subfunction mov ax,[si] mov ah,0C7h ; set the function int 21h mov ah,0 pop ds pop bp ret 4 BakOuts endp ;-------------------------------- ; Begin transaction func(200) (C8H) ; ; var ; RetCode,Mode : Integer; ; ; RetCode := btrans(Mode); ; begin btrans mov ah,0C8h call arg1t ret 4 btrans endp ;-------------------------------- ; End Transaction func(201) (C9H) ; ; var ; RetCode : Integer; ; ; RetCode := etrans; ; begin etrans mov ah,0C9H int 021h mov ah,00h ret etrans endp ;-------------------------------- ; Exc.log File (202) (CA) ; ; var ; RetCode, FcbAddr : Integer; ; ; RetCode := exclog(FcbAddr); ; begin exclog mov ah,0CAH call arg1f ret 4 exclog endp ;-------------------------------- ; Exc Lock Set func(203) (CBH) ; ; var ; RetCode, Mode : Integer; ; ; RetCode := exclcks(Mode); ; begin exclcks mov ah,0CBH call arg1 ret 4 exclcks endp ;-------------------------------- ; Exclusive file unlock (204) (CC) ; ; var ; RetCode, FcbAddr : Integer; ; ; RetCode := exculkf(FcbAddr); ; begin exculkf mov ah,0CCH call arg1f ret 4 exculkf endp ;-------------------------------- ; Exclusive Unlock Set (205)(CD) ; ; var ; RetCode : Integer; ; ; RetCode := exculks; ; begin exculks mov ah,0CDH int 21h mov ah,00h ret exculks endp ;-------------------------------- ; Exc Clear file func(206) (CEH) ; ; var ; RetCode, FcbAddr : Integer; ; ; RetCode := excclrf(FcbAddr); ; begin excclrf mov ah,0CEH call arg1f ret 4 excclrf endp ;-------------------------------- ; Exc Clear Set func(207) (CFH) ; ; var ; RetCode : Integer; ; ; RetCode := excclrs; ; begin excclrs mov ah,0CFH int 21h mov ah,00h ret excclrs endp ;-------------------------------- ; Log Record(s) func(208) (D0H) ; ; var ; RetCode, Flag, Timeout : Integer ; ; RecStr : String[n]; ; ; RetCode := reclog(RecStr,Flag,Timeout); ; begin reclog push bp mov bp,sp push ds lds si,[bp+x+4] ; load flags mov ax,[si] lds si,[bp+x] ; get timeout mov si,[si] lds dx,[bp+x+8] ; get ptr to string ; inc dx mov bp,si ; move timeout to BP mov ah,0D0h int 21h mov ah,0 pop ds pop bp ret 14 reclog endp ;-------------------------------- ; Record Lock func(209) (D1H) ; ; var ; RetCode, Mode : Integer; ; ; RetCode := reclck(Mode); ; begin reclck push bp mov bp,sp push ds lds si,[bp+x] mov bp,[si] mov ah,0D1h int 21h mov ah,0 pop ds pop bp ret 6 reclck endp ;-------------------------------- ; Record Unlock func(210) (D2H) ; ; var ; RetCode : Integer; ; Semaphore : String[n]; ; ; RetCode := reculk(Semaphore); ; begin reculk mov ah,0D2H call arg1a ret 4 reculk endp ;-------------------------------- ; Unlock Record Set func(211) (D3H) ; ; var ; RetCode : Integer; ; ; RetCode := reculks; ; begin reculks mov ah,0D3H int 21h mov ah,00h ret reculks endp ;-------------------------------- ; Record Clear func(212) (D4H) ; ; var ; RetCode : Integer; ; Semaphore : String[n]; ; ; RetCode := recclr(Semaphore); ; begin recclr mov ah,0D4H call arg1a ret 4 recclr endp ;-------------------------------- ; Clear record set func(213) (D5H) ; ; var ; RetCode : Integer; ; ; RetCode := recclrs; ; begin recclrs mov ah,0D5H int 21h mov ah,00h ret 4 recclrs endp ;-------------------------------- ; End of Job func(214) (D6H) ; ; var ; RetCode : Integer; ; ; RetCode := eoj; ; begin eoj mov ah,0D6H int 21h mov ah,00h ret 4 eoj endp ;-------------------------------- ; Logout System func(215) (D7H) ; ; var ; RetCode : Integer; ; ; RetCode := sysout; ; begin sysout mov ah,0D7H int 21h mov ah,00h ret 4 sysout endp ;-------------------------------- ; Vol Statistics func(218) (DAH) ; ; var ; RetCode,volume : Integer; ; reply : String[n]; ; ; RetCode := volstat(volume, reply); begin volstat mov ah,0DAh push bp mov bp,sp push ds push es lds si,[bp+x+4] ; addr for the volume number mov dx,[si] ; get the volume number les di,[bp+x] ; ptr to reply buffer inc di ; add 1 to get the address of the string int 21h mov ah,00h pop es pop ds pop bp ret 8 volstat endp ;-------------------------------- ; Local Disks func(219) (DBH) ; ; var ; NumDisks : Integer; ; ; NumDisks := locdrv; ; begin locdrv mov ah,0DBH int 21h mov ah,00h ret locdrv endp ;-------------------------------- ; WorkStation ID func(220) (DCH) ; ; note: This routine returns the station number as an integer. ; It can also be returned in ASCII with this call. ; ; var ; StationNum : Integer; ; ; StationNum := wsid; ; begin wsid mov ah,0DCH int 21h mov ah,00h ret wsid endp ;-------------------------------- ; Set Error mode func(221) (DDH) ; ; var ; mode : Integer; ; ; errmode(mode); ; begin errmode mov ah,0DDH call arg1 ret 4 errmode endp ;-------------------------------- ; Broadcast Mode func(222) (DEH) ; ; var ; mode : Integer; ; ; bcsmode(mode); ; begin bcsmode mov ah,0DEH call arg1 ret 4 bcsmode endp ;-------------------------------- ; Modify LST Device func(223) (DFH) ; ; var ; RetCode, Mode : Integer; ; ; RetCode := ctlspl(Mode); ; begin ctlspl mov ah,0DFh call arg1 ret 4 ctlspl endp ;-------------------------------- ; Spool Request func(224) (E0H) ; ; var ; ErrCode : Integer; ; RequestBlock, Reply : String[n]; ; ; ErrCode := splreq(RequestBlock, Reply); ; begin splreq mov ah,0E0h call req_rep ret 8 splreq endp ;-------------------------------- ; Pipe Request func(225) (E1H) ; ; var ; ErrCode : Integer; ; RequestBlock, Reply : String[n]; ; ; ErrCode := pipreq(RequestBlock, Reply); ; begin pipreq mov ah,0E1h call req_rep ret 8 pipreq endp ;-------------------------------- ; Directory Path func(226) (E2H) ; ; var ; ErrCode : Integer; ; RequestBlock, Reply : String[n]; ; ; ErrCode := dpath(RequestBlock, Reply); ; begin dpath mov ah,0E2h call req_rep ret 8 dpath endp ;-------------------------------- ; Login system func(227) (E3H) ; ; var ; ErrCode : Integer; ; RequestBlock, Reply : String[n]; ; ; ErrCode := syslog(RequestBlock, Reply); ; begin syslog mov ah,0E3h call req_rep ret 8 syslog endp ;-------------------------------- ; Set File Attribute func(228) (E4H) ; ; var ; RetCode, FcbAddr, Attribute : Integer; ; ; RetCode := fattr(FcbAddr, Attribute); ; begin fattr push bp mov bp,sp push ds lds si,[bp+x] mov cx,[si] ; cx = attribute lds dx,[bp+x+4] ; dx = address of fcb mov ah,0E4h int 21h mov ah,0 pop ds pop bp ret fattr endp ;-------------------------------- ; Update file size func(229) (E5H) ; ; var ; ErrCode,FcbAddr : Integer; ; ; ErrCode := updfcb(FcbAddr); ; begin updfcb mov ah,0E5H call arg1f ret 4 updfcb endp ;-------------------------------- ; Copy File to File func(230) (E6H) ; ; var ; RetCode,FcbSource,FcbDest : Integer; ; CountLow, CountHigh : Integer; ; ; RetCode := cpyfile(FcbSource, FcbDest, CountLow, CountHigh) ; ; begin cpyfile mov ah,0E6h push bp mov bp,sp push ds push es lds si,[bp+x] ; addr of the high byte cnt mov dx,[si] ; dx=high word of byte cnt lds si,[bp+x+4] ; addr low word of byte cnt mov cx,[si] ; cx=low 16 bits of count les di,[bp+x+8] ; address of dest fcb lds si,[bp+x+12] ; address of the source fcb int 21h mov ah,0 pop es pop ds pop bp ret 16 cpyfile endp ;-------------------------------- ; get time / date string func(231) (E7H) ; ; var ; time : String[n]; ; ; nettod(time); ; ; where time is a string of the form Y M D H M S ; begin nettod mov ah,0E7h call arg1a ret 4 nettod endp ;-------------------------------- ; Set Close mode func(232) (E8H) ; ; var ; mode : Integer; ; ; clsmode(mode); ; begin clsmode mov ah,0E8H call arg1wor ret 4 clsmode endp ;-------------------------------- ; Shell Base Status func(233) (E9H) ; ; var ; RetFlags, drive : Integer; ; ; RetFlags := drvmap(drive); ; begin drvmap mov ax,0E900h call arg1 ret 4 drvmap endp ;-------------------------------- ; Return Shell Version func(234) (EAH) ; ; var ; RetCode, Mode : Integer; ; EnvirStr : String[n]; ; ; RetCode := retshl(EnvirStr, Mode); ; begin retshl push bp mov bp,sp push ds push es les di,[bp+x+4] ; set es:di to point at the buffer inc di ; point di at the start of the data area lds si,[bp+x] ; put the mode into al mov ax,[si] mov ah,0EAh int 21h mov ah,00h pop es pop ds pop bp ret 8 retshl endp ;-------------------------------- ; ascii log File (235) (EB) ; ; var ; RetCode, Flags, TimeOut : Integer; ; Asciiz : String[n]; ; ; RetCode := asclog(Flags, TimeOut, Asciiz); ; begin asclog push bp 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. Барри Нанс, Программирование в локальных сетях |
![]() |
||
НОВОСТИ | ![]() |
![]() |
||
ВХОД | ![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |