Для моего проекта класса я пытаюсь исправить уязвимость призрака на Ubuntu 12.04 вручную. Я полностью понимаю ошибки внутри /nss/digits_dots.c, и я их исправил. Моя проблема в том, что я не знаю, как сделать патч и скомпилировать его. Как я могу сделать патч? Как я могу просто отредактировать один файл в библиотеке и перестроить его? Мне удалось скачать исходную библиотеку, но потом я застрял! Вот что я сделал
apt-get source libc6
У меня были некоторые ошибки. Затем мне пришлось установить другие пакеты, такие как
sudo apt-get install alien
sudo apt-get install gawk
. Но после этого я начал несколько вещей и начал ходить в круги и циклы, но без успеха. Может кто-нибудь, пожалуйста, скажите мне, как сделать простой патч для библиотеки C.
Спасибо,
Предполагая, что у вас уже есть исходный исходный пакет для ghost, вы просто хотите протестировать локально, и это всего лишь один файл, и вот что вы можете сделать.
1. Создайте разницу ваших изменений:
diff -u /path/to/original_ghost_file.c ghost_file_changes.c > ghost.patch
1. Создайте разницу между вашими изменениями:
Переместитесь в исходный каталог и запустите:
patch -p1 ghost.patch
Не видя своего патча, я не могу сообщить вам, что -p, но я предполагаю, что вы использовали абсолютные пути.
3. Переустановите и установите
Еще в исходной папке запустите ./configure, make и make check. Если вы хотите заменить исходную версию ghost, запустите make install.
Предполагая, что у вас уже есть исходный исходный пакет для ghost, вы просто хотите протестировать локально, и это всего лишь один файл, и вот что вы можете сделать.
1. Создайте разницу ваших изменений:
diff -u /path/to/original_ghost_file.c ghost_file_changes.c > ghost.patch
1. Создайте разницу между вашими изменениями:
Переместитесь в исходный каталог и запустите:
patch -p1 ghost.patch
Не видя своего патча, я не могу сообщить вам, что -p, но я предполагаю, что вы использовали абсолютные пути.
3. Переустановите и установите
Еще в исходной папке запустите ./configure, make и make check. Если вы хотите заменить исходную версию ghost, запустите make install.
Предполагая, что у вас уже есть исходный исходный пакет для ghost, вы просто хотите протестировать локально, и это всего лишь один файл, и вот что вы можете сделать.
1. Создайте разницу ваших изменений:
diff -u /path/to/original_ghost_file.c ghost_file_changes.c > ghost.patch
1. Создайте разницу между вашими изменениями:
Переместитесь в исходный каталог и запустите:
patch -p1 ghost.patch
Не видя своего патча, я не могу сообщить вам, что -p, но я предполагаю, что вы использовали абсолютные пути.
3. Переустановите и установите
Еще в исходной папке запустите ./configure, make и make check. Если вы хотите заменить исходную версию ghost, запустите make install.