Создать собственный брандмауэр на Java или другом языке высокого уровня?

Вы можете просто сделать что-то вроде:

 strings -e l -f FILENAME.exe | sed -n -e :a -e '/FileVersion$/,/.*/{/FileVersion$/d;/.*/p}'

При этом sed не будет печатать ни одной строки «-n», кроме той, которую вы указываете с помощью p. Затем вы говорите ему найти строку, которая заканчивается на FileVersion и следующий шаблон, поскольку конечный шаблон равен. *, Он будет соответствовать следующей строке :). Затем вы говорите ему удалить строку FileVersion и распечатать оставшуюся часть, которая будет содержать вашу версию :).

3
13.04.2017, 15:13
3 ответа

На платформах на базе Linux есть сокет netlink, который вы можете открыть из своей программы Java и определить, принимать ли пакет или нет. Этот сокет может быть включен в сетевой стек с помощью правила iptables . Здесь, конечно, вы также можете ограничить типы пакетов, которые будут передаваться вашему фильтру пользовательского режима.

Вот что по этому поводу написано на странице руководства:

ULOG

Эта цель обеспечивает регистрацию совпадающих пакетов в пользовательском пространстве.Когда эта цель установлена ​​для правила, ядро ​​Linux будет выполнять многоадресную рассылку этого пакета через сокет netlink. Затем один или несколько процессов пользовательского пространства могут подписаться на различные группы многоадресной рассылки и принимать пакеты.

Учитывая сложность и изощренность проекта netfilter, возможно, стоит попросить решения проблемы, которую вы пытаетесь решить. (Или, возможно, это то, о чем говорил ваш другой вопрос по SE; я еще не смотрел)

6
27.01.2020, 21:08

В OpenBSD механизм divert (4) может использоваться для передачи пакетов между ядром и произвольным процессом пользовательской среды, написанным произвольным язык, предполагая, что язык может быть настроен для взаимодействия с системным вызовом (либо напрямую, либо, возможно, с помощью дополнительного усложнения прокси-уровня прокладки divert (4) -to-any-IPC-is-required, если язык отстой при системных вызовах).

4
27.01.2020, 21:08

Вполне вероятно, что брандмауэр может быть построен на Java, но очень маловероятно, что это будет аккуратный проект, работающий со скоростью, необходимой сетевым системам.

Раньше я работал в компании, которая производила устройство сетевой безопасности, работающее поверх SecureBSD. Любые изменения, которые мы внесли в ipchains, должны быть тщательно изучены, поскольку трафик фильтруется в реальном времени. Даже очень незначительное снижение производительности может иметь катастрофические последствия.

3
27.01.2020, 21:08

Теги

Похожие вопросы