Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
Николай   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.032 c
1-1091781173
Iconka
2004-08-06 12:32
2004.08.22
Cи и Делфи. Вопрос.


4-1089313297
Sting
2004-07-08 23:01
2004.08.22
Сохранение и загрузка ключей реестра


6-1087542460
Dennisius
2004-06-18 11:07
2004.08.22
Дискриминация других почтовых серверов на Yandex.RU


3-1090902152
Jiny
2004-07-27 08:22
2004.08.22
Как перерисовать значение по формуле из табл. в DBgrid ?


1-1091689182
Vilux
2004-08-05 10:59
2004.08.22
Вопрос по деревьям





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский