Например: Firefox использует случайные номера локальных портов для подключения к веб-сайтам. (Десятки разных локальных портов могут использоваться в любой момент времени.) Можно ли заставить программу использовать только определенные локальные порты? (Установить только локальный порт, целевой порт может быть любым.)
Напишите библиотеку, которая перехватывает и перезаписывает bind(2)
позвонить и использовать $LD_PRELOAD
чтобы загрузить его под выбранным приложением.
Я не знаю никакого способа сделать это, кроме изменения исходного кода, и даже тогда Firefox может вызывать закрытый сетевой код в Windows (т.е. он может использовать библиотеки Visual C ++).
Я не понимаю, зачем тебе это нужно. Большинство брандмауэров имеют разные правила для исходящих и входящих соединений, и ограничение исходящих портов довольно необычно, поскольку они прослушивают только трафик из определенного сеанса TCP. Порты назначения гораздо более чувствительны к безопасности, поскольку они открыты и прослушивают без установленных сеансов.