Общие библиотеки ELF - мотивация для PLT

Начнем с сохранения где-нибудь файла.

Возьмите свою команду:

find -type f -exec grep -il "xml" {} \;

и прочтите: Каковы операторы управления и перенаправления оболочки? туда, где написано:

> : Направляет вывод команды в файл.

, чтобы сделать вашу команду примерно такой:

find -type f -exec grep -il "xml" {} \; > /tmp/report.txt

Я воспользуюсь этой возможностью, чтобы порекомендовать пару настроек вашей текущей команды find :

  1. Может быть личным предпочтением (или устаревшей памятью на моем часть), но мне нравится указывать начальный каталог для find , например:

    find / -type f ....

, чтобы не иметь значения, где вы запускаете команду или скрипт из, он всегда будет давать ожидаемые результаты.

  1. Ваша команда find не ищет файлы «* .xml», а ищет файлы, содержащие (без учета регистра) строку «xml». Если вам нужен поиск по содержанию, прекратите читать этот абзац. Если вы действительно хотите найти файлы, у которых есть «xml» в их имени файла , ищите что-то вроде: find / -type f -iname '* xml *' - где iname сообщает find соответствие имен файлов, содержащих (без учета регистра) «xml». Если вас интересует только «xml» на конце имени файла, используйте find / -type f -iname '* xml' или ... -iname '* .xml , если вам нужна точка перед xml.

2а. Если вы хотите выполнить поиск по содержимому файлов, подумайте о том, чтобы изменить общий регистр grep на тот, который сообщает grep, что вы ищете фиксированную строку: . .. grep -Fil xml ... , чтобы немного ускорить работу.

  1. Чтобы указать find только файлы отчетов, которые были изменены за последние 5 дней, используйте -mtime -5 .

  2. Поскольку вы отметили Q как Linux, я предполагаю, что у вас есть GNU find ( man find и найдите «GNU» в описании для подтверждения). В этом случае можно немного ускорить процесс, указав find передать несколько файлов каждому exec, используя следующий синтаксис: find / -type f -mtime -5 -exec grep -Fil xml {} +> / tmp / report.txt

11
16.11.2012, 11:28
2 ответа

NM_Controlled опцией будет Network Manager, и это будет означать, что вы будете управлять интерфейсами через Network Manager вместо методов ifup и ifdown.

Опция включения Bridged vs Nat в параметр virtalbox назначит отдельный ip-адрес виртуальной машине в той же ip-сети, что и физическая машина, в то время как опция nat будет преобразовывать ip виртуальной машины в виртуальной сети (в виртуальном ящике) в ip-адрес физических машин. Это тот же подход, что и NAT в домашней локальной сети, подключающейся к Интернету через один маршрутизатор.

Разрешение DNS важно установить, если подключение не использует DHCP для настройки сетевого интерфейса. Если используется DHCP, то сервер DHCP обеспечивает (или должен) это сделать. В домашней локальной сети, которая была бы вашим интернет-маршрутизатором, в корпоративной сети это был бы ваш назначенный DHCP-сервер, при настройке виртуальной машины внутри VirtureBox, однако, возможно, потребуется настроить ее внутри VirtureBox.

Не забудьте настроить прокси, если у вас нет прямого доступа к Интернету, если вы хотите работать.

Я надеюсь, что это поможет, у меня есть другие проблемы с настройкой CentOS после минимальной установки на физическом сервере в корпоративной среде.

-121--291290-

Я получил его, добавив прокси- тэга в файл yum.conf , который изначально отсутствовал.

-121--291182-

Я полагаю, мы говорим об архитектуре x86.

Нельзя использовать самодифицирующийся код в защищенном режиме , который используется большинством операционных систем на основе UNIX (и не только), о котором я знаю, поскольку сегменты кода всегда доступны только для чтения . Загрузчик не управляет этим - это то, что обрабатывается подсистемой управления памятью ядра.

Но даже если бы вы могли «создать код для этой таблицы во время загрузки», как вы говорите, это противоречило бы целому назначению общих библиотек. Таким образом, каждый процесс будет иметь «закрытую» копию функций библиотеки в своем адресном пространстве, эффективно увеличивая объем памяти - одной из причин, по которой были созданы общие библиотеки, было решение этой проблемы.

Весь процесс, который вы описываете, довольно сложен, и он будет стоить больше циклов обработки, чем метод PLT, который используется в настоящее время, и, вероятно, введет больше, новых и интересных вопросов безопасности.

8
29.04.2021, 00:52

DSO ELF могут использовать флаг (DF_TEXREL), чтобы объявить, что они требуют перераспределения путем изменения своего текстового раздела (который обычно доступен только для чтения). Однако подход к таблице переходов вместе с независимым кодом положения PIE должен быть более оптимальным.

(Обнаружил, что в http://www.akkadia.org/drepper/dsohowto.pdf, но другие ресурсы упоминают об этом тоже).

1
29.04.2021, 00:52

Теги

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