Как проверить расшифрованный трафик TLS/SSL в Wireshark из программы, не поддерживающей SSLKEYLOGFILE?

Я нашел решение с помощью mkfifo, который создает именованную трубу, или FIFO.
Проще всего создать символическую ссылку, и можно использовать все перенаправления, разрешенные оболочкой.

mkfifo MyOutput

ls -l дает

0 prw-r--r-- 1 My_username My_username  0 May 11 17:45 MyOut|

Я могу запустить программу с перенаправлением на эту ссылку

./Execute_program > MyOutput  &  cat MyOutput 

и вывод начинает идти на терминал.

Если я нажимаю ctrl+c, я прерываю поток, но не запущенный процесс (для этого мне нужно использовать что-то вроде kill pid или kill %1).
Когда во второй раз я попрошу FIFOs сделать дамп на терминал (снова с cat MyOutput), он начнет делать дамп вывода с этого момента.

Примечания и предупреждения:

  • Пока я не попрошу дамп от FIFOs, он будет держать весь вывод.
    Как только я попрошу первый раз, он будет смывать все.
  • Я могу перенаправить (или добавить) в другой файл cat MyOutput >> NewRealFile
  • Я могу использовать cat MyOutput и из другого терминала!
  • Warning: Если я попрошу 2 разные программы (или экземпляры) перенаправить вывод в одинаковые FIFO, поток будет слит (нет априорного способа отличить, из какой программы пришла эта строка).
  • Warning: Если я запрошу 2 или более раз (возможно, с разных терминалов), он выдаст по одной строке на каждый запрос, разделяя вывод запрашивающему. Может быть, есть безопасный обходной путь...
-2
05.12.2018, 14:30
1 ответ

X-сервер является сервером, поскольку он обслуживает устройства отображения и ввода для приложений.

Такие приложения, как lxterminal, подключаются к этому X-серверу, чтобы запросить какую-либо услугу. Например:

  • Пожалуйста, нарисуйте Окно такой формы и размера
  • Подскажите, пожалуйста, какую клавишу пользователь нажимает и отпускает

Они подключаются к X-серверу через домен UNIX или сокет ABSTRACT или TCP.

Точно так же эмулятор терминала можно рассматривать как сервер для терминальных приложений.

С помощью echo test > /dev/pts/12приложение echoможно рассматривать как подключение к эмулятору терминала (посредством псевдотерминала -вместо сетевого сокета, хотя здесь соединение выполняется перенаправлением оболочки, а неecho)и запросом услуги:отобразите тест и переместите курсор вниз .

Теперь некоторые эмуляторы терминала, включая терминал gnome -и lxterminal, имеют эту (раздражающую функцию IMO ), когда при первом вызове они запускают процесс-демон, который обрабатывает будущие запросы на открытие нового окна терминала.

Более поздние вызовы тех, кто подключается к этому серверу (с использованием этого /run/user/1000/.lxterminal-socket-:0доменного сокета UNIX в вашем случае )для запроса нового окна терминала, предположительно для экономии ресурсов или для обмена некоторой информацией между окнами терминала..

Когда вы делаете:

cd /tmp && lxterminal -e vim

Хотя lxterminalуже запущен, этот второй вызов просто сообщает серверу lxterminalзапустить vimв новом окне с текущим каталогом, измененным на /tmp.

См. xtermили rxvtдля эмуляторов терминала, которые работают более традиционным способом.

Вы можете сделать то же самое с:

printf '%s\0' /tmp lxterminal -e vim |
  socat -u - 'unix-connect:"/run/user/1000/.lxterminal-socket-:0"'

Меня это раздражает, потому что это означает, что только первый вызов наследует среду (environment в глобальном смысле, включая umask, cwd, env vars... )вызывающей стороны, только последующие вызовы получить cwd.

Подробнее об этом в прекрасном ответе @JdeBP на lxterminal в выводе netstat

3
28.01.2020, 05:15

Теги

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