Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Хочу попробывать написать фаервол.   Найти похожие ветки 

 
Николай   (2004-06-05 00:11) [0]

Хочу попробывать написать фаервол стоит ли братся?
Думаю что есть только смысл отслеживать на уровне ниже ОС т.е. писать драйвер.
Посоветуйте пожалуста инфу по этой теме, может где исходники можно глянуть.
Зарание благодарен.


 
nomshar   (2004-06-05 13:26) [1]

Драйвер чего? Сетевой карты?
А насчет ссылок. Вот довольно-таки неплохая:
http://www.ntkernel.com/articles/firewall.shtml
Ну и конечно: http://msdn.miscrosoft.com


 
BiN ©   (2004-06-05 15:18) [2]

...Думаю что есть только смысл отслеживать на уровне ниже ОС т.е. писать драйвер.

Ниже ОС - только BIOS

А драйвер на дельфи написать нельзя, в принципе.


 
Николай   (2004-06-05 16:40) [3]

nomshar  (05.06.04 13:26) [1]
Да да читал. Кстати там тоже рекомендуют писать драйвер.
BiN ©  (05.06.04 15:18) [2]
Ну на делфи драйвер я писать и не собирался.

Ну, что скажете, стоит братся? Или слишком трудно покажится?


 
Николай   (2004-06-05 16:50) [4]

>Ну и конечно: http://msdn.miscrosoft.com
ссылка мертвая.


 
Iraizor ©   (2004-06-05 17:12) [5]

Николай
lol :D
ты чего про msdn не наешь ? просто nomshar допустил ошибку в линке , домен microsoft , а не miscrosoft.


 
Николай   (2004-06-05 18:35) [6]

Iraizor ©  (05.06.04 17:12) [5]
откуда


 
Николай   (2004-06-05 18:45) [7]

Вот пока есть дровина в общих чертах.
.386
.model flat, stdcall
;                                  I N C L U D E   F I L E S
;#########################################################################
include D:\masm32\include\w2k\ntstatus.inc
include D:\masm32\include\w2k\ntddk.inc
include D:\masm32\include\w2k\pfhook.inc
include D:\masm32\include\w2k\ntoskrnl.inc
include D:\masm32\Macros\Strings.mac
includelib D:\NTDDK\libfre\i386\ntdll.lib
includelib D:\NTDDK\libfre\i386\ntoskrnl.lib
;P R O T O
;##########################################################################
set_hook PROTO  :PacketFilterExtensionPtr
; D A T A
;##########################################################################
.data
CCOUNTED_UNICODE_STRING "\\Device\\IPFILTERDRIVER" ,drvsmbl,4
ipfilter_name UNICODE_STRING <>
hook_nfo PF_SET_EXTENSION_HOOK_INFO <>
status NTSTATUS ?
devobj PDEVICE_OBJECT ?
isb IO_STATUS_BLOCK <>
fileobj PFILE_OBJECT NULL
myirp PIRP NULL
;                                        C O D E
;############################################################################
.code
;                                       DriverEntry
;############################################################################
DriverEntry proc pDriverObject:PDRIVER_OBJECT, pusRegistryPath:PUNICODE_STRING
mov eax,offset hookproc
invoke set_hook, eax
.if eax != STATUS_SUCCESS
       ret
       .endif
       mov eax, pDriverObject
        assume eax:PTR DRIVER_OBJECT
       mov [eax].DriverUnload,offset Unload
        assume eax:nothing
       mov eax,STATUS_SUCCESS
        ret
DriverEntry endp
;        Windows 2000 hook (built in)
;###############################################################################
Unload proc p1DriverObject:PDRIVER_OBJECT
invoke set_hook,NULL
ret
Unload endp
;###############################################################################
set_hook proc hook_fn:PacketFilterExtensionPtr

invoke IoGetDeviceObjectPointer,addr drvsmbl,STANDARD_RIGHTS_ALL,\
addr fileobj,addr devobj

mov status,eax  
       .if eax != STATUS_SUCCESS
       jmp exit
       .endif

       mov eax,hook_fn
       mov hook_nfo.ExtensionPointer,eax
   
       invoke IoBuildDeviceIoControlRequest,IOCTL_PF_SET_EXTENSION_POINTER(),\
devobj, addr hook_nfo,\
       sizeof hook_nfo, NULL, 0, FALSE, NULL,addr isb

mov myirp,eax

       .if eax == NULL
       mov status ,STATUS_INSUFFICIENT_RESOURCES
       jmp exit
       .endif

       invoke IoCallDriver,devobj,myirp

       mov myirp,NULL
       mov eax,STATUS_SUCCESS
       ret
exit:

.if fileobj!=NULL
invoke ObDereferenceObject,fileobj
.endif

mov eax,status
ret

set_hook endp
;###############################################################################
hookproc proc PacketHeader:PTR BYTE, Packet:PTR BYTE, PacketLength:WORD,
       RecvInterfaceIndex:WORD,SendInterfaceIndex:WORD,RecvLinkNextHop:DWORD,
       SendLinkNextHop:DWORD
     
       mov eax,PF_DROP
ret
hookproc endp

end DriverEntry


 
rrew   (2004-06-05 19:30) [8]

на счет драйверов вы зря, я пару раз натыкался в сети на исходники драйверов написаных на Дельфи.
P.S. А вот как они работают это уже второй вопрос! :)


 
BiN ©   (2004-06-05 23:35) [9]

rrew   (05.06.04 19:30) [8]
на счет драйверов вы зря, я пару раз натыкался в сети на исходники драйверов написаных на Дельфи.


Нет, не натыкался. Это могло быть что угодно, но не драйвер, написанный на дельфи.

А вот ссылка есть по теме, кажется, даже с исходниками
http://www.wasm.ru/article.php?article=netfilter


 
Николай   (2004-06-06 02:30) [10]

вопрос в следующим: Стоит ли братся за енто дело или нет?
Желание <> возможность.


 
Anatoly Podgoretsky ©   (2004-06-06 16:52) [11]

Стоит


 
Владимир   (2004-06-23 16:32) [12]

есть пример на Си и на Делфи фирика (разные варианты)
малость есть доки на эту тему.
пиши майл отпишу договоримся


 
Amoral ©   (2004-06-23 20:41) [13]

Давай же уже! 8)
AmoralSoft@nsk.ru



Страницы: 1 вся ветка

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.031 c
3-1090583970
chirchik
2004-07-23 15:59
2004.08.22
DevExpress - TcxDBLookupComboBox


3-1091159310
don-do
2004-07-30 07:48
2004.08.22
Помогите плз. ссылкой или кодом


3-1090926478
TAN_K
2004-07-27 15:07
2004.08.22
Поле типа Date = 0


1-1091786912
gigabytepretender
2004-08-06 14:08
2004.08.22
Своя орфография в Word98


6-1086782787
Anton.
2004-06-09 16:06
2004.08.22
Как получить сообщение от TCPServera?