Можно ли увидеть реальный исходный код tcpdump?

Перед вопросом моя статья может иметь некорректное содержание. Я новичок в Linux и разработчик новичков.

У меня есть вопрос, касающийся исходного кода Linux tcpdump. Как я знаю, tcpdump реализован с использованием libpcap.

  1. Как работает tcpdump? Мое мнение таково, что поскольку двоичный исполняемый файл tcpdump установлен в PATH. право?

  2. Мой главный вопрос: где находится исходный код tcpdump c? Я уже знал код библиотеки tcpdump, которая доступна на домашней странице tcpdump tcpdump

Я хочу видеть реальный код c tcpdump, содержащий основную функцию, переменные заголовочные файлы. Пожалуйста, дайте мне знать местоположение.

Я использую Ubuntu 16.04 LTS.

2 ответа

Решение

tcpdump доступно в main хранилище в Ubuntu.

Скачать исходный код tcpdump:

  • Убедитесь, что у вас включены репозитории для deb-src тип пакетов, для xenial (16.04) добавить следующее к /etc/apt/sources.list:

    deb-src http://archive.ubuntu.com/ubuntu/ xenial main restricted
    

    замещать xenial с вашим кодовым названием релиза вы можете найти кодовое название релиза по:

    lsb_release -sc
    
  • Теперь обновите локальный список пакетов, синхронизировавшись с репозиториями:

    sudo apt-get update
    
  • Установите исходный код tcpdump:

    apt-get source tcpdump
    

    Он будет загружен и автоматически извлечен в текущем каталоге; также нет необходимости sudo если у вас нет разрешения на запись в каталог.

Все нужные вам файлы находятся в каталоге tcdump-<version> например, для версии 4.5.1 каталог будет tcpdump-4.5.1,

Я не уверен, что хорошо понимаю ваш первый вопрос, но:

  1. Вы можете найти источник на GitHub. Как указано на сайте разработчика, вы можете клонировать tcpdump GitHub репозиторий, использующий:

    git clone https://github.com/the-tcpdump-group/tcpdump.git
    
  2. Когда вы компилируете код, вам придется решить, где вы хотите разместить свой исполняемый файл. Просто убедитесь, что где-то находится ваш пользователь PATH переменная указывает или просто изменить ваш PATH включить это место.

Вы также можете установить его прямо из репозитория Canonical sudo dpkg -i DEB_PACKAGE или же sudo apt-get install DEB_PACKAGE или используя графический интерфейс, если вам нравится... В этом случае вы найдете свой двоичный файл на /usr/sbin/tcpdump, К тому же

 whereis tcpdump

даст вам местоположение вашего двоичного файла (см. выше), вашего исходного кода и файлов справочной страницы.

Другие вопросы по тегам