Пропатчим все от А до Я!
Xakep, номер #045, стр. 045-057-2 Теперь phoenix.patch запиши в какое-нибудь другое место и стирай диру phoenix вместе с контентом. Пришло время, дорогой мой друг, проверить наш патч в действии! Патч представляет собой простой текст отличий между старой и новой версиями файла. Для использовании заплатки необходимо передать выходной поток программы diff на вход утилиты patch. Текстовка патча содержит информацию по удалению, добавлению или замене в файле некоторых участков кода. Патчи получили широкое распространение благодаря своему гораздо меньшему размеру, чем полное дерево исходников программного пакета. Подробнее о diff, patch и их параметрах можно ознакомиться, как всегда, в манах: man diff, man patch. Итак, заново распаковываем архив, переходим в появившийся каталог, копируем туда наш phoenix.patch и патчим: patch -p0 < phoenix.patch Готово! Теперь можно компилить. Как видишь, прога замечательно и без вопросов собралась ;). Для уменьшения патча в размерах архивируем его: gzip -9v phoenix.patch Не рекомендуется использовать архиватор bzip2, несмотря на его лучшую степень компрессии, так как его, по умолчанию, может не оказаться в некоторых системах, например, в OpenBSD. Все, diff'чик уже можно выкладывать на своей хоумпаге, насильно распространять среди друзей или отсылать девелоперу по дефолту некомпилящейся тулзы, чтобы исправить найденные в ней тобой баги и/или добавить новую рулезную фичу :). Примечание: если у тебя несколько сетевых карточек, то тебе может понадобиться изменить значение переменной в файле phoenix.c , строка 23: char *interface = "eth0"; для того, чтобы заставить сниффер прослушивать нужный тебе сетевой интерфейс. Зашифруй себя самого Для закрепления материала :) давай рассмотрим еще один случай создания патча на примере отличной приблуды BestCrypt, служащей для создания под линуксом криптованных дисков. Она поддерживает несколько алгоритмов шифрования, в том числе Blowfish, и имеет возможность создания томов как с использованием файловой системы msdos, так и ext2. Проблема заключается в том, что в различных дистрибах Пингвина исходники и header'ы ядра находятся в разных местах. Для решения данной коллизии разработчики BestCrypt предлагают нам перекомпилить ядро, модули etc. Но так как мы ленивые, мы пойдем принципиально другим путем ;). Blowfish - симметричный алгоритм шифрования. Для шифрования и дешифровки используются одни и те же алгоритмы и одинаковый секретный ключ. Некоторые характеристики: разработан специально для 32-битных машин, быстрее алгоритма DES, 64-битный блочный шифратор, ключ переменной длины до 448 бит. В OpenBSD пароли по умолчанию шифруются именно им. Ниже по тексту мы глянем, как обстоят дела у этой проги с Red Hat based дистрибутивами. Распаковываемся: tar zxvf BestCrypt-0.8-9.tar.gz . Теперь попробуй для теста собрать: make . Через некоторое время увидишь, что ошибка произошла в подкаталоге mod-0.8-9. Лезем в эту поддиректорию, здесь нас будут интересовать два файла с описаниями сборки: Makefile и Makefile.alg . Как всегда, сначала делаем их копии: |