Вы можете просто сделать что-то вроде:
strings -e l -f FILENAME.exe | sed -n -e :a -e '/FileVersion$/,/.*/{/FileVersion$/d;/.*/p}'
При этом sed не будет печатать ни одной строки «-n», кроме той, которую вы указываете с помощью p. Затем вы говорите ему найти строку, которая заканчивается на FileVersion и следующий шаблон, поскольку конечный шаблон равен. *, Он будет соответствовать следующей строке :). Затем вы говорите ему удалить строку FileVersion и распечатать оставшуюся часть, которая будет содержать вашу версию :).
На платформах на базе Linux есть сокет netlink, который вы можете открыть из своей программы Java и определить, принимать ли пакет или нет. Этот сокет может быть включен в сетевой стек с помощью правила iptables
. Здесь, конечно, вы также можете ограничить типы пакетов, которые будут передаваться вашему фильтру пользовательского режима.
Вот что по этому поводу написано на странице руководства:
ULOG
Эта цель обеспечивает регистрацию совпадающих пакетов в пользовательском пространстве.Когда эта цель установлена для правила, ядро Linux будет выполнять многоадресную рассылку этого пакета через сокет netlink. Затем один или несколько процессов пользовательского пространства могут подписаться на различные группы многоадресной рассылки и принимать пакеты.
Учитывая сложность и изощренность проекта netfilter, возможно, стоит попросить решения проблемы, которую вы пытаетесь решить. (Или, возможно, это то, о чем говорил ваш другой вопрос по SE; я еще не смотрел)
В OpenBSD механизм divert (4)
может использоваться для передачи пакетов между ядром и произвольным процессом пользовательской среды, написанным произвольным язык, предполагая, что язык может быть настроен для взаимодействия с системным вызовом (либо напрямую, либо, возможно, с помощью дополнительного усложнения прокси-уровня прокладки divert (4)
-to-any-IPC-is-required, если язык отстой при системных вызовах).
Вполне вероятно, что брандмауэр может быть построен на Java, но очень маловероятно, что это будет аккуратный проект, работающий со скоростью, необходимой сетевым системам.
Раньше я работал в компании, которая производила устройство сетевой безопасности, работающее поверх SecureBSD. Любые изменения, которые мы внесли в ipchains, должны быть тщательно изучены, поскольку трафик фильтруется в реальном времени. Даже очень незначительное снижение производительности может иметь катастрофические последствия.