@BowPark для клиентов, вам нужно только следующее: 1) отредактировать файл /etc/гг.конф 2) отредактировать /etc/nssswitch.конф 3) начать этого. *По крайней мере, это то, что мои заметки говорят с 2011 года.* ни одной загрузки. Этот маленький "бета" жратвы ремонт файл восстановил кубунту граб в МБР. В Ubuntu один сидит на ботинке-ПДД Убунту. Так это работает сейчас. Просто убрали это libGL.так, это libGL.так.1 и это libGL.Месу.так что симлинки из /usr/lib, то побежал команду ldconfig и перезапустить Х11. Пока все вроде хорошо. Вы пользуетесь старой, неподдерживаемой версии CentOS с большим количеством ошибок безопасности? Почему бы вам не обновить? @SpehroPefhany несмотря на то, что капризный Европейский редакторы газет могли предположить, люди не гибнут на улицах в Америке из-за отсутствия медицинской страховки. Скорее, проблема заключается в том, что больницы обязаны (юридически, а также морально), чтобы дать неотложную помощь всем АО бедных в конечном итоге получить лечение в наиболее дорогой способ, чтобы получить его, и затраты на уход за нуждающимся лицам со страховыми, который после этого становится stratospherically дорого. Идея о том, что в государственной больнице оставил бы кто-то истекал кровью на улице из-за отсутствия средств-это изобретение телевизора.

Чтобы развернуть на то, что vonbrand есть (правильно, +1) сказал, Есть две части для защиты стека в Linux.

Стек Канарах

Стек кенаров компилятор-насильственных характеристика vonbrand относится. Эти нельзя отключить без перекомпиляции.

Чтобы доказать это самому себе и посмотреть, как они работают, рассмотрим следующий код:

#включить заголовочный файл <stdio.ч>
код #include <stdint.ч>
#включить <stdlib.ч>
#включить <строка.ч>

инт mybadfunction(типа char* a_bad_idea)
{
 Чара, что[100];
 и strcpy(что, a_bad_idea);
 функции printf("вы перешли на %S\N", то какие);
}

тап_п(АГДС, типа char** argv в)
{
функции printf("Tralalalaala\Н");
mybadfunction(массива argv[1]);
}

Теперь скомпилируйте, что (ССЗ -fstack-протектор -компилятор MASM=Intel на тест.С) во что-то GNU, как бы и рады собрать и прочитать вывод. Важным моментом является то, что на выходе из mybadfunction функции, есть этот маленький кусочек кода:

 мова регистр edx, DWORD с ПТР [эбп-12]
 операции XOR регистр edx, DWORD с ПТР ГС:20
 Йе .Л2
 вызов __стека_ЧК_не

Как вы можете догадаться, что берет пачку печенья от [эбп-12] и сравнивая его со значением в ГС:20. Не совпадает? Затем он вызывает функцию __стека_ЧК_не в glibc, которая убивает вашу программу прямо там.

Есть способы обойти это с точки зрения написания эксплойтов, но легкий путь в плане построения шеллкода тестовый случай, чтобы скомпилировать вашу программу с -ФНО-стек-протектор.

Неисполняемых страниц

Есть некоторые другие соображения на современных системах Linux. Если взять обычные заглушки шеллкода тестирования:

буфер типа char[] = {...};

typedef в пустоту (* Функ)(недействительными);

тап_п(АГДС, типа char** argv в)
{
 функции Ф = (буферная функция);
Ф();
 возврат 0;
}

современным GCC/Linux будет сопоставить .rodata раздел РЭ файл только для чтения без разрешения на выполнение. Вам нужно выключить, что может быть сделано с помощью кода пример из этого блога. Основная идея: вы можете использовать mprotect , чтобы добавить разрешения, вы хотите, чтобы страницы, на которых выдаются данные.

Неисполняемые стеки

Если вы намерены испытать традиционный сценарий использования, например, мой плохой код выше, с шеллкода, то вы также должны убедиться, стек исполняемый для простых случаев. ЧП формат содержит поле для определения того, является ли стек исполняемый файл — можно запрашивать и контролировать это с execstack. Для обеспечения исполняемого стека, выполните

execstack -с /путь/к/myprog

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

Дополнительный бонус: Экспресс-панель:

Выключить, Эхо 0 > /труды/системы/ядра/randomize_va_space.

Ты просто скажи кто-нибудь как использовать свое драгоценное пингвин?

Нет. Любой подвиг должен обойти стек канареек (очень не тривиально) и либо найти программу с execstack установить, или установить его (то есть он может уже выполнять произвольные команды в любом случае), либо использовать более сложные техники, такие как возврат в libc/возвращение ориентированное программирование.